Você está na página 1de 94

Android Bsico Hello World!

Instrutor

Programador desde 2000


Aluno de doutorado
Mestre em informtica pelo
ICOMP/UFAM
Especialista em aplicaes
WEB FUCAPI
marcio.palheta@gmail.com
sites.google.com/site/marcio
palheta

M.Sc. Mrcio Palheta 2/94


Agenda
Dispositivos e compatibilidade
Instalao do ambiente de programao Android
Primeira aplicao 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. Mrcio Palheta 3/94


Dispositivos e compatibilidade

M.Sc. Mrcio Palheta 4/94


Instalao do Android ADT Bundle

Android SDK (Software Development


Kit) prov ferramentas para realizao
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. Mrcio Palheta 5/94


Execuo da IDE Eclipse

Aps descompactar o ADT Bundle, execute o eclipse

M.Sc. Mrcio Palheta 6/94


Execuo da IDE Eclipse

Escolha um diretrio
para sua rea de
trabalho

M.Sc. Mrcio Palheta 7/94


Tela de Boas Vindas!

M.Sc. Mrcio Palheta 8/94


Atualizao 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. Mrcio Palheta 9/94


Exerccio 01: Minha primeira App
Menu File/New/Android Application Project

M.Sc. Mrcio Palheta 10/94


Exerccio 01: Configuraes da App

M.Sc. Mrcio Palheta 11/94


Exerccio 01: Definio de layout

M.Sc. Mrcio Palheta 12/94


Exerccio 01: Activity e Layout

M.Sc. Mrcio Palheta 13/94


O que foi gerado?

OlaMundoActivity.java: Classe filha


de Activity, reponsvel por controlar
uma tela da aplicao;
R.java: Classe responsvel pelo
mapeamento dos elementos da view
com model e cotroller.
OBS: NO alterar manualmente
Pasta RES: Pasta de recursos da
App, onde ficam as telas
AndroidManifest.xml: Arquivo de
configuraes da app

M.Sc. Mrcio Palheta 14/94


OlaMundoActivity.java

M.Sc. Mrcio Palheta 15/94


OlaMundoActivity.java

Classe filha
de Activity

M.Sc. Mrcio Palheta 16/94


OlaMundoActivity.java

Classe filha
de Activity

Mtodo inicial

M.Sc. Mrcio Palheta 17/94


OlaMundoActivity.java

Classe filha
de Activity

Mtodo inicial

Pluga a view
no controller

M.Sc. Mrcio Palheta 18/94


Recursos e a pasta RES

RES a pasta onde ficam os recursos de uma app


RES/LAYOUT/ armazena as telas da aplicao, escritas
em xml, como olamundolayout.xml
RES/VALUES/ pasta que utiliza qualifiers para facilitar a
internacionalizao da aplicao:
values: pasta padro
values-pt-rBR: portugus Brasil
Values-en-rUS: ingls Estados Unidos
RES/RAW/ armazena arquivos de mdia, como mp3
ou vdeos
M.Sc. Mrcio Palheta 19/94
Recursos e a pasta RES
RES/DRAWABLE/ pasta que armazenas imagens da app.
Usa qualifiers para definir a resoluo a ser utilizada:
res/drawable-ldpi: dispositivos com baixa
resoluo(muito raros)
res/drawable-mdpi: dispositivos com resoluo
mdia(raros)
res/drawable-hdpi: alta resoluo(maioria)
res/drawable-tvdpi: televises

M.Sc. Mrcio Palheta 20/94


/res/layout/olamundolayout.xml

M.Sc. Mrcio Palheta 21/94


/res/layout/olamundolayout.xml

Modo grfico

M.Sc. Mrcio Palheta 22/94


/res/layout/olamundolayout.xml

Paleta de
componentes

Modo grfico

M.Sc. Mrcio Palheta 23/94


/res/layout/olamundolayout.xml

Paleta de Pr-visualizao
componentes

Modo grfico

M.Sc. Mrcio Palheta 24/94


/res/layout/olamundolayout.xml

