SlideShare a Scribd company logo
1 of 94
Android Básico – Hello World!
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
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
M.Sc. Márcio Palheta 4/94
Dispositivos e compatibilidade
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
M.Sc. Márcio Palheta 6/94
Execução da IDE Eclipse
● Após descompactar o ADT Bundle, execute o eclipse
M.Sc. Márcio Palheta 7/94
Execução da IDE Eclipse
● Escolha um diretório
para sua área de
trabalho
M.Sc. Márcio Palheta 8/94
Tela de Boas Vindas!
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
M.Sc. Márcio Palheta 10/94
Exercício 01: Minha primeira App
● Menu File/New/Android Application Project
M.Sc. Márcio Palheta 11/94
Exercício 01: Configurações da App
M.Sc. Márcio Palheta 12/94
Exercício 01: Definição de layout
M.Sc. Márcio Palheta 13/94
Exercício 01: Activity e Layout
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
M.Sc. Márcio Palheta 15/94
OlaMundoActivity.java
M.Sc. Márcio Palheta 16/94
OlaMundoActivity.java
Classe filha
de Activity
M.Sc. Márcio Palheta 17/94
OlaMundoActivity.java
Classe filha
de Activity
Método inicial
M.Sc. Márcio Palheta 18/94
OlaMundoActivity.java
Pluga a view
no controller
Classe filha
de Activity
Método inicial
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
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
M.Sc. Márcio Palheta 21/94
/res/layout/olamundolayout.xml
M.Sc. Márcio Palheta 22/94
/res/layout/olamundolayout.xml
Modo gráfico
M.Sc. Márcio Palheta 23/94
/res/layout/olamundolayout.xml
Modo gráfico
Paleta de
componentes
M.Sc. Márcio Palheta 24/94
/res/layout/olamundolayout.xml
Modo gráfico
Paleta de
componentes
Pré-visualização
M.Sc. Márcio Palheta 25/94
/res/layout/olamundolayout.xml
M.Sc. Márcio Palheta 26/94
/res/layout/olamundolayout.xml
Modo de edição
de XML
M.Sc. Márcio Palheta 27/94
/res/layout/olamundolayout.xml
Modo de edição
de XML
Layout principal
da tela
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
M.Sc. Márcio Palheta 29/94
/res/layout/olamundolayout.xml
Componente
de texto
Modo de edição
de XML
Layout principal
da tela
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
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
M.Sc. Márcio Palheta 32/94
/res/values/strings.xml
M.Sc. Márcio Palheta 33/94
/res/values/strings.xml
Arquivo usado
Para I18N
M.Sc. Márcio Palheta 34/94
/res/values/strings.xml
Arquivo usado
Para I18N
Chave usada
na view
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
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
M.Sc. Márcio Palheta 37/94
Configurações do emulador
M.Sc. Márcio Palheta 38/94
Configurações do emulador
M.Sc. Márcio Palheta 39/94
Configurações do emulador
Nome do
simulador
M.Sc. Márcio Palheta 40/94
Configurações do emulador
Nome do
simulador
Tipo de device
a ser emulado
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
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
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
M.Sc. Márcio Palheta 44/94
Iniciar o novo emulador
M.Sc. Márcio Palheta 45/94
Iniciar o novo emulador
Selecione o seu
emulador
M.Sc. Márcio Palheta 46/94
Iniciar o novo emulador
Selecione o seu
emulador
INICIE o seu
emulador
M.Sc. Márcio Palheta 47/94
Iniciar o novo emulador
EXECUTE o seu
emulador
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
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
M.Sc. Márcio Palheta 50/94
Configurando a execução da App
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
M.Sc. Márcio Palheta 52/94
App rodando no Emulador
M.Sc. Márcio Palheta 53/94
Fundamentos de Android
Código fonte
JAVA (.java)
Compilador
(javac)
Bytecode
JAVA (.class)
Empacota
(.jar)
JAVA
VM
PROJETOS JAVA
M.Sc. Márcio Palheta 54/94
Fundamentos de Android
Código fonte
JAVA (.java)
Compilador
(javac)
Bytecode
JAVA (.class)
Empacota
(.jar)
JAVA
VM
PROJETOS JAVA
Código fonte
JAVA (.java)
Compilador
(javac)
Bytecode
JAVA (.class)
Empacota
(.dex)
DALVIK
VM
PROJETOS ANDROID
M.Sc. Márcio Palheta 55/94
Fundamentos de Android - Estrutura
M.Sc. Márcio Palheta 56/94
Ciclo de vida - Activity
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.
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().
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.
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.
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.
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
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
M.Sc. Márcio Palheta 64/94
Exercício 02: Teste de eventos
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
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.
M.Sc. Márcio Palheta 67/94
Exercício 03: Inclusão de Strings
● Altere o arquivo /res/values/strings.xml
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
M.Sc. Márcio Palheta 69/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml
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
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
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
M.Sc. Márcio Palheta 73/94
Exercício 03: Mudanças na tela
● Arquivo: /res/layout/olamundolayout.xml Componente
texto chamado
id = edNome
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
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.
M.Sc. Márcio Palheta 76/94
Exercício 03: Regras de negócio
M.Sc. Márcio Palheta 77/94
Exercício 03: Regras de negócio
Atributos que
representam
campos da tela
M.Sc. Márcio Palheta 78/94
Exercício 03: Regras de negócio
Busca campos
da tela por ID
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
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
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
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..
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
M.Sc. Márcio Palheta 84/94
Executando a App em um device
● Escolha o device onde você quer rodar sua app
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
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
M.Sc. Márcio Palheta 87/94
App rodando no device
Device Galaxy S2
M.Sc. Márcio Palheta 88/94
App rodando no device
Device Galaxy S2 Virtual Device
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
M.Sc. Márcio Palheta 90/94
Exercício 04: Exibir tela de Alerta
● Tela atualizada ● /res/values/strings.xml
● /res/layout/olamundolayout.xml
M.Sc. Márcio Palheta 91/94
Exercício 04: Exibir tela de Alerta
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
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
Android Básico – Hello World!

