Fundamentos de Android
-
Upload
felipepalma14 -
Category
Documents
-
view
13 -
download
4
Transcript of Fundamentos de Android
Capítulo 1: Introdução ao Android
M.Sc. Márcio Palheta
Instrutor
● Programador desde 2000
● Aluno de doutorado
● Mestre em informática pelo ICOMP/UFAM
● Especialista em aplicações WEB – FUCAPI
● sites.google.com/site/marciopalheta
M.Sc. Márcio Palheta
3/96
Agenda● Dispositivos e o mercado Android
● Instalação do Android Studio
● Gestão de dependências com Gradle
● Controle de versão com GIT
● Trabalhando com o simulador
● Conceitos iniciais - Ciclo de vida de uma Activity
● Usando a pasta de recursos – RES
● Entendendo a classe R.java
● Componentes de tela – por dentro do XML
● Planejamento das telas baseadas em Layouts
M.Sc. Márcio Palheta 4/96
Dispositivos e compatibilidade
M.Sc. Márcio Palheta
5/96
Ambiente de desenvolvimento
● A primeira IDE para desenvolvimento Android foi o Eclipse, usando Android SDK e o plugin ADT Android Developer Tools
● Nessa época, baixávamos:
– O Eclipse Indigo com ADT configurado; ou
– Instalávamos ADT e SDK em uma versão mais nova do Eclipse; ou
– Usávamos o IntelliJ Idea, IDE muito boa e paga. ● Contudo, o Google resolveu criar uma IDE própria para o
Android, baseada no IntelliJ, o Android Studio
M.Sc. Márcio Palheta
6/96
Instalação do Android Studio
● Baixe o Android Studio
● http://developer.android.com/sdk/index.html
● Execute a nova IDE
M.Sc. Márcio Palheta
7/96
Instalação do Android Studio
● Baixe o Android Studio
● http://developer.android.com/sdk/index.html
● Execute a nova IDE
● Na tela de Wizard,
Click em Next
M.Sc. Márcio Palheta
8/96
Instalação do Android Studio
● Baixe o Android Studio
● http://developer.android.com/sdk/index.html
● Execute a nova IDE
● Na tela de Wizard,
Click em Next
● Selecione a opção
Standard e clique
em Next
M.Sc. Márcio Palheta
9/96
Instalação do Android Studio
● Baixe o Android Studio
● http://developer.android.com/sdk/index.html
● Execute a nova IDE
● Na tela de Wizard,
Click em Next
● Selecione a opção
Standard e clique
em Next
● Aceite o contrato
E clicque em Finish
M.Sc. Márcio Palheta
10/96
Baixando arquivos de configuração
● O Android Studio fará download dos componentes necessários, como a versão mais nova do Android SDK
● Esse processo pode ser demorado
M.Sc. Márcio Palheta
11/96
Pensando no projeto Agenda Escolar
● Nova Android APP: Agenda Escolar
● Cadastro de professores
● Interação com professores
– SMS, Ligações, E-mails, Sites, Redes sociais
– Localização no mapa
● Sincronização com Serviço Web
● Baixa e Listagem de disciplinas e ementas
M.Sc. Márcio Palheta
12/96
Pensando no projeto – Agenda escolar
M.Sc. Márcio Palheta
13/96
Pensando no projeto – Agenda escolar
Nosso ponto de partida
M.Sc. Márcio Palheta
14/96
Tela de boas vindas
M.Sc. Márcio Palheta
15/96
Tela de boas vindas
Nosso primeiro projeto
M.Sc. Márcio Palheta
16/96
Criação do projeto AGENDA
Nome da aplicação
M.Sc. Márcio Palheta
17/96
Criação do projeto AGENDA
Pacote da aplicação
M.Sc. Márcio Palheta
18/96
Criação do projeto AGENDA
Diretório da aplicação
M.Sc. Márcio Palheta
19/96
Tipo de aplicação
Telefones e Tablets
M.Sc. Márcio Palheta
20/96
Tela inicial padrão
M.Sc. Márcio Palheta
21/96
Tela inicial padrãoPrimeira Activity
M.Sc. Márcio Palheta
22/96
Configurações da tela inicial
M.Sc. Márcio Palheta
23/96
Configurações da tela inicial
Dados da Tela inicial
M.Sc. Márcio Palheta
24/96
Bem vindo ao Android Studio!
M.Sc. Márcio Palheta
25/96
Bem vindo ao Android Studio!
Arquivos do nossoProjeto Android
M.Sc. Márcio Palheta
26/96
Bem vindo ao Android Studio!
Paleta de componentes
M.Sc. Márcio Palheta
27/96
Bem vindo ao Android Studio!
Pré-visualização de tela
M.Sc. Márcio Palheta 28/96
O que foi gerado?
● manifests: pasta de arquivo de configuração
– AndroidManifest.xml: arquivo de configuração
● Java: pasta onde são armazenados os arquivos .java criados em nossa App
– ProfessorForm: classe de controle do formulário de dados do professor
M.Sc. Márcio Palheta 29/96
A classe ProfessorForm.java
M.Sc. Márcio Palheta 30/96
A classe ProfessorForm.javaClasse filha de
ActionBarActivity
M.Sc. Márcio Palheta 31/96
A classe ProfessorForm.javaMétodo inicial
M.Sc. Márcio Palheta 32/96
A classe ProfessorForm.javaMétodo inicial
Método que carregao menu principal
M.Sc. Márcio Palheta 33/96
A classe ProfessorForm.javaMétodo inicial
Método que carregao menu principal
Método que devolveo click no menu
M.Sc. Márcio Palheta 34/96
O que foi gerado?
● res: pasta onde ficam os recursos utilizados pelas Apps
● res/drawable: pasta de imagens da nossa App
● res/layout: telas da App
– professorformlayout.xml tela para edição de dados do professor
● res/menu: menus da App
– professorformmenu.xml menu da tela de dados
M.Sc. Márcio Palheta 35/96
Tela professorformlayout.xml
M.Sc. Márcio Palheta 36/96
Tela professorformlayout.xmlComponentede organização
da tela
M.Sc. Márcio Palheta 37/96
Tela professorformlayout.xmlComponentede organização
da tela Atributos deAltura e Largura
obrigatórios
M.Sc. Márcio Palheta 38/96
Tela professorformlayout.xmlComponentede organização
da tela Atributos deAltura e Largura
obrigatórios
Componente deTexto
M.Sc. Márcio Palheta 39/96
O que foi gerado?
● res/mipmap: pasta de ícones da App
– ic_launcher.png: ícone da App. Precisamos de um ícone para cada resolução
● res/values
– dimens.xml: dimensões de compenentes
– strings.xml: internacionalização
– styles.xml: configuração de estilo da App
M.Sc. Márcio Palheta 40/96
A pasta RES e os Qualifiers
● RES/VALUES/ pasta que utiliza qualifiers para facilitar a internacionalização da aplicação
● O programador pode criar uma pasta values para cada idioma que deseja suportar.
● Para isso, usamos no nome da pasta qualificadores que indicam o idioma e o país
● O Android carrega automaticamente a pasta mais adequada às configurações do DEVICE.
– values: pasta padrão
– values-pt-rBR: português Brasil
– values-en-rUS: inglês Estados Unidos
M.Sc. Márcio Palheta 41/96
O Arquivo res/values/strings.xml
● O Android já tem a preocupação nativa com a Internacionalização (I18N) das Apps.
● O arquivo string.xml segue o padrão CHAVE e VALOR
M.Sc. Márcio Palheta 42/96
O Arquivo res/values/strings.xml
● O Android já tem a preocupação nativa com a Internacionalização (I18N) das Apps.
● O arquivo string.xml segue o padrão CHAVE e VALOR
Chave usada na view
M.Sc. Márcio Palheta 43/96
O Arquivo res/values/strings.xml
● O Android já tem a preocupação nativa com a Internacionalização (I18N) das Apps.
● O arquivo string.xml segue o padrão CHAVE e VALOR
Chave usada na view
Valor a serexibido na view
M.Sc. Márcio Palheta 44/96
A pasta RES e os Qualifiers
● RES/DRAWABLE/ pasta que armazenas imagens da app.
● Usa qualifiers para definir a resolução a ser utilizada:
– res/drawable-ldpi: dispositivos com baixa resolução(muito raros)
– res/drawable-mdpi: dispositivos com resolução média(raros)
– res/drawable-hdpi: alta resolução(maioria)
– res/drawable-tvdpi: televisões● RES/RAW/ armazena arquivos de mídia, como mp3 ou
vídeos
M.Sc. Márcio Palheta
45/96
Atualização do Android SDK
● É uma boa prática manter o Android Studio atualizado
● Na barra de menu do sistema, selecione o Android SDK Manager
M.Sc. Márcio Palheta
46/96
Atualização do Android SDK
● É uma boa prática manter o Android Studio atualizado
● Na barra de menu do sistema, selecione o Android SDK Manager
Dados da Android SDK Manager
M.Sc. Márcio Palheta
47/96
Atualização do SDK
Atualizações pendentes
M.Sc. Márcio Palheta
48/96
Aceite da licença de instalaçãoSelecione a licença
M.Sc. Márcio Palheta
49/96
Aceite da licença de instalação
Aceite a licença
Selecione a licença
M.Sc. Márcio Palheta
50/96
Ao final da atualização
Os botões de Instalação e Delete estarão desativados
M.Sc. Márcio Palheta
51/96
Execução no Emulador Nativo
● Para testarmos como está ficando a nossa app, podemos utilizar os devices ou emuladores, clicando em RUN
Início da execução da App
M.Sc. Márcio Palheta
52/96
Seleção do dispositivo para execução
M.Sc. Márcio Palheta
53/96
Seleção do dispositivo para execuçãoExecutar a App emum DEVICE conectado
à porta USB
M.Sc. Márcio Palheta
54/96
Seleção do dispositivo para execução
Executar a App emum EMULADOR
M.Sc. Márcio Palheta
55/96
Execução da App no emulador nativo
M.Sc. Márcio Palheta
56/96
Pensando em performance
● Os emuladores nativos do Android Studio, assim como os do Eclipse, são pesados e exigem um certo poder de processamento das máquinas, podendo causar lentidão no processo de testes da App.
● A solução mais rápida é fazer o deploy e testes direto em um device real.
● Contudo, uma aplicação móvel pode rodar em dispositivos com tamanhos e resoluções de telas diversos. Nem sempre temos esse leque de dispositivos à nossa disposição, para testar nossas apps.
● O Genymotion é um emulador com performance melhor que a dos nativos e tem ganho visibilidade no mercado
M.Sc. Márcio Palheta
57/96
Instalação do Genymotion
● O Genymotion precisa de uma máquina virtual, para fazer a emulação de devices
● Baixe e instale a VirtualBox:
https://www.virtualbox.org/wiki/Downloads
M.Sc. Márcio Palheta
58/96
Instalação do Genymotion
● Crie uma conta em: https://www.genymotion.com/
● Baixe e instale: https://www.genymotion.com/#!/product
M.Sc. Márcio Palheta
59/96
Execute o Genymotion
Vamos adicionar umNovo EMULADOR
M.Sc. Márcio Palheta
60/96
Escolha o novo emulador
M.Sc. Márcio Palheta
61/96
Escolha o novo emulador
Vamos adicionar umNovo EMULADOR
M.Sc. Márcio Palheta
62/96
Nome do Virtual Device
M.Sc. Márcio Palheta
63/96
Nome do Virtual Device
Confirme o nome doNovo EMULADOR
M.Sc. Márcio Palheta
64/96
Tela de progresso
M.Sc. Márcio Palheta
65/96
Download concluído
Clique em Finish
M.Sc. Márcio Palheta
66/96
Inicialização do Virtual Device
M.Sc. Márcio Palheta
67/96
Inicialização do Virtual Device
Selecione oEMULADOR
M.Sc. Márcio Palheta
68/96
Inicialização do Virtual Device
Selecione oEMULADOR
Inicie oEMULADOR
M.Sc. Márcio Palheta
69/96
Inicialização do Virtual Device
M.Sc. Márcio Palheta
70/96
Genymotion no Android Studio
● Vá ao menu Preferences / Plugins - "Browse Repositories”
M.Sc. Márcio Palheta
71/96
Instalação do plugin
● Pesquise por “genymotion”, selecione e instale o plugin
M.Sc. Márcio Palheta
72/96
Configure o path do GenymotionInicie o
Genymotion
M.Sc. Márcio Palheta
73/96
Configure o path do Genymotion
Informe o local de instalação do Genymotion
M.Sc. Márcio Palheta
74/96
Execute o Genymotion
Escolha e inicieo emulador
M.Sc. Márcio Palheta
75/96
Execute o Genymotion
Andamento dainicialização
M.Sc. Márcio Palheta
76/96
Rode a aplicação no Genymotion
M.Sc. Márcio Palheta
77/96
Aplicação no Genymotion
M.Sc. Márcio Palheta 78/96
Fundamentos de Android
Código fonteJAVA (.java)
Compilador(javac)
BytecodeJAVA (.class)
Empacota(.jar)
JAVAVM
PROJETOS JAVA
M.Sc. Márcio Palheta 79/96
Fundamentos de Android
Código fonteJAVA (.java)
Compilador(javac)
BytecodeJAVA (.class)
Empacota(.jar)
JAVAVM
PROJETOS JAVA
Código fonteJAVA (.java)
Compilador(javac)
BytecodeJAVA (.class)
Empacota(.dex)
DALVIKVM
PROJETOS ANDROID
M.Sc. Márcio Palheta 80/96
Fundamentos de Android - Estrutura
M.Sc. Márcio Palheta 81/96
Ciclo de vida - Activity
M.Sc. Márcio Palheta 82/96
Ciclo de vida - ActivityChamado quando a Appé criada. Usado para
criação da view e acessoa componentes.
M.Sc. Márcio Palheta 83/96
Ciclo de vida - ActivityChamado quando a Appé criada. Usado para
criação da view e acessoa componentes.
Chamado antes da App ficar Visível na tela. Se der tudo certo, chama onResume(), senão,
onStop().
M.Sc. Márcio Palheta 84/96
Ciclo de vida - ActivityChamado quando a Appé criada. Usado para
criação da view e acessoa componentes.
Chamado antes da App ficar Visível na tela. Se der tudo certo, chama onResume(), senão,
onStop().
Chamado quando a App está em 1o plano, ondeocorre interação com o
usuário.
M.Sc. Márcio Palheta 85/96
Ciclo de vida - Activity
Ocorre quando o Android chama outra atividade.
A nossa App perde o direito à tela.
M.Sc. Márcio Palheta 86/96
Ciclo de vida - Activity
Ocorre quando o Android chama outra atividade.
A nossa App perde o direito à tela.
Ocorre quando a Activity está a muito
tempo fora da tela
M.Sc. Márcio Palheta 87/96
Ciclo de vida - Activity
Ocorre quando o Android chama outra atividade.
A nossa App perde o direito à tela.
Última chance da Appexecutar algo. Ocorre
porque o Android precisade recursos, ou usuário
finalizou a App
Ocorre quando a Activity está a muito
tempo fora da tela
M.Sc. Márcio Palheta 88/96
Exercício 02: Teste de eventos
● Vamos alterar nossa classe OlaMundoActivity para incluir mensagens de log, lançadas a cada evento do ciclo de vida da Activity
● Que tal usarmos o famoso sysout ? Nem pensar. :-)
● Vamos usar o LogCat
● Para isso, basta usarmos o comando:
– Log.i(“GrupoDeMensagens”, “Mensagem”)● Inclua mensagens em todos os métodos de eventos,
conforme exemplo a seguir
M.Sc. Márcio Palheta 89/96
Exercício 02: Teste de eventos
M.Sc. Márcio Palheta 90/96
Exercício 02: Teste de eventos
Atualização do método onCreate()
M.Sc. Márcio Palheta 91/96
Exercício 02: Teste de eventos
Atualização do método onCreate()
Novos métodospara log de eventos
M.Sc. Márcio Palheta 92/96
Exercício 02: resultado esperado
● Execute a App e veja as mensagens de log no LOGCAT
M.Sc. Márcio Palheta 93/96
Exercício 02: resultado esperado
● Execute a App e veja as mensagens de log no LOGCAT
M.Sc. Márcio Palheta 94/96
O que vem a seguir?
● Definições do projeto Agenda Escolar
● Tela de cadastro de professores
● Entendendo a herança entre Activity e ActionBarActivity
● Organização de componentes com LinearLayout
● Exibição de imagens com ImageView
● Textos com TextView
● Campos de texto com EditText
● Botões e eventos de click com Button
● Giro da tela e o armazenamento de estados
M.Sc. Márcio Palheta
95/96
Referências
● d.android.com
● http://developer.android.com/guide/topics/ui/actionbar.html
● LECHETA, Ricardo. Google Android, 3a edição, Novatec, São Paulo, 2013
● Código fonte completo: https://github.com/marciopalheta/cursosandroid
Capítulo 1: Introdução ao Android