SlideShare uma empresa Scribd logo
1 de 56
INICIANDO COM A PLATAFORMA 
ANDROID 
“Não basta adquirir 
sabedoria; é preciso, além 
disso, saber utilizá-la.” 
(Cicero , 106-43 a.C.) 
1
CONTEÚDO 
• Instalação do Android SDK 
• Instalação do Plugin no Eclipse 
• Emuladores do Android 
• Minha primeira aplicação 
• Entendendo o que foi gerado 
• Componentes GUI 
2
INSTALAÇÃO DO ANDROID SDK 
• Orientações mais detalhadas sobre o 
processo de instalação do Android 
SDK estão disponíveis em: 
– 
http://developer.android.com/sdk/installing/bundle 
.html 
3
INSTALAÇÃO DO PLUGIN NO ECLIPSE 
• Vamos utilizar a IDE Eclipse (versão Eclipse 
Platform 3.8.0), distribuição ADT Bundle; 
• Para integrar o Android ao Eclipse é 
necessário utilizar o plugin ADT(Android 
Development Tools); 
• Mais detalhes podem ser encontrados em: 
– http://developer.android.com/sdk/index.html 
– Android_Eclipse_Instalacao_Configuracao.pdf 
4
AVDS DO ANDROID 
• São criados/definidos via AVD Manager, 
recurso disponível no Android SDK; 
• Permite definir parâmetros de hardware 
personalizados na criação dos 
emuladores; 
• Podem ser baixados e integrados alguns 
modelos de emuladores prontos. 
5
AVDS DO ANDROID 
Máquinas virtuais 
para executar as 
aplicações. 
6
ANDROID DEVICES 
7
EMULADORES DO ANDROID 
• Utilizados para desenvolver aplicações no Android, 
que tem um emulador para simular o celular, 
ferramentas utilitárias e uma API completa para a 
linguagem Java, com todas as classes necessárias para 
desenvolver as aplicações; 
• Com um plugin o emulador pode ser iniciado 
diretamente do Eclipse. 
• Também é possível plugar um dispositivo(smartphone 
ou tablet) na porta USB do computador e executar os 
aplicativos diretamente no dispositivo. 8
MINHA PRIMEIRA APLICAÇÃO: 
CONHECENDO A IDE DO ECLIPSE 
• Vamos criar nosso primeiro programa no Eclipse! 
9
MINHA PRIMEIRA APLICAÇÃO: 
CONHECENDO A IDE DO ECLIPSE 
• Para criar o projeto selecione: File -> New -> 
Android Application Project 
10
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
• Selecione Android Application Project na categoria Android, depois 
clique em Next > 
11
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
Indicamos o nome da 
aplicação: pode 
contar caracteres 
especiais. 
Indicamos o nome 
do projeto. 
Indicamos o 
nome da 
estrutura de 
pacote da 
aplicação. 
Minimum Required SDK: versão mínima requerida do SDK 
para execução da aplicação. 
Target SDK: Versão alvo do SDK. Dever ser igual ou maior que 
a versão mínima. 
Compile With: Versão de compilação da aplicação. 
Theme: Tema da aplicação. 12
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
• Nesta tela definimos se será criada uma atividade principal(main) e 
se vamos customizar um ícone para a aplicação 
13
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
• Tela de customização de ícone para a aplicação … 
14
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
• Tela onde definimos o layout/template da activity a ser criada … 
15
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
Nome da 
atividade 
principal( 
main) 
Define o 
nome do 
arquivo de 
layout a ser 
criado 
Tipo de 
estrutura 
de 
navegação 
a ser 
utilizada. 
16
MINHA PRIMEIRA APLICAÇÃO: 
CALCULADORA 
• Aguarde a criação do projeto! Após a criação teremos … 
17
MINHA PRIMEIRA APLICAÇÃO: 
EXECUTANDO A APLICAÇÃO NO EMULADOR 
• Para executar basta clicar com o botão direito no 
projeto e selecionar o menu Run as > Run 
Configurations ... 
• Crie uma nova configuração para Android 
Application clicando em New(botão direito do 
mouse). 
• Selecione o projeto para ser compilado e a 
activity principal(main) e clique em Run. 
18
MINHA PRIMEIRA APLICAÇÃO: 
EXECUTANDO A APLICAÇÃO NO EMULADOR 
• Por meio da opção Run Configurations … é possível criar várias 
configurações de execução 
19
MINHA PRIMEIRA APLICAÇÃO: DEPURANDO 
A APLICAÇÃO NO EMULADOR 
• Para executar basta clicar com o botão direito no 
projeto e selecionar o menu Debug as > Debug 
Configurations ... 
• Crie uma nova configuração para Android 
Application clicando em New(botão direito do 
mouse). 
• Selecione o projeto para ser compilado e a activity 
principal(main) e clique em Debug. 
20
MINHA PRIMEIRA APLICAÇÃO: DEPURANDO 
A APLICAÇÃO NO EMULADOR 
• Por meio da opção Debug Configurations … é possível criar várias 
configurações de execução 
21
MINHA PRIMEIRA APLICAÇÃO: 
EXECUTANDO A APLICAÇÃO NO EMULADOR 
• Na janela de configuração de execução podemos indicar a atividade 
principal a ser executada, a plataforma alvo e outros parâmetros 
22
MINHA PRIMEIRA APLICAÇÃO: 
EXECUTANDO A APLICAÇÃO NO EMULADOR 
• Indicando alguns parâmetros para execução da aplicação 
Vamos tentar otimizar 
a execução do 
emulador. Na aba 
Target vamos 
adicionar parâmetros 
de execução: -scale 
0.6 –cpu-delay 0 –no-boot- 
anim 
23
ENTENDENDO O QUE FOI GERADO 
Diretório com os códigos fonte da 
aplicação. 
Contém a classe R.java que é gerada 
automaticamente e permite que a aplicação 
acesse qualquer recurso como arquivos e imagens 
utilizando as constantes desta classe. Esta classe 
nunca deve ser alterada manualmente. 
Contém arquivos opcionais ao 
projeto, como por exemplo, uma 
fonte customizada. 
Diretório com os arquivos binários 
gerados a partir da compilação do 
projeto: .apk, .dex, entre outros. 
Outras bibliotecas e dependências da 
aplicação. 
Diretório que contém os recursos da aplicação, como 
imagens, menus, layouts de telas e arquivos de 
internacionalização. Tem três subpastas: drawable-*, 
layout e values. 
24
ENTENDENDO O QUE FOI GERADO 
Pasta com as imagens da aplicação. Atualmente como 
existem diversos celulares Android com resolução de 
tela diferentes, é possível customizar as imagens para 
ficar com o tamanho exato em cada resolução 
automaticamente. Para isso existem 3 pastas para as 
imagens: drawable-ldpi, drawable-mdpi, drawable-hdpi 
e drawable-xhdpi. 
Contém os arquivos XML de layouts 
para construir as telas da aplicação. 
Contém os arquivos XML de menus. 
Contém os arquivos XML utilizados 
para internacionalização da aplicação 
e outras configurações. O XML é 
composto de um layout. 
25
ANATOMIA DA APLICAÇÃO 
26
ACTIVITY(ou atividade) 
• Representa uma tela da aplicação 
• Recurso do Android que oferece uma tela com a qual os 
usuários podem interagir 
• Pode-se fazer uma analogia com uma janela ou caixa de 
diálogo de sistemas desktop 
• A implementação de activity deve herdar características 
da classe android.app.Activity 
• Deve implementar o método onCreate(Bundle) 
• Cada activity deve ser declarada dentro do 
AndroidManifest.xml 
27
ACTIVITY – ANDROIDMANIFEST.XML 
28
ACTIVITY 
• Dentro do método onCreate, é invocado o 
método onCreate da super classe passando 
o mesmo parâmetro (Bundle 
savedInstanceState); 
• Logo após esta chamada deste método, vem 
o método setContentView, responsável por 
exibir a tela da aplicação, baseada nos 
layouts XML(eXtesible Markup Language). 
29
ACTIVITY - IMPLEMENTAÇÃO 
Método(callback) onCreate é 
redefinido. 
30
CICLO DE VIDA DE UMA ACTIVITY 
Fonte: Android Developers(2012a). 
31
CICLO DE VIDA DE UMA ACTIVITY 
• Possíveis estados em que se encontra: 
o executando; 
o temporariamente interrompida; 
o em segundo plano; 
o completamente destruída. 
• O sistema operacional cuida desse ciclo de vida, mas ao 
desenvolver aplicações é importante levar cada estado 
possível em consideração. 
• Cada activity iniciada é inserida no topo de uma pilha de 
atividades. A activity que está no topo da pilha é a que está 
em execução no momento, as demais podem estar 
executando em segundo plano, estar no estado pausado ou 
totalmente paradas. 32
CICLO DE VIDA DE UMA ACTIVITY 
• Há métodos(callbacks) da classe Activity 
para controlar os estados de uma atividade: 
o onCreate(Bundle) 
o onStart() 
o onRestart() 
o onResume() 
o onPause() 
o onStop() 
o onDestroy() 
33
CICLO DE VIDA DE UMA ACTIVITY 
• Existem três subníveis do ciclo de vida principal, que por sua vez ficam se 
repetindo(estão encadeados) durante a execução da aplicação: 
o entire lifetime: ciclo de vida completo entre o início e destruição de 
uma activity 
 onCreate(Bundle) 
 onDestroy() 