More Related Content

What's hot

Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
Horacio Diamante Mondlane
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
Leandro Santos
 

What's hot (20)

Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Minicurso de App Inventor
Minicurso de App InventorMinicurso de App Inventor
Minicurso de App Inventor
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Criando um App com App Inventor 2
Criando um App com App Inventor 2Criando um App com App Inventor 2
Criando um App com App Inventor 2
 
Tutorial de como Instalar o App Inventor
Tutorial de como Instalar o App InventorTutorial de como Instalar o App Inventor
Tutorial de como Instalar o App Inventor
 
Java14
Java14Java14
Java14
 
Appinventor - Faça simples apps android
Appinventor - Faça simples apps androidAppinventor - Faça simples apps android
Appinventor - Faça simples apps android
 
Applets
AppletsApplets
Applets
 
Capítulo 09 - Serviços em Background
Capítulo 09 - Serviços em BackgroundCapítulo 09 - Serviços em Background
Capítulo 09 - Serviços em Background
 
Visualg primeira interação
Visualg   primeira interaçãoVisualg   primeira interação
Visualg primeira interação
 
Java12
Java12Java12
Java12
 
Tutorial logix pro
Tutorial logix proTutorial logix pro
Tutorial logix pro
 
AppInventor - Conhecendo o ambiente e seus principais componentes
AppInventor - Conhecendo o ambiente e seus principais componentesAppInventor - Conhecendo o ambiente e seus principais componentes
AppInventor - Conhecendo o ambiente e seus principais componentes
 
Aula - Activity
Aula  -  ActivityAula  -  Activity
Aula - Activity
 
Watch face gdg jf
Watch face gdg jfWatch face gdg jf
Watch face gdg jf
 
Minicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up SystemsMinicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up Systems
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 
Algoritmos e Visualg parte 1
Algoritmos e Visualg   parte 1Algoritmos e Visualg   parte 1
Algoritmos e Visualg parte 1
 

Viewers also liked

Dia 1 android diogo henrique
Dia 1 android diogo henriqueDia 1 android diogo henrique
Dia 1 android diogo henrique
Diogo Henrique
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
Natanael Fonseca
 

Viewers also liked (20)

Hello World Android
Hello World AndroidHello World Android
Hello World Android
 
Dia 1 android diogo henrique
Dia 1 android diogo henriqueDia 1 android diogo henrique
Dia 1 android diogo henrique
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Android Secomp 2011
Android Secomp 2011Android Secomp 2011
Android Secomp 2011
 
Hello world ao mundo mobile focado no android
Hello world ao mundo mobile focado no androidHello world ao mundo mobile focado no android
Hello world ao mundo mobile focado no android
 
Hello World Android
Hello World AndroidHello World Android
Hello World Android
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Minicurso2013
Minicurso2013Minicurso2013
Minicurso2013
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Minicurso Programação Android
Minicurso Programação AndroidMinicurso Programação Android
Minicurso Programação Android
 
Slidshared
SlidsharedSlidshared
Slidshared
 
Aula android 01.pdf
Aula android 01.pdfAula android 01.pdf
Aula android 01.pdf
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Implantação de um ERP - Vantagens e Dificuldades
Implantação de um ERP - Vantagens e DificuldadesImplantação de um ERP - Vantagens e Dificuldades
Implantação de um ERP - Vantagens e Dificuldades
 
Cenário do mercado erp
Cenário do mercado erpCenário do mercado erp
Cenário do mercado erp
 
Sistema De Gestao Empresarial Erp
Sistema De Gestao Empresarial ErpSistema De Gestao Empresarial Erp
Sistema De Gestao Empresarial Erp
 
Sobre Erp (Basico)
Sobre Erp (Basico)Sobre Erp (Basico)
Sobre Erp (Basico)
 
SIG: MRP, ERP, CRM e SCM
SIG: MRP, ERP, CRM e SCMSIG: MRP, ERP, CRM e SCM
SIG: MRP, ERP, CRM e SCM
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 

Similar to Aula 02 fundamentos

Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
Eliane Collins
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
Renato
 
Utiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoUtiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuração
Jaguaraci Silva
 

Similar to Aula 02 fundamentos (20)

Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
Curso Básico Android - Aula 05
Curso Básico Android - Aula 05Curso Básico Android - Aula 05
Curso Básico Android - Aula 05
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Capítulo 12 - Fragments
Capítulo 12 - FragmentsCapítulo 12 - Fragments
Capítulo 12 - Fragments
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
2° Workshop de Testes em Uberlândia - Treinamento em Automação de Testes com ...
2° Workshop de Testes em Uberlândia - Treinamento em Automação de Testes com ...2° Workshop de Testes em Uberlândia - Treinamento em Automação de Testes com ...
2° Workshop de Testes em Uberlândia - Treinamento em Automação de Testes com ...
 
Desenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com AndroidDesenvolvendo Aplicativos com Android
Desenvolvendo Aplicativos com Android
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Utiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuraçãoUtiizando o Celular no Apoio à Gerência de configuração
Utiizando o Celular no Apoio à Gerência de configuração
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
[MTC 2021] Regressão visual com applitools, appium e amazon aws device farm -...
 
Django - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes PlugaveisDjango - Criando Aplicacoes Plugaveis
Django - Criando Aplicacoes Plugaveis
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGap
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
 

