Este documento fornece uma introdução ao desenvolvimento de aplicativos Android. Resume o seguinte:
1. Apresenta o instrutor e sua experiência com programação, Android e desenvolvimento web.
2. Explica como instalar o ambiente de desenvolvimento Android (ADT Bundle) e criar um primeiro aplicativo "Hello World".
3. Demonstra como criar layouts de tela em XML, adicionar componentes visuais e gerenciar o ciclo de vida de atividades.
2. M.Sc. Márcio Palheta 2/94
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
3. M.Sc. Márcio Palheta 3/94
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
5. M.Sc. Márcio Palheta 5/94
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
6. M.Sc. Márcio Palheta 6/94
Execução da IDE Eclipse
● Após descompactar o ADT Bundle, execute o eclipse
7. M.Sc. Márcio Palheta 7/94
Execução da IDE Eclipse
● Escolha um diretório
para sua área de
trabalho
9. M.Sc. Márcio Palheta 9/94
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
10. M.Sc. Márcio Palheta 10/94
Exercício 01: Minha primeira App
● Menu File/New/Android Application Project
14. M.Sc. Márcio Palheta 14/94
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
17. M.Sc. Márcio Palheta 17/94
OlaMundoActivity.java
Classe filha
de Activity
Método inicial
18. M.Sc. Márcio Palheta 18/94
OlaMundoActivity.java
Pluga a view
no controller
Classe filha
de Activity
Método inicial
19. M.Sc. Márcio Palheta 19/94
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: pasta padrão
– values-pt-rBR: português Brasil
– Values-en-rUS: inglês Estados Unidos
● RES/RAW/ armazena arquivos de mídia, como mp3
ou vídeos
20. M.Sc. Márcio Palheta 20/94
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
27. M.Sc. Márcio Palheta 27/94
/res/layout/olamundolayout.xml
Modo de edição
de XML
Layout principal
da tela
28. M.Sc. Márcio Palheta 28/94
/res/layout/olamundolayout.xml
Modo de edição
de XML
Layout principal
da tela
Atributos para
ocupar a tela toda
29. M.Sc. Márcio Palheta 29/94
/res/layout/olamundolayout.xml
Componente
de texto
Modo de edição
de XML
Layout principal
da tela
30. M.Sc. Márcio Palheta 30/94
/res/layout/olamundolayout.xml
Componente
de texto
Modo de edição
de XML
Layout principal
da tela
Tamanho
adequado ao
conteúdo
31. M.Sc. Márcio Palheta 31/94
/res/layout/olamundolayout.xml
Componente
de texto
Modo de edição
de XML
Layout principal
da tela
Referência para
o arquivo de I18N
/res/values/strings.xml
34. M.Sc. Márcio Palheta 34/94
/res/values/strings.xml
Arquivo usado
Para I18N
Chave usada
na view
35. M.Sc. Márcio Palheta 35/94
/res/values/strings.xml
Arquivo usado
Para I18N
Chave usada
na view
Valor a ser
exibido na view
36. M.Sc. Márcio Palheta 36/94
Teste da App em emuladores
● É uma boa prática o uso
de devices (tablets ou
celulares) para testar as
nossas Apps
● Outra opção para testes é
o uso de simuladores
● Clique no ícone do Android
Virtual Device Manager
● Na nova tela, clique no
botão New
40. M.Sc. Márcio Palheta 40/94
Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
41. M.Sc. Márcio Palheta 41/94
Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
Versão do
Android que
deve será
emulada
no device
42. M.Sc. Márcio Palheta 42/94
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
43. M.Sc. Márcio Palheta 43/94
Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
Versão do
Android que
deve será
emulada
no device
Encerre as
configurações
Ajuste o espaço
de
armazenamento
48. M.Sc. Márcio Palheta 48/94
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
49. M.Sc. Márcio Palheta 49/94
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
51. M.Sc. Márcio Palheta 51/94
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
57. M.Sc. Márcio Palheta 57/94
Ciclo de vida - ActivityChamado quando a App
é criada. Usado para
criação da view e acesso
a componentes.
58. M.Sc. Márcio Palheta 58/94
Ciclo de vida - ActivityChamado quando a App
é 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().
59. M.Sc. Márcio Palheta 59/94
Ciclo de vida - ActivityChamado quando a App
é 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.
60. M.Sc. Márcio Palheta 60/94
Ciclo de vida - Activity
Ocorre quando o Android
chama outra atividade.
A nossa App perde
o direito à tela.
61. M.Sc. Márcio Palheta 61/94
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.
62. M.Sc. Márcio Palheta 62/94
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
63. M.Sc. Márcio Palheta 63/94
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
65. M.Sc. Márcio Palheta 65/94
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
66. M.Sc. Márcio Palheta 66/94
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.
67. M.Sc. Márcio Palheta 67/94
Exercício 03: Inclusão de Strings
● Altere o arquivo /res/values/strings.xml
68. M.Sc. Márcio Palheta 68/94
Exercício 03: Inclusão de Strings
● Altere o arquivo /res/values/strings.xml
Novas chaves:
nome e clique
69. M.Sc. Márcio Palheta 69/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml
70. M.Sc. Márcio Palheta 70/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml
Novo layout
da nossa APP,
usando
LinearLayout
71. M.Sc. Márcio Palheta 71/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml
Componente
TextView
para exibir título
72. M.Sc. Márcio Palheta 72/94
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
73. M.Sc. Márcio Palheta 73/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml Componente
texto chamado
id = edNome
74. M.Sc. Márcio Palheta 74/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml
Componente
botão chamado
id = btExibir
75. M.Sc. Márcio Palheta 75/94
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.
77. M.Sc. Márcio Palheta 77/94
Exercício 03: Regras de negócio
Atributos que
representam
campos da tela
78. M.Sc. Márcio Palheta 78/94
Exercício 03: Regras de negócio
Busca campos
da tela por ID
79. M.Sc. Márcio Palheta 79/94
Exercício 03: Regras de negócio
Criação do
Listener para o
Evento de clique
do botão
80. M.Sc. Márcio Palheta 80/94
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
81. M.Sc. Márcio Palheta 81/94
Execução da App em um device
● Conect o cabo de dados de um device (tablet ou celular)
● Acione o menu Run / Run Configurations
82. M.Sc. Márcio Palheta 82/94
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..
83. M.Sc. Márcio Palheta 83/94
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
84. M.Sc. Márcio Palheta 84/94
Executando a App em um device
● Escolha o device onde você quer rodar sua app
85. M.Sc. Márcio Palheta 85/94
Executando a App em um device
● Escolha o device onde você quer rodar sua app
Escolha o device
86. M.Sc. Márcio Palheta 86/94
Executando a App em um device
● Escolha o device onde você quer rodar sua app
Escolha o device
Clique em OK
89. M.Sc. Márcio Palheta 89/94
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
90. M.Sc. Márcio Palheta 90/94
Exercício 04: Exibir tela de Alerta
● Tela atualizada ● /res/values/strings.xml
● /res/layout/olamundolayout.xml
92. M.Sc. Márcio Palheta 92/94
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
93. M.Sc. Márcio Palheta 93/94
Referências
● www.caelum.com.br
● d.android.com
● LECHETA, Ricardo. Google Android, 3a edição,
Novatec, São Paulo, 2013
● Código fonte completo:
https://github.com/marciopalheta/cursosandroid