M.Sc. Mrcio Palheta 25/94


/res/layout/olamundolayout.xml

Modo de edio
de XML

M.Sc. Mrcio Palheta 26/94


/res/layout/olamundolayout.xml
Layout principal
da tela

Modo de edio
de XML

M.Sc. Mrcio Palheta 27/94


/res/layout/olamundolayout.xml
Layout principal
da tela
Atributos para
ocupar a tela toda

Modo de edio
de XML

M.Sc. Mrcio Palheta 28/94


/res/layout/olamundolayout.xml
Layout principal
da tela

Componente
de texto

Modo de edio
de XML

M.Sc. Mrcio Palheta 29/94


/res/layout/olamundolayout.xml
Layout principal
da tela

Componente Tamanho
de texto adequado ao
contedo

Modo de edio
de XML

M.Sc. Mrcio Palheta 30/94


/res/layout/olamundolayout.xml
Layout principal
da tela

Componente
de texto
Referncia para
o arquivo de I18N
/res/values/strings.xml

Modo de edio
de XML

M.Sc. Mrcio Palheta 31/94


/res/values/strings.xml

M.Sc. Mrcio Palheta 32/94


/res/values/strings.xml
Arquivo usado
Para I18N

M.Sc. Mrcio Palheta 33/94


/res/values/strings.xml
Arquivo usado
Para I18N

Chave usada
na view

M.Sc. Mrcio Palheta 34/94


/res/values/strings.xml
Arquivo usado
Para I18N

Chave usada Valor a ser


na view exibido na view

M.Sc. Mrcio Palheta 35/94


Teste da App em emuladores
uma boa prtica o uso
de devices (tablets ou Na nova tela, clique no
celulares) para testar as boto New
nossas Apps
Outra opo para testes
o uso de simuladores
Clique no cone do Android
Virtual Device Manager

M.Sc. Mrcio Palheta 36/94


Configuraes do emulador

M.Sc. Mrcio Palheta 37/94


Configuraes do emulador

M.Sc. Mrcio Palheta 38/94


Configuraes do emulador
Nome do
simulador

M.Sc. Mrcio Palheta 39/94


Configuraes do emulador
Nome do
simulador
Tipo de device
a ser emulado

M.Sc. Mrcio Palheta 40/94


Configuraes do emulador
Nome do
simulador
Tipo de device
a ser emulado
Verso do
Android que
deve ser
emulada
no device

M.Sc. Mrcio Palheta 41/94


Configuraes do emulador
Nome do
simulador
Tipo de device
a ser emulado
Verso do
Android que
deve ser
emulada
no device

Ajuste o espao
de
armazenamento

M.Sc. Mrcio Palheta 42/94


Configuraes do emulador
Nome do
simulador
Tipo de device
a ser emulado
Verso do
Android que
deve ser
emulada
no device

Ajuste o espao
de
armazenamento
Encerre as
configuraes

M.Sc. Mrcio Palheta 43/94


Iniciar o novo emulador

M.Sc. Mrcio Palheta 44/94


Iniciar o novo emulador

Selecione o seu
emulador

M.Sc. Mrcio Palheta 45/94


Iniciar o novo emulador

Selecione o seu
emulador

INICIE o seu
emulador

M.Sc. Mrcio Palheta 46/94


Iniciar o novo emulador

EXECUTE o seu
emulador

M.Sc. Mrcio Palheta 47/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. Mrcio Palheta 48/94


Configurao de deploy
Clique no menu Run / Run Configurations...
Clique com boto direito em Android Application / New
Informe um nome para a configurao: HelloWorld
Selecione o nosso projeto, clicando no boto Browser
Clique no boto Apply para salvar as configuraes
Clique no boto Run para executar a App no Virtual
Device (vulgo Emulador)
A seguir, veremos como fica a tela de configuraes

M.Sc. Mrcio Palheta 49/94


Configurando a execuo da App

M.Sc. Mrcio Palheta 50/94


