O documento apresenta um curso básico sobre desenvolvimento de aplicativos Android, abordando tópicos como instalação do ambiente de desenvolvimento, criação do primeiro projeto "Hello World", uso de emuladores, ciclo de vida de atividades, recursos de interface e layouts.
2. Instrutor
●
Programador desde 2000
●
Aluno de doutorado
●
●
●
●
Mestre em informática pelo
ICOMP/UFAM
Especialista em aplicações
WEB – FUCAPI
marcio.palheta@gmail.com
sites.google.com/site/marcio
palheta
M.Sc. Márcio Palheta
2/94
3. Agenda
●
Dispositivos e compatibilidade
●
Instalação do ambiente de programação Android
●
Primeira aplicação android – Hello World!
●
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
3/94
5. Instalação do Android – ADT Bundle
●
●
Android SDK (Software Development
Kit) provê ferramentas para realização
de builds, testes e debug
ADT Bundle (Android Developer
Tools) é o ambiente de
desenvolvimento que traz Android
SDK e a IDE Eclipse juntos, prontos
para o trabalho.
●
Baixe e descompacte o ADT Bundle:
●
http://developer.android.com/sdk/index.html
M.Sc. Márcio Palheta
5/94
6. Execução da IDE Eclipse
●
Após descompactar o ADT Bundle, execute o eclipse
M.Sc. Márcio Palheta
6/94
7. Execução da IDE Eclipse
●
Escolha um diretório
para sua área de
trabalho
M.Sc. Márcio Palheta
7/94
9. Atualização das ferramentas
●
●
●
No menu principal,
selecione: Android SDK
Manager
Neste curso, usaremos o
Android 4.4 (API 19)
É uma boa baixar a
Google API
M.Sc. Márcio Palheta
9/94
10. Exercício 01: Minha primeira App
●
Menu File/New/Android Application Project
M.Sc. Márcio Palheta
10/94
14. O que foi gerado?
●
●
OlaMundoActivity.java: Classe filha
de Activity, reponsável por controlar
uma tela da aplicação;
R.java: Classe responsável pelo
mapeamento dos elementos da view
com model e cotroller.
OBS: NÃO alterar manualmente
●
●
Pasta RES: Pasta de recursos da
App, onde ficam as telas
AndroidManifest.xml: Arquivo de
configurações da app
M.Sc. Márcio Palheta
14/94
19. Recursos e a pasta RES
●
●
●
RES é a pasta onde ficam os recursos de uma app
RES/LAYOUT/ armazena as telas da aplicação, escritas
em xml, como olamundolayout.xml
RES/VALUES/ pasta que utiliza qualifiers para facilitar a
internacionalização da aplicação:
–
–
values-pt-rBR: português Brasil
–
●
values: pasta padrão
Values-en-rUS: inglês Estados Unidos
RES/RAW/ armazena arquivos de mídia, como mp3
ou vídeos
M.Sc. Márcio Palheta
19/94
20. Recursos e a pasta RES
●
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
M.Sc. Márcio Palheta
20/94
36. Teste da App em emuladores
●
●
●
É uma boa prática o uso
de devices (tablets ou
celulares) para testar as
nossas Apps
●
Na nova tela, clique no
botão New
Outra opção para testes é
o uso de simuladores
Clique no ícone do Android
Virtual Device Manager
M.Sc. Márcio Palheta
36/94
41. Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
Versão do
Android que
deve será
emulada
no device
M.Sc. Márcio Palheta
41/94
42. Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
Versão do
Android que
deve será
emulada
no device
Ajuste o espaço
de
armazenamento
M.Sc. Márcio Palheta
42/94
43. Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
Versão do
Android que
deve será
emulada
no device
Ajuste o espaço
de
armazenamento
Encerre as
configurações
M.Sc. Márcio Palheta
43/94
45. Iniciar o novo emulador
Selecione o seu
emulador
M.Sc. Márcio Palheta
45/94
46. Iniciar o novo emulador
Selecione o seu
emulador
INICIE o seu
emulador
M.Sc. Márcio Palheta
46/94
47. Iniciar o novo emulador
EXECUTE o seu
emulador
M.Sc. Márcio Palheta
47/94
48. Emulador pronto para o uso
●
●
●
Um booom tempo depois,
o seu emulador está
pronto para o uso
Por motivos óbvios, evite
encerrar o emulador
Agora, vamos executar
nossa primeira App e ver o
resultado no emulador
criado
M.Sc. Márcio Palheta
48/94
49. Configuração de deploy
●
Clique no menu Run / Run Configurations...
●
Clique com botão direito em Android Application / New
●
Informe um nome para a configuração: HelloWorld
●
Selecione o nosso projeto, clicando no botão Browser
●
Clique no botão Apply para salvar as configurações
●
●
Clique no botão Run para executar a App no Virtual
Device (vulgo Emulador)
A seguir, veremos como fica a tela de configurações
M.Sc. Márcio Palheta
49/94
51. Inclusão de serviço de LOG
●
Na primeira execução da App, o ADT pergunta se você
deseja usar o sistema de logs chamado Logcat
M.Sc. Márcio Palheta
51/94
57. Ciclo de vida App
Chamado quando a - Activity
é criada. Usado para
criação da view e acesso
a componentes.
M.Sc. Márcio Palheta
57/94
58. Ciclo de vida App
Chamado quando a - Activity
é criada. Usado para
criação da view e acesso
a componentes.
Chamado antes da App
ficar Visível na tela. Se
der tudo certo, chama
onResume(), senão,
onStop().
M.Sc. Márcio Palheta
58/94
59. Ciclo de vida App
Chamado quando a - Activity
é criada. Usado para
criação da view e acesso
a 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, onde
ocorre interação com o
usuário.
M.Sc. Márcio Palheta
59/94
60. Ciclo de vida - Activity
Ocorre quando o Android
chama outra atividade.
A nossa App perde
o direito à tela.
M.Sc. Márcio Palheta
60/94
61. Ciclo de vida - Activity
Ocorre quando o Android
chama outra atividade.
A nossa App perde
o direito à tela.
Ocorre quando outra
atividade obteve o 1o
plano ou quando a App
está sendo eliminada.
M.Sc. Márcio Palheta
61/94
62. Ciclo de vida - Activity
Ocorre quando o Android
chama outra atividade.
A nossa App perde
o direito à tela.
Ocorre quando outra
atividade obteve o 1o
plano ou quando a App
está sendo eliminada.
Última chance da App
executar algo. Ocorre
porque o Android precisa
de recursos, ou usuário
finalizou a App
M.Sc. Márcio Palheta
62/94
63. 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
63/94
65. Componentes de tela
●
●
●
●
As telas em Android são
feitas em arquivos XML
Telas ficam em:
/res/layouts
Componentes declados no
XML são tratados como
componentes java, filhos
de android.view.View
Podemos agrupa-losem
ViewGroup's filhas de View
M.Sc. Márcio Palheta
65/94
66. Novos componentes de tela
●
Vamos melhorar nossa interface, alterando o layout para
LinearLayout e incluindo:
–
Um campo de texto para receber o nome do usuário
–
Um botão que, após o clique, exibe uma mensagem
de boas vindas.
M.Sc. Márcio Palheta
66/94
67. Exercício 03: Inclusão de Strings
●
Altere o arquivo /res/values/strings.xml
M.Sc. Márcio Palheta
67/94
68. Exercício 03: Inclusão de Strings
●
Altere o arquivo /res/values/strings.xml
Novas chaves:
nome e clique
M.Sc. Márcio Palheta
68/94
69. Exercício 03: Mudanças na tela
●
Arquivo: /res/layout/olamundolayout.xml
M.Sc. Márcio Palheta
69/94
70. Exercício 03: Mudanças na tela
●
Arquivo: /res/layout/olamundolayout.xml
Novo layout
da nossa APP,
usando
LinearLayout
M.Sc. Márcio Palheta
70/94
71. Exercício 03: Mudanças na tela
●
Arquivo: /res/layout/olamundolayout.xml
Componente
TextView
para exibir título
M.Sc. Márcio Palheta
71/94
72. Exercício 03: Mudanças na tela
●
Arquivo: /res/layout/olamundolayout.xml
Componente
TextView
para exibir título
Define que o ID
do componente é
igual a tvHello
M.Sc. Márcio Palheta
72/94
73. Exercício 03: Mudanças na tela
●
Arquivo: /res/layout/olamundolayout.xml
M.Sc. Márcio Palheta
Componente
texto chamado
id = edNome
73/94
74. Exercício 03: Mudanças na tela
●
Arquivo: /res/layout/olamundolayout.xml
Componente
botão chamado
id = btExibir
M.Sc. Márcio Palheta
74/94
75. Na estrada, até aqui...
●
Alteramos a view (olamundolayout.xml), para inclusão
de dois componentes:
–
–
●
Um EditText que representa um campo de texto que
recebe um texto digitado pelo usuário
E um Button que representa um botão. Após o
evento de clique do botão, o sistema deve exibir uma
mensagem de boas vindas.
Agora, precisamos alterar a classe controller
(OlaMundoActivity.java), para implementação da
lógica de negócios da nossa app.
M.Sc. Márcio Palheta
75/94
77. Exercício 03: Regras de negócio
Atributos que
representam
campos da tela
M.Sc. Márcio Palheta
77/94
78. Exercício 03: Regras de negócio
Busca campos
da tela por ID
M.Sc. Márcio Palheta
78/94
79. Exercício 03: Regras de negócio
Criação do
Listener para o
Evento de clique
do botão
M.Sc. Márcio Palheta
79/94
80. Exercício 03: Regras de negócio
Criação do
Listener para o
Evento de clique
do botão
Método invocado
após o clique
do botão
M.Sc. Márcio Palheta
80/94
81. Execução da App em um device
●
Conect o cabo de dados de um device (tablet ou celular)
●
Acione o menu Run / Run Configurations
M.Sc. Márcio Palheta
81/94
82. Execução da App em um device
●
Conect o cabo de dados de um device (tablet ou celular)
●
Acione o menu Run / Run Configurations
Na aba Target,
selecione a opção
Always prompt..
M.Sc. Márcio Palheta
82/94
83. Execução da App em um device
●
Conect o cabo de dados de um device (tablet ou celular)
●
Acione o menu Run / Run Configurations
Na aba Target,
selecione a opção
Always prompt..
Execute a app
M.Sc. Márcio Palheta
83/94
84. Executando a App em um device
●
Escolha o device onde você quer rodar sua app
M.Sc. Márcio Palheta
84/94
85. Executando a App em um device
●
Escolha o device onde você quer rodar sua app
Escolha o device
M.Sc. Márcio Palheta
85/94
86. Executando a App em um device
●
Escolha o device onde você quer rodar sua app
Escolha o device
Clique em OK
M.Sc. Márcio Palheta
86/94
89. Alertas e confirmações
●
●
●
●
No desenvolvimento de aplicações, é comum o uso de
telas de Alerta e Confirmação
Para essa finalidade, em Android utilizamos a classe
android.app.AlertDialog
A classe estática android.app.AlertDialog.Builder é usada
construção do componente, e atualização da tela
No exercício a seguir, criaremos um novo botão na tela
principal e, quando clicado, será exibida uma tela de alerta
M.Sc. Márcio Palheta
89/94
90. Exercício 04: Exibir tela de Alerta
●
Tela atualizada
●
/res/values/strings.xml
●
/res/layout/olamundolayout.xml
M.Sc. Márcio Palheta
90/94
92. O que vem a seguir?
●
Cadastro de Alunos
●
Tela de cadastro
●
Persistência com SQLite
●
Intents
●
Câmera e arquivos
●
LayoutInflater
●
Serviços de background
●
Integração via JSON
M.Sc. Márcio Palheta
92/94