o visible lifetime: activity está iniciada, mas pode estar no topo da pilha 
interagindo com o usuário ou temporariamente parada em segundo 
plano 
 onStart() 
 onStop() 
 onRestart() 
o foreground lifetime: activity está no topo da pilha e interagindo com o 
usuário 
 onResume() 
 onPause() 34
CICLO DE VIDA DE UMA ACTIVITY: 
salvando o estado da activity 
Fonte: Android Developers(2012a). 
35
CICLO DE VIDA DE UMA ACTIVITY 
Método Descrição Destruível 
depois? 
Método 
seguinte 
onCreate(Bundle) É obrigatório e é chamado uma única vez. Dentro dele deve-se chamar 
o método para construir a view e passar para o método onStart() para 
iniciar o ciclo visível da activity. Bundle é um tipo de objeto que 
permite guardar o estado anterior de uma activity. 
Não onStart() 
onRestart() É chamado quando a activity foi parada e está sendo iniciada outra 
vez. Chama o método onStart() automaticamente. 
Não onStart() 
onStart() É chamada quando activity está ficando visível para o usuário. Pode 
ser chamada depois do método onCreate(Bundle) ou onRestart() . 
Não onResume() 
ou 
onStop() 
onResume() É chamado quando a activity está no topo da pilha, é o método que 
representa o estado de que a activity está executando. É chamado 
sempre depois de onStart(). 
Não onPause() 
onPause() Se algum evento ocorrer, como uma ligação durante a execução da 
activity, a aplicação chama o método onPause(): para salvar o estado 
da aplicação para posteriormente quando a activity voltar a executar, 
tudo possa ser recuperado. 
Sim onResume() 
ou 
onStop() 
onStop() É chamado quando a activity está sendo encerrada, e não está mais 
visível ao usuário. 
Sim onRestart() 
ou 
onDestroy() 
onDestroy() Encerra a execução de uma activity. Após ser executado a activity é 
removida completamente da pilha e seu processo no sistema 
operacional também é completamente encerrado. 
Sim - 
36
CICLO DE VIDA DE UMA ACTIVITY: 
exemplo 
37
CICLO DE VIDA DE UMA ACTIVITY: 
observação 
• Para chamar outra tela precisamos criar outra 
activity. Para isso existem dois métodos: 
o startActivity(intent): inicia a próxima 
activity sem nenhum vínculo. 
o startActivityForResult(intent,codigo): 
recebe um parâmetro que identifica essa 
chamada, para que posteriormente essa 
segunda activity possa retornar alguma 
informação para a activity que a chamou. 
• Esses métodos utilizam a classe Intent. 
38
CICLO DE VIDA DE UMA ACTIVITY: 
finalizando uma activity 
• Para finalizarmos uma activity podemos utilizar 
os métodos: 
• finish(): finaliza e fecha uma activity. 
• finishActivity(): Força o fechamento de 
uma activity previamente iniciada com o 
método startActivityForResult(Intent, int). 
• Obs.: Para finalizar a aplicação além de 
utilizar o método finish() adicione ainda o 
método System.exit(0); 
39
VIEWS E VIEWGROUPS 
• A interface com o usuário em uma aplicação Android é 
construída utilizando objetos View e ViewGroup; 
• Basicamente a estrutura da aplicação é uma composição 
hierárquica de View e ViewGroup. 
Fonte: Android Developers(2012b). 
40
VIEW 
• Todos os componentes que permitem interação do usuário 
com a tela são representados por subclasses de 
android.view.View 
• Representam os componentes gráficos (os chamados 
widgets) como TextView, Button, TextEdit, RadioButton, 
Checkbox, ToggleButton, ImageButton, Spinner, etc; 
41
VIEWGROUPS 
• A classe android.view.ViewGroup, que representa um 
container de Views e também ViewGroups; 
• Ela é a classe base para layouts, como LinearLayout, 
FrameLayout, AbsoluteLayout, RelativeLayout, 
TableLayout, entre outros; 
• O fato de um ViewGroup também ser composto por um 
ou mais ViewGroups é o fator que permite que layouts 
complexos (layouts aninhados) sejam desenvolvidos; 
• Quando utilizamos o método setContentView(), 
passamos uma referência ao nó raiz da hierarquia. 42
INPUT CONTROLS 
• O Android tem disponíveis uma série de Views, ou 
componentes, para interação do usuário, incluindo: 
rótulos, botões, campos de entrada de dados, listas 
de valores, entre outros; 
• Cada um destes componentes possui suas próprias 
propriedades, várias herdadas de View e outras 
específicas; 
• Os componentes também possuem um conjunto de 
eventos aos quais podem responder, como cliques, 
entradas de texto ou mesmo toques na tela. 43
INPUT CONTROLS - TEXTVIEW 
• Permite a exibição de um texto na tela; 
• Pode ser utilizado para identificar/rotular campos de entrada de 
texto; 
• Objetos TextView por padrão não permitem entradas de texto por 
parte do usuário; 
• EditText é uma classe especializada de TextView que permitirá ao 
usuário entrar seus textos. 
44
INPUT CONTROLS - EDITTEXT 
• Permite que o usuário entre com textos na aplicação; 
• Pode ser de uma linha ou multilinha; 
• Permite diferentes tipos de entradas; 
45
INPUT CONTROLS - BUTTON 
• Consiste de um texto ou ícone(ou ambos) que comunica 
uma ação do usuário quando pressionado; 
46
INPUT CONTROLS - TOGGLEBUTTON 
• Permite modificar um determinado estado através do 
botão. Ex.: ligado/desligado, on/off, ativo/inativo; 
47
INPUT CONTROLS – CHECKBOX 
• Permite ao usuário selecionar/marcar uma ou 
mais opções; 
• Normalmente as opções para checagem são 
exibidas em uma lista vertical. 
48
INPUT CONTROLS - RADIOBUTTON 
• Similar ao CheckBox, no entanto, o usuário 
pode selecionar somente uma opção; 
• Pode ser adicionado na tela de forma 
individual RadioButton ou em grupo 
RadioGroup. 
49
MÉTODO FINDVIEWBYID 
–Método utilizado para recuperar a 
instância de uma view(widget); 
–A recuperação é feita pelo ID gerado no 
arquivo R.java; 
–Utiliza-se o formato: R.id.algumWidget 
–Exemplo: findViewById(R.id.btnSair) 
50
EVENT LISTENERS – ONCLICKLISTENER 
• No Android, existe mais de uma maneira de interceptar 
eventos de interação de usuário em sua aplicação. 
Quando consideramos eventos dentro de sua interface 
de usuário, a abordagem deve ser a de capturar os 
eventos do objeto de View específica na qual o usuário 
está interagindo; 
• Event Listeners: Um event listener é uma interface da 
classe View que contém um método simples de callback. 
Esse método pode ser chamado pelo framework Android 
quando a View sofre uma interação do usuário com um 
item da interface. 51
EVENT LISTENERS – ONCLICKLISTENER 
• OnClickListener: Interface implementada por 
android.view.View; 
• Permite capturar eventos de clique por exemplo em 
um botão; 
• Exemplo: 
52
EXIBINDO MENSAGENS COM TOAST 
• Utilizando a classe Toast podemos criar notificações ou 
mensagens rápidas para serem exibidas ao usuário; 
• O tamanho da janela gerada é de acordo com o texto 
que desejamos exibir; 
• Possui as constantes: LENGTH_SHORT e LENGTH_LONG 
para determinar o tempo de exibição; 
• A mensagem aparece e desaparece automaticamente; 
• A mensagem de Toast pode ser customizada utilizando-se 
um layout XML. 
53
EXIBINDO MENSAGENS COM TOAST 
54
INPUT CONTROLS - EXEMPLO 
• Com os componentes até agora vistos, já é possível 
desenvolvermos uma aplicação. Vamos criar agora uma 
aplicação que faça uso de um desses widgets. Crie um novo 
projeto Android com os seguintes dados: 
55
REFERÊNCIAS 
• Android Developers. Publishing Overview. 2012. Disponível em: 
<http://developer.android.com/guide/publishing/publishing_over 
view.html>. Acesso em: 15 jun. 2012 
• Eu Android. 2011. Disponível: 
<http://www.euandroid.com.br/iniciante-android/ 
2011/05/maquina-virtual-dalvik/>. Acesso em: 03 fev. 
2012 
• LECHETA, Ricardo R. Google android: aprenda a criar aplicações 
para dispositivos móveis com o android SDK. 2. ed., rev. e ampl. 
São Paulo: Novatec, 2010. 608 p. ISBN 9788575222447. 
• What is Android. 2012. Disponível em: 
<http://developer.android.com/guide/basics/what-is-android. 
html> . Acesso em: 03 fev. 2012 56