Incluso de servio de LOG
Na primeira execuo da App, o ADT pergunta se voc
deseja usar o sistema de logs chamado Logcat

M.Sc. Mrcio Palheta 51/94


App rodando no Emulador

M.Sc. Mrcio Palheta 52/94


Fundamentos de Android
PROJETOS JAVA

Cdigo fonte
JAVA (.java)

Compilador
(javac)

Bytecode
JAVA (.class)

Empacota
(.jar)

JAVA
VM

M.Sc. Mrcio Palheta 53/94


Fundamentos de Android
PROJETOS JAVA PROJETOS ANDROID

Cdigo fonte Cdigo fonte


JAVA (.java) JAVA (.java)

Compilador Compilador
(javac) (javac)

Bytecode Bytecode
JAVA (.class) JAVA (.class)

Empacota Empacota
(.jar) (.dex)

JAVA DALVIK
VM VM

M.Sc. Mrcio Palheta 54/94


Fundamentos de Android - Estrutura

M.Sc. Mrcio Palheta 55/94


Ciclo de vida - Activity

M.Sc. Mrcio Palheta 56/94


Ciclo dequando
Chamado vidaa App
- Activity
criada. Usado para
criao da view e acesso
a componentes.

M.Sc. Mrcio Palheta 57/94


Ciclo dequando
Chamado vidaa App
- Activity
criada. Usado para Chamado antes da App
criao da view e acesso ficar Visvel na tela. Se
a componentes. der tudo certo, chama
onResume(), seno,
onStop().

M.Sc. Mrcio Palheta 58/94


Ciclo dequando
Chamado vidaa App
- Activity
criada. Usado para Chamado antes da App
criao da view e acesso ficar Visvel na tela. Se
a componentes. der tudo certo, chama
onResume(), seno,
onStop().

Chamado quando a App


est em 1o plano, onde
ocorre interao com o
usurio.

M.Sc. Mrcio Palheta 59/94


Ciclo de vida - Activity

Ocorre quando o Android


chama outra atividade.
A nossa App perde
o direito tela.

M.Sc. Mrcio Palheta 60/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. Mrcio 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
ltima chance da App est sendo eliminada.
executar algo. Ocorre
porque o Android precisa
de recursos, ou usurio
finalizou a App

M.Sc. Mrcio Palheta 62/94


Exerccio 02: Teste de eventos

Vamos alterar nossa classe OlaMundoActivity para


incluir mensagens de log, lanadas 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 mtodos de eventos,
conforme exemplo a seguir

M.Sc. Mrcio Palheta 63/94


Exerccio 02: Teste de eventos

M.Sc. Mrcio Palheta 64/94


Componentes de tela
As telas em Android so
feitas em arquivos XML
Telas ficam em:
/res/layouts
Componentes declados no
XML so tratados como
componentes java, filhos
de android.view.View
Podemos agrupa-losem
ViewGroup's filhas de View

M.Sc. Mrcio Palheta 65/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 usurio
Um boto que, aps o clique, exibe uma mensagem
de boas vindas.

M.Sc. Mrcio Palheta 66/94


Exerccio 03: Incluso de Strings
Altere o arquivo /res/values/strings.xml

M.Sc. Mrcio Palheta 67/94


Exerccio 03: Incluso de Strings
Altere o arquivo /res/values/strings.xml

Novas chaves:
nome e clique

M.Sc. Mrcio Palheta 68/94


Exerccio 03: Mudanas na tela
Arquivo: /res/layout/olamundolayout.xml

M.Sc. Mrcio Palheta 69/94


Exerccio 03: Mudanas na tela
Arquivo: /res/layout/olamundolayout.xml

Novo layout
da nossa APP,
usando
LinearLayout

M.Sc. Mrcio Palheta 70/94


Exerccio 03: Mudanas na tela
Arquivo: /res/layout/olamundolayout.xml

Componente
TextView
para exibir ttulo

M.Sc. Mrcio Palheta 71/94


Exerccio 03: Mudanas na tela
Arquivo: /res/layout/olamundolayout.xml