Aula 02 fundamentos

  • 1. Android Básico – Hello World!
  • 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
  • 4. M.Sc. Márcio Palheta 4/94 Dispositivos e compatibilidade
  • 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
  • 8. M.Sc. Márcio Palheta 8/94 Tela de Boas Vindas!
  • 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
  • 11. M.Sc. Márcio Palheta 11/94 Exercício 01: Configurações da App
  • 12. M.Sc. Márcio Palheta 12/94 Exercício 01: Definição de layout
  • 13. M.Sc. Márcio Palheta 13/94 Exercício 01: Activity e Layout
  • 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
  • 15. M.Sc. Márcio Palheta 15/94 OlaMundoActivity.java
  • 16. M.Sc. Márcio Palheta 16/94 OlaMundoActivity.java Classe filha de Activity
  • 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
  • 21. M.Sc. Márcio Palheta 21/94 /res/layout/olamundolayout.xml
  • 22. M.Sc. Márcio Palheta 22/94 /res/layout/olamundolayout.xml Modo gráfico
  • 23. M.Sc. Márcio Palheta 23/94 /res/layout/olamundolayout.xml Modo gráfico Paleta de componentes
  • 24. M.Sc. Márcio Palheta 24/94 /res/layout/olamundolayout.xml Modo gráfico Paleta de componentes Pré-visualização
  • 25. M.Sc. Márcio Palheta 25/94 /res/layout/olamundolayout.xml
  • 26. M.Sc. Márcio Palheta 26/94 /res/layout/olamundolayout.xml Modo de edição de XML
  • 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
  • 32. M.Sc. Márcio Palheta 32/94 /res/values/strings.xml
  • 33. M.Sc. Márcio Palheta 33/94 /res/values/strings.xml Arquivo usado Para I18N
  • 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
  • 37. M.Sc. Márcio Palheta 37/94 Configurações do emulador
  • 38. M.Sc. Márcio Palheta 38/94 Configurações do emulador
  • 39. M.Sc. Márcio Palheta 39/94 Configurações do emulador Nome do simulador
  • 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
  • 44. M.Sc. Márcio Palheta 44/94 Iniciar o novo emulador
  • 45. M.Sc. Márcio Palheta 45/94 Iniciar o novo emulador Selecione o seu emulador
  • 46. M.Sc. Márcio Palheta 46/94 Iniciar o novo emulador Selecione o seu emulador INICIE o seu emulador
  • 47. M.Sc. Márcio Palheta 47/94 Iniciar o novo emulador EXECUTE o seu emulador
  • 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
  • 50. M.Sc. Márcio Palheta 50/94 Configurando a execução da App
  • 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
  • 52. M.Sc. Márcio Palheta 52/94 App rodando no Emulador
  • 53. M.Sc. Márcio Palheta 53/94 Fundamentos de Android Código fonte JAVA (.java) Compilador (javac) Bytecode JAVA (.class) Empacota (.jar) JAVA VM PROJETOS JAVA
  • 54. M.Sc. Márcio Palheta 54/94 Fundamentos de Android Código fonte JAVA (.java) Compilador (javac) Bytecode JAVA (.class) Empacota (.jar) JAVA VM PROJETOS JAVA Código fonte JAVA (.java) Compilador (javac) Bytecode JAVA (.class) Empacota (.dex) DALVIK VM PROJETOS ANDROID
  • 55. M.Sc. Márcio Palheta 55/94 Fundamentos de Android - Estrutura
  • 56. M.Sc. Márcio Palheta 56/94 Ciclo de vida - Activity
  • 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
  • 64. M.Sc. Márcio Palheta 64/94 Exercício 02: Teste de eventos
  • 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.
  • 76. M.Sc. Márcio Palheta 76/94 Exercício 03: Regras de negócio
  • 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
  • 87. M.Sc. Márcio Palheta 87/94 App rodando no device Device Galaxy S2
  • 88. M.Sc. Márcio Palheta 88/94 App rodando no device Device Galaxy S2 Virtual Device
  • 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
  • 91. M.Sc. Márcio Palheta 91/94 Exercício 04: Exibir tela de Alerta
  • 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
  • 94. Android Básico – Hello World!