Mais conteúdo relacionado

Mais procurados

Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
Jorge Cardoso
 
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
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
Ronildo Oliveira
 
Eclipse user guide
Eclipse user guideEclipse user guide
Eclipse user guide
Lucas Cruz
 

Mais procurados (20)

Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
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
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
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
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Android Aula 4
Android Aula 4Android Aula 4
Android Aula 4
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
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
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Caelum Day In Rio
Caelum Day In RioCaelum Day In Rio
Caelum Day In Rio
 
Eclipse user guide
Eclipse user guideEclipse user guide
Eclipse user guide
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 

Semelhante a Aula02 android hands_on

Semelhante a Aula02 android hands_on (20)

Bada
BadaBada
Bada
 
Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Baixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdkBaixando, instalando e testando o android sdk
Baixando, instalando e testando o android sdk
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Android exemplo-calculadora
Android exemplo-calculadoraAndroid exemplo-calculadora
Android exemplo-calculadora
 
Iniciando o desenvolvimento de uma aplicação em android
Iniciando o desenvolvimento de uma aplicação em androidIniciando o desenvolvimento de uma aplicação em android
Iniciando o desenvolvimento de uma aplicação em android
 
Minicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up SystemsMinicurso de Android - Wake Up Systems
Minicurso de Android - Wake Up Systems
 
Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014Workshop on Android Rom Creation - FISTA/ISCTE 2014
Workshop on Android Rom Creation - FISTA/ISCTE 2014
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Empreendedori$mo com Android
Empreendedori$mo com AndroidEmpreendedori$mo com Android
Empreendedori$mo com Android
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
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
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Desenvolvimento Moderno de aplicativos Android
Desenvolvimento Moderno de aplicativos AndroidDesenvolvimento Moderno de aplicativos Android
Desenvolvimento Moderno de aplicativos Android
 