Componente
TextView
para exibir ttulo

Define que o ID
do componente
igual a tvHello

M.Sc. Mrcio Palheta 72/94


Exerccio 03: Mudanas na tela
Componente
Arquivo: /res/layout/olamundolayout.xml texto chamado
id = edNome

M.Sc. Mrcio Palheta 73/94


Exerccio 03: Mudanas na tela
Arquivo: /res/layout/olamundolayout.xml

Componente
boto chamado
id = btExibir

M.Sc. Mrcio Palheta 74/94


Na estrada, at aqui...

Alteramos a view (olamundolayout.xml), para incluso


de dois componentes:
Um EditText que representa um campo de texto que
recebe um texto digitado pelo usurio
E um Button que representa um boto. Aps o
evento de clique do boto, o sistema deve exibir uma
mensagem de boas vindas.
Agora, precisamos alterar a classe controller
(OlaMundoActivity.java), para implementao da
lgica de negcios da nossa app.

M.Sc. Mrcio Palheta 75/94


Exerccio 03: Regras de negcio

M.Sc. Mrcio Palheta 76/94


Exerccio 03: Regras de negcio

Atributos que
representam
campos da tela

M.Sc. Mrcio Palheta 77/94


Exerccio 03: Regras de negcio

Busca campos
da tela por ID

M.Sc. Mrcio Palheta 78/94


Exerccio 03: Regras de negcio

Criao do
Listener para o
Evento de clique
do boto

M.Sc. Mrcio Palheta 79/94


Exerccio 03: Regras de negcio

Criao do
Listener para o
Mtodo invocado Evento de clique
aps o clique do boto
do boto

M.Sc. Mrcio Palheta 80/94


Execuo da App em um device
Conect o cabo de dados de um device (tablet ou celular)
Acione o menu Run / Run Configurations

M.Sc. Mrcio Palheta 81/94


Execuo 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 opo
Always prompt..

M.Sc. Mrcio Palheta 82/94


Execuo 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 opo
Always prompt..

Execute a app

M.Sc. Mrcio Palheta 83/94


Executando a App em um device

Escolha o device onde voc quer rodar sua app

M.Sc. Mrcio Palheta 84/94


Executando a App em um device

Escolha o device onde voc quer rodar sua app


Escolha o device

M.Sc. Mrcio Palheta 85/94


Executando a App em um device

Escolha o device onde voc quer rodar sua app


Escolha o device

Clique em OK

M.Sc. Mrcio Palheta 86/94


App rodando no device
Device Galaxy S2

M.Sc. Mrcio Palheta 87/94


App rodando no device
Device Galaxy S2 Virtual Device

M.Sc. Mrcio Palheta 88/94


Alertas e confirmaes
No desenvolvimento de aplicaes, comum o uso de
telas de Alerta e Confirmao
Para essa finalidade, em Android utilizamos a classe
android.app.AlertDialog
A classe esttica android.app.AlertDialog.Builder usada
construo do componente, e atualizao da tela
No exerccio a seguir, criaremos um novo boto na tela
principal e, quando clicado, ser exibida uma tela de alerta

M.Sc. Mrcio Palheta 89/94


Exerccio 04: Exibir tela de Alerta
Tela atualizada /res/values/strings.xml

/res/layout/olamundolayout.xml

M.Sc. Mrcio Palheta 90/94


Exerccio 04: Exibir tela de Alerta

M.Sc. Mrcio Palheta 91/94


O que vem a seguir?
Cadastro de Alunos
Tela de cadastro
Persistncia com SQLite
Intents
Cmera e arquivos
LayoutInflater
Servios de background
Integrao via JSON

M.Sc. Mrcio Palheta 92/94


Referncias

www.caelum.com.br
d.android.com
LECHETA, Ricardo. Google Android, 3a edio,
Novatec, So Paulo, 2013
Cdigo fonte completo:
https://github.com/marciopalheta/cursosandroid

M.Sc. Mrcio Palheta 93/94


Android Bsico Hello World!

Você também pode gostar