Apostila android
Apostila androidApostila android
Apostila android
 
Androi studio
Androi studioAndroi studio
Androi studio
 

Mais de Roberson Alves

Mais de Roberson Alves (16)

Apresentação da Dissertação
Apresentação da DissertaçãoApresentação da Dissertação
Apresentação da Dissertação
 
Apressentação SBIAGRO 2015
Apressentação SBIAGRO 2015Apressentação SBIAGRO 2015
Apressentação SBIAGRO 2015
 
Aula09 phonegap storage_connection
Aula09 phonegap storage_connectionAula09 phonegap storage_connection
Aula09 phonegap storage_connection
 
eduAula08 phonegap arquivos
eduAula08 phonegap arquivoseduAula08 phonegap arquivos
eduAula08 phonegap arquivos
 
Aula07 phonegap bussola_eventos
Aula07 phonegap bussola_eventosAula07 phonegap bussola_eventos
Aula07 phonegap bussola_eventos
 
Aula06 phonegap camera_acelerometro
Aula06 phonegap camera_acelerometroAula06 phonegap camera_acelerometro
Aula06 phonegap camera_acelerometro
 
Aula05 phonegap cadastro_contatos
Aula05 phonegap cadastro_contatosAula05 phonegap cadastro_contatos
Aula05 phonegap cadastro_contatos
 
Aula04 phonegap componentes
Aula04 phonegap componentesAula04 phonegap componentes
Aula04 phonegap componentes
 
Aula Aula03 estrutura phone_gap
Aula Aula03 estrutura phone_gapAula Aula03 estrutura phone_gap
Aula Aula03 estrutura phone_gap
 
la 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gapla 02Aula02 introdução phone_gap
la 02Aula02 introdução phone_gap
 
Aula08 android outros_recursos
Aula08 android outros_recursosAula08 android outros_recursos
Aula08 android outros_recursos
 
Aula07 android conectividade
Aula07 android conectividadeAula07 android conectividade
Aula07 android conectividade
 
Aula06 android localizacao
Aula06 android localizacaoAula06 android localizacao
Aula06 android localizacao
 
Aula05 android persistencia
Aula05 android persistenciaAula05 android persistencia
Aula05 android persistencia
 
Aula03 android layouts_views
Aula03 android layouts_viewsAula03 android layouts_views
Aula03 android layouts_views
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 

Último

ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 

Último (20)

UFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdfUFCD_10659_Ficheiros de recursos educativos_índice .pdf
UFCD_10659_Ficheiros de recursos educativos_índice .pdf
 
Tema de redação - A prática do catfish e seus perigos.pdf
Tema de redação - A prática do catfish e seus perigos.pdfTema de redação - A prática do catfish e seus perigos.pdf
Tema de redação - A prática do catfish e seus perigos.pdf
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
ESPANHOL PARA O ENEM (2).pdf questões da prova
ESPANHOL PARA O ENEM (2).pdf questões da provaESPANHOL PARA O ENEM (2).pdf questões da prova
ESPANHOL PARA O ENEM (2).pdf questões da prova
 
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdfMESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
MESTRES DA CULTURA DE ASSARÉ Prof. Francisco Leite.pdf
 
Sequência didática Carona 1º Encontro.pptx
Sequência didática Carona 1º Encontro.pptxSequência didática Carona 1º Encontro.pptx
Sequência didática Carona 1º Encontro.pptx
 
Maio Laranja - Combate à violência sexual contra crianças e adolescentes
Maio Laranja - Combate à violência sexual contra crianças e adolescentesMaio Laranja - Combate à violência sexual contra crianças e adolescentes
Maio Laranja - Combate à violência sexual contra crianças e adolescentes
 
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
425416820-Testes-7º-Ano-Leandro-Rei-Da-Heliria-Com-Solucoes.pdf
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Questões sobre o Mito da Caverna de Platão
Questões sobre o Mito da Caverna de PlatãoQuestões sobre o Mito da Caverna de Platão
Questões sobre o Mito da Caverna de Platão
 
Periodo da escravidAo O Brasil tem seu corpo na América e sua alma na África
Periodo da escravidAo O Brasil tem seu corpo na América e sua alma na ÁfricaPeriodo da escravidAo O Brasil tem seu corpo na América e sua alma na África
Periodo da escravidAo O Brasil tem seu corpo na América e sua alma na África
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
Poema - Maio Laranja
Poema - Maio Laranja Poema - Maio Laranja
Poema - Maio Laranja
 
Religiosidade de Assaré - Prof. Francisco Leite
Religiosidade de Assaré - Prof. Francisco LeiteReligiosidade de Assaré - Prof. Francisco Leite
Religiosidade de Assaré - Prof. Francisco Leite
 
RENASCIMENTO E HUMANISMO_QUIZ 7º ANO.pptx
RENASCIMENTO E HUMANISMO_QUIZ 7º ANO.pptxRENASCIMENTO E HUMANISMO_QUIZ 7º ANO.pptx
RENASCIMENTO E HUMANISMO_QUIZ 7º ANO.pptx
 
Prova nivel 3 da XXII OBA DE 2019 - GABARITO POWER POINT.pptx
Prova nivel 3 da XXII OBA DE 2019 - GABARITO POWER POINT.pptxProva nivel 3 da XXII OBA DE 2019 - GABARITO POWER POINT.pptx
Prova nivel 3 da XXII OBA DE 2019 - GABARITO POWER POINT.pptx
 
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PEEdital do processo seletivo para contratação de agentes de saúde em Floresta, PE
Edital do processo seletivo para contratação de agentes de saúde em Floresta, PE
 
Currículo Professor Pablo Ortellado - Universidade de São Paulo
Currículo Professor Pablo Ortellado - Universidade de São PauloCurrículo Professor Pablo Ortellado - Universidade de São Paulo
Currículo Professor Pablo Ortellado - Universidade de São Paulo
 

Aula02 android hands_on

  • 1. INICIANDO COM A PLATAFORMA ANDROID “Não basta adquirir sabedoria; é preciso, além disso, saber utilizá-la.” (Cicero , 106-43 a.C.) 1
  • 2. CONTEÚDO • Instalação do Android SDK • Instalação do Plugin no Eclipse • Emuladores do Android • Minha primeira aplicação • Entendendo o que foi gerado • Componentes GUI 2
  • 3. INSTALAÇÃO DO ANDROID SDK • Orientações mais detalhadas sobre o processo de instalação do Android SDK estão disponíveis em: – http://developer.android.com/sdk/installing/bundle .html 3
  • 4. INSTALAÇÃO DO PLUGIN NO ECLIPSE • Vamos utilizar a IDE Eclipse (versão Eclipse Platform 3.8.0), distribuição ADT Bundle; • Para integrar o Android ao Eclipse é necessário utilizar o plugin ADT(Android Development Tools); • Mais detalhes podem ser encontrados em: – http://developer.android.com/sdk/index.html – Android_Eclipse_Instalacao_Configuracao.pdf 4
  • 5. AVDS DO ANDROID • São criados/definidos via AVD Manager, recurso disponível no Android SDK; • Permite definir parâmetros de hardware personalizados na criação dos emuladores; • Podem ser baixados e integrados alguns modelos de emuladores prontos. 5
  • 6. AVDS DO ANDROID Máquinas virtuais para executar as aplicações. 6
  • 8. EMULADORES DO ANDROID • Utilizados para desenvolver aplicações no Android, que tem um emulador para simular o celular, ferramentas utilitárias e uma API completa para a linguagem Java, com todas as classes necessárias para desenvolver as aplicações; • Com um plugin o emulador pode ser iniciado diretamente do Eclipse. • Também é possível plugar um dispositivo(smartphone ou tablet) na porta USB do computador e executar os aplicativos diretamente no dispositivo. 8
  • 9. MINHA PRIMEIRA APLICAÇÃO: CONHECENDO A IDE DO ECLIPSE • Vamos criar nosso primeiro programa no Eclipse! 9
  • 10. MINHA PRIMEIRA APLICAÇÃO: CONHECENDO A IDE DO ECLIPSE • Para criar o projeto selecione: File -> New -> Android Application Project 10
  • 11. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA • Selecione Android Application Project na categoria Android, depois clique em Next > 11
  • 12. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA Indicamos o nome da aplicação: pode contar caracteres especiais. Indicamos o nome do projeto. Indicamos o nome da estrutura de pacote da aplicação. Minimum Required SDK: versão mínima requerida do SDK para execução da aplicação. Target SDK: Versão alvo do SDK. Dever ser igual ou maior que a versão mínima. Compile With: Versão de compilação da aplicação. Theme: Tema da aplicação. 12
  • 13. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA • Nesta tela definimos se será criada uma atividade principal(main) e se vamos customizar um ícone para a aplicação 13
  • 14. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA • Tela de customização de ícone para a aplicação … 14
  • 15. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA • Tela onde definimos o layout/template da activity a ser criada … 15
  • 16. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA Nome da atividade principal( main) Define o nome do arquivo de layout a ser criado Tipo de estrutura de navegação a ser utilizada. 16
  • 17. MINHA PRIMEIRA APLICAÇÃO: CALCULADORA • Aguarde a criação do projeto! Após a criação teremos … 17
  • 18. MINHA PRIMEIRA APLICAÇÃO: EXECUTANDO A APLICAÇÃO NO EMULADOR • Para executar basta clicar com o botão direito no projeto e selecionar o menu Run as > Run Configurations ... • Crie uma nova configuração para Android Application clicando em New(botão direito do mouse). • Selecione o projeto para ser compilado e a activity principal(main) e clique em Run. 18
  • 19. MINHA PRIMEIRA APLICAÇÃO: EXECUTANDO A APLICAÇÃO NO EMULADOR • Por meio da opção Run Configurations … é possível criar várias configurações de execução 19
  • 20. MINHA PRIMEIRA APLICAÇÃO: DEPURANDO A APLICAÇÃO NO EMULADOR • Para executar basta clicar com o botão direito no projeto e selecionar o menu Debug as > Debug Configurations ... • Crie uma nova configuração para Android Application clicando em New(botão direito do mouse). • Selecione o projeto para ser compilado e a activity principal(main) e clique em Debug. 20
  • 21. MINHA PRIMEIRA APLICAÇÃO: DEPURANDO A APLICAÇÃO NO EMULADOR • Por meio da opção Debug Configurations … é possível criar várias configurações de execução 21
  • 22. MINHA PRIMEIRA APLICAÇÃO: EXECUTANDO A APLICAÇÃO NO EMULADOR • Na janela de configuração de execução podemos indicar a atividade principal a ser executada, a plataforma alvo e outros parâmetros 22
  • 23. MINHA PRIMEIRA APLICAÇÃO: EXECUTANDO A APLICAÇÃO NO EMULADOR • Indicando alguns parâmetros para execução da aplicação Vamos tentar otimizar a execução do emulador. Na aba Target vamos adicionar parâmetros de execução: -scale 0.6 –cpu-delay 0 –no-boot- anim 23
  • 24. ENTENDENDO O QUE FOI GERADO Diretório com os códigos fonte da aplicação. Contém a classe R.java que é gerada automaticamente e permite que a aplicação acesse qualquer recurso como arquivos e imagens utilizando as constantes desta classe. Esta classe nunca deve ser alterada manualmente. Contém arquivos opcionais ao projeto, como por exemplo, uma fonte customizada. Diretório com os arquivos binários gerados a partir da compilação do projeto: .apk, .dex, entre outros. Outras bibliotecas e dependências da aplicação. Diretório que contém os recursos da aplicação, como imagens, menus, layouts de telas e arquivos de internacionalização. Tem três subpastas: drawable-*, layout e values. 24
  • 25. ENTENDENDO O QUE FOI GERADO Pasta com as imagens da aplicação. Atualmente como existem diversos celulares Android com resolução de tela diferentes, é possível customizar as imagens para ficar com o tamanho exato em cada resolução automaticamente. Para isso existem 3 pastas para as imagens: drawable-ldpi, drawable-mdpi, drawable-hdpi e drawable-xhdpi. Contém os arquivos XML de layouts para construir as telas da aplicação. Contém os arquivos XML de menus. Contém os arquivos XML utilizados para internacionalização da aplicação e outras configurações. O XML é composto de um layout. 25
  • 27. ACTIVITY(ou atividade) • Representa uma tela da aplicação • Recurso do Android que oferece uma tela com a qual os usuários podem interagir • Pode-se fazer uma analogia com uma janela ou caixa de diálogo de sistemas desktop • A implementação de activity deve herdar características da classe android.app.Activity • Deve implementar o método onCreate(Bundle) • Cada activity deve ser declarada dentro do AndroidManifest.xml 27
  • 29. ACTIVITY • Dentro do método onCreate, é invocado o método onCreate da super classe passando o mesmo parâmetro (Bundle savedInstanceState); • Logo após esta chamada deste método, vem o método setContentView, responsável por exibir a tela da aplicação, baseada nos layouts XML(eXtesible Markup Language). 29
  • 30. ACTIVITY - IMPLEMENTAÇÃO Método(callback) onCreate é redefinido. 30
  • 31. CICLO DE VIDA DE UMA ACTIVITY Fonte: Android Developers(2012a). 31
  • 32. CICLO DE VIDA DE UMA ACTIVITY • Possíveis estados em que se encontra: o executando; o temporariamente interrompida; o em segundo plano; o completamente destruída. • O sistema operacional cuida desse ciclo de vida, mas ao desenvolver aplicações é importante levar cada estado possível em consideração. • Cada activity iniciada é inserida no topo de uma pilha de atividades. A activity que está no topo da pilha é a que está em execução no momento, as demais podem estar executando em segundo plano, estar no estado pausado ou totalmente paradas. 32
  • 33. CICLO DE VIDA DE UMA ACTIVITY • Há métodos(callbacks) da classe Activity para controlar os estados de uma atividade: o onCreate(Bundle) o onStart() o onRestart() o onResume() o onPause() o onStop() o onDestroy() 33
  • 34. CICLO DE VIDA DE UMA ACTIVITY • Existem três subníveis do ciclo de vida principal, que por sua vez ficam se repetindo(estão encadeados) durante a execução da aplicação: o entire lifetime: ciclo de vida completo entre o início e destruição de uma activity  onCreate(Bundle)  onDestroy() o visible lifetime: activity está iniciada, mas pode estar no topo da pilha interagindo com o usuário ou temporariamente parada em segundo plano  onStart()  onStop()  onRestart() o foreground lifetime: activity está no topo da pilha e interagindo com o usuário  onResume()  onPause() 34
  • 35. CICLO DE VIDA DE UMA ACTIVITY: salvando o estado da activity Fonte: Android Developers(2012a). 35
  • 36. CICLO DE VIDA DE UMA ACTIVITY Método Descrição Destruível depois? Método seguinte onCreate(Bundle) É obrigatório e é chamado uma única vez. Dentro dele deve-se chamar o método para construir a view e passar para o método onStart() para iniciar o ciclo visível da activity. Bundle é um tipo de objeto que permite guardar o estado anterior de uma activity. Não onStart() onRestart() É chamado quando a activity foi parada e está sendo iniciada outra vez. Chama o método onStart() automaticamente. Não onStart() onStart() É chamada quando activity está ficando visível para o usuário. Pode ser chamada depois do método onCreate(Bundle) ou onRestart() . Não onResume() ou onStop() onResume() É chamado quando a activity está no topo da pilha, é o método que representa o estado de que a activity está executando. É chamado sempre depois de onStart(). Não onPause() onPause() Se algum evento ocorrer, como uma ligação durante a execução da activity, a aplicação chama o método onPause(): para salvar o estado da aplicação para posteriormente quando a activity voltar a executar, tudo possa ser recuperado. Sim onResume() ou onStop() onStop() É chamado quando a activity está sendo encerrada, e não está mais visível ao usuário. Sim onRestart() ou onDestroy() onDestroy() Encerra a execução de uma activity. Após ser executado a activity é removida completamente da pilha e seu processo no sistema operacional também é completamente encerrado. Sim - 36
  • 37. CICLO DE VIDA DE UMA ACTIVITY: exemplo 37
  • 38. CICLO DE VIDA DE UMA ACTIVITY: observação • Para chamar outra tela precisamos criar outra activity. Para isso existem dois métodos: o startActivity(intent): inicia a próxima activity sem nenhum vínculo. o startActivityForResult(intent,codigo): recebe um parâmetro que identifica essa chamada, para que posteriormente essa segunda activity possa retornar alguma informação para a activity que a chamou. • Esses métodos utilizam a classe Intent. 38
  • 39. CICLO DE VIDA DE UMA ACTIVITY: finalizando uma activity • Para finalizarmos uma activity podemos utilizar os métodos: • finish(): finaliza e fecha uma activity. • finishActivity(): Força o fechamento de uma activity previamente iniciada com o método startActivityForResult(Intent, int). • Obs.: Para finalizar a aplicação além de utilizar o método finish() adicione ainda o método System.exit(0); 39
  • 40. VIEWS E VIEWGROUPS • A interface com o usuário em uma aplicação Android é construída utilizando objetos View e ViewGroup; • Basicamente a estrutura da aplicação é uma composição hierárquica de View e ViewGroup. Fonte: Android Developers(2012b). 40
  • 41. VIEW • Todos os componentes que permitem interação do usuário com a tela são representados por subclasses de android.view.View • Representam os componentes gráficos (os chamados widgets) como TextView, Button, TextEdit, RadioButton, Checkbox, ToggleButton, ImageButton, Spinner, etc; 41
  • 42. VIEWGROUPS • A classe android.view.ViewGroup, que representa um container de Views e também ViewGroups; • Ela é a classe base para layouts, como LinearLayout, FrameLayout, AbsoluteLayout, RelativeLayout, TableLayout, entre outros; • O fato de um ViewGroup também ser composto por um ou mais ViewGroups é o fator que permite que layouts complexos (layouts aninhados) sejam desenvolvidos; • Quando utilizamos o método setContentView(), passamos uma referência ao nó raiz da hierarquia. 42
  • 43. INPUT CONTROLS • O Android tem disponíveis uma série de Views, ou componentes, para interação do usuário, incluindo: rótulos, botões, campos de entrada de dados, listas de valores, entre outros; • Cada um destes componentes possui suas próprias propriedades, várias herdadas de View e outras específicas; • Os componentes também possuem um conjunto de eventos aos quais podem responder, como cliques, entradas de texto ou mesmo toques na tela. 43
  • 44. INPUT CONTROLS - TEXTVIEW • Permite a exibição de um texto na tela; • Pode ser utilizado para identificar/rotular campos de entrada de texto; • Objetos TextView por padrão não permitem entradas de texto por parte do usuário; • EditText é uma classe especializada de TextView que permitirá ao usuário entrar seus textos. 44
  • 45. INPUT CONTROLS - EDITTEXT • Permite que o usuário entre com textos na aplicação; • Pode ser de uma linha ou multilinha; • Permite diferentes tipos de entradas; 45
  • 46. INPUT CONTROLS - BUTTON • Consiste de um texto ou ícone(ou ambos) que comunica uma ação do usuário quando pressionado; 46
  • 47. INPUT CONTROLS - TOGGLEBUTTON • Permite modificar um determinado estado através do botão. Ex.: ligado/desligado, on/off, ativo/inativo; 47
  • 48. INPUT CONTROLS – CHECKBOX • Permite ao usuário selecionar/marcar uma ou mais opções; • Normalmente as opções para checagem são exibidas em uma lista vertical. 48
  • 49. INPUT CONTROLS - RADIOBUTTON • Similar ao CheckBox, no entanto, o usuário pode selecionar somente uma opção; • Pode ser adicionado na tela de forma individual RadioButton ou em grupo RadioGroup. 49
  • 50. MÉTODO FINDVIEWBYID –Método utilizado para recuperar a instância de uma view(widget); –A recuperação é feita pelo ID gerado no arquivo R.java; –Utiliza-se o formato: R.id.algumWidget –Exemplo: findViewById(R.id.btnSair) 50
  • 51. EVENT LISTENERS – ONCLICKLISTENER • No Android, existe mais de uma maneira de interceptar eventos de interação de usuário em sua aplicação. Quando consideramos eventos dentro de sua interface de usuário, a abordagem deve ser a de capturar os eventos do objeto de View específica na qual o usuário está interagindo; • Event Listeners: Um event listener é uma interface da classe View que contém um método simples de callback. Esse método pode ser chamado pelo framework Android quando a View sofre uma interação do usuário com um item da interface. 51
  • 52. EVENT LISTENERS – ONCLICKLISTENER • OnClickListener: Interface implementada por android.view.View; • Permite capturar eventos de clique por exemplo em um botão; • Exemplo: 52
  • 53. EXIBINDO MENSAGENS COM TOAST • Utilizando a classe Toast podemos criar notificações ou mensagens rápidas para serem exibidas ao usuário; • O tamanho da janela gerada é de acordo com o texto que desejamos exibir; • Possui as constantes: LENGTH_SHORT e LENGTH_LONG para determinar o tempo de exibição; • A mensagem aparece e desaparece automaticamente; • A mensagem de Toast pode ser customizada utilizando-se um layout XML. 53
  • 55. INPUT CONTROLS - EXEMPLO • Com os componentes até agora vistos, já é possível desenvolvermos uma aplicação. Vamos criar agora uma aplicação que faça uso de um desses widgets. Crie um novo projeto Android com os seguintes dados: 55
  • 56. REFERÊNCIAS • Android Developers. Publishing Overview. 2012. Disponível em: <http://developer.android.com/guide/publishing/publishing_over view.html>. Acesso em: 15 jun. 2012 • Eu Android. 2011. Disponível: <http://www.euandroid.com.br/iniciante-android/ 2011/05/maquina-virtual-dalvik/>. Acesso em: 03 fev. 2012 • LECHETA, Ricardo R. Google android: aprenda a criar aplicações para dispositivos móveis com o android SDK. 2. ed., rev. e ampl. São Paulo: Novatec, 2010. 608 p. ISBN 9788575222447. • What is Android. 2012. Disponível em: <http://developer.android.com/guide/basics/what-is-android. html> . Acesso em: 03 fev. 2012 56