Você está na página 1de 16

Google Android

para Tablets
Aprenda a desenvolver aplicaes para
o Android De smartphones a tablets

Ricardo R. Lecheta

Novatec

Copyright 2012 Novatec Editora Ltda.


Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.
proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao,
por escrito, do autor e da Editora.
Editor: Rubens Prates
Reviso gramatical: Alessandro Thom
Editorao eletrnica: Carolina Kuwabata
Capa: DesignCRV
ISBN: 978-85-7522-292-8
Histrico de impresses:
Fevereiro/2012

Primeira edio

Novatec Editora Ltda.


Rua Lus Antnio dos Santos 110
02460-000 So Paulo, SP Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: novatec@novatec.com.br
Site: novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec

Dados

Internacionais de Catalogao na Publicao


(Cmara Brasileira do Livro, SP, Brasil)
Lecheta, Ricardo R.
Google Android para tablets : aprenda a
desenvolver aplicaes para o Android : de
smartphones a tablets / Ricardo R. Lecheta. -So Paulo : Novatec Editora, 2012.
Bibliografia.
ISBN 978-85-7522-292-8
1. Android (Programa de computador) 2. Aplicao
de programa - Desenvolvimento 3. Computao mvel
4. Google 5. Internet sem fio 6. Tablets I. Ttulo.

12-00857

CDD-005.26
ndices para catlogo sistemtico:
1. Android : Plataforma de desenvolvimento para
aplicativos mveis : Tablets : Programa de
computador
005.26

VC20120131

(CIP)

Sumrio

Agradecimentos..................................................................................................................13
Sobre o autor......................................................................................................................14
Prefcio..............................................................................................................................15
Captulo 1 Introduo.......................................................................................................16
1.1 Introduo.............................................................................................................. 16
1.2 Desenvolvendo desde smartphones at tablets......................................................... 16
1.3 Android 3.x Honeycomb...................................................................................... 17
1.4 Android 4.x Ice Cream Sandwich.......................................................................... 17
1.5 Organizao do livro.............................................................................................. 19

Captulo 2 Aplicativo de exemplo......................................................................................23


2.1 O projeto............................................................................................................... 23
2.2 Criando o projeto..................................................................................................26
2.3 Criando a tela principal Dashboard......................................................................29
2.4 Criando os layouts de cabealho e rodap............................................................... 35
2.5 Adicionando os eventos nos botes do dashboard...................................................38
2.6 A classe Carro........................................................................................................40
2.7 Arquitetura de integrao com o legado.................................................................. 41
2.8 Requisio HTTP para ler o arquivo XML...............................................................42
2.9 Criando um projeto biblioteca para o projeto.......................................................... 49
2.10 Criando testes unitrios com JUnit........................................................................ 53
2.11 Verificando se existe conexo de dados disponvel..................................................58
2.12 Trabalhando com threads...................................................................................... 61
2.13 A classe AsyncTask................................................................................................63
2.14 Criando a interface para a lista de carros com um ListView.................................... 67
2.15 Criando o adapter para a lista de carros................................................................. 69
2.16 Encapsulando o AsyncTask para tornar o cdigo mais simples................................ 81
2.17 Exibindo os detalhes do carro selecionado............................................................. 85
2.18 Exibindo a tela de sobre com um WebView............................................................ 92
2.19 Integrando Java e Javascript no WebView...............................................................94
2.20 Exibindo um ProgressBar enquanto o WebView no carrega.................................. 97
2.21 Consideraes sobre o exemplo........................................................................... 100
7

Google Android para Tablets

Captulo 3 Controlando o estado de sua activity............................................................... 101


3.1 Vertical e horizontal............................................................................................... 101
3.2 Forando a tela a trabalhar na orientao desejada................................................ 102
3.3 Criando telas diferentes para a vertical e a horizontal............................................. 105
3.4 O problema: o Android destri e recria a activity ao trocar de orientao................. 111
3.5 Salvando o estado da tela onSaveInstanceState().................................................. 113
3.6 Salvando o estado da tela onRetainNonConfigurationInstance()........................... 117
3.7 Salvando o estado da tela Qual mtodo utilizar?.................................................. 118
3.8 Fazer cache das imagens para melhorar a performance........................................... 122
3.9 Alternando o layout manualmente sem a necessidade de destruir e recriar a tela
android:configChanges........................................................................................ 126
3.10 O problema com a configurao do android:configChanges................................. 129
3.11 Smartphones com teclado.................................................................................... 130
3.12 A tela de aguarde durante a busca dos carros......................................................... 131

Captulo 4 Trabalhando com diversos tamanhos de tela................................................... 137


4.1 Introduo............................................................................................................137
4.2 Exemplo prtico sobre o problema de resoluo.................................................... 138
4.3 Termos e notaes utilizadas..................................................................................143
4.4 Convertendo pixels em dp e vice-versa.................................................................. 150
4.5 Customizando as imagens conforme a densidade da tela........................................155
4.6 A tag <supports-screens> no AndroidManifest.xml............................................... 156
4.7 A ordem que o Android utiliza para buscar os prefixos.......................................... 159
4.8 Mantendo a compatibilidade com Android 1.6 ou superior.................................... 160
4.9 Mantendo a compatibilidade com Android 1.5 ou superior.................................... 160
4.10 Melhores prticas para a criao de telas.............................................................. 162
4.11 Aplicativo dos carros customizado para tela grande.............................................. 163
4.12 Instalando um add-on para simular o GalaxTab................................................... 164
4.13 Customizando a tela para o GalaxTab, tela = large................................................ 165
4.14 O problema de duplicar o cdigo..........................................................................173

Captulo 5 Android 3.x para tablets Honeycomb............................................................ 174


5.1 Introduo.............................................................................................................174
5.2 Desenvolvendo aplicaes para o Android 3.x.........................................................176
5.3 Criando um Emulador para Android 3.x................................................................176
5.4 Executando a aplicao dos carros no Android 3.x..................................................178
5.5 Preparando o projeto para Android 3.x................................................................... 181
5.6 Customizando a ActionBar para Android 3.x ou superior....................................... 186
5.7 Identificando se um tablet com Android 3.x........................................................ 187

Captulo 6 Fragments..................................................................................................... 192


6.1 Introduo........................................................................................................... 192
6.2 O problema ao reutilizar views em diversas activities............................................. 193
6.3 Como controlar o contedo de diversas views e diversas threads em paralelo.......... 196

Sumrio

6.4 Criando o projeto com Android 3.x........................................................................197


6.5 Alterando o exemplo para utilizar fragments......................................................... 202
6.6 Ciclo de vida de um fragment................................................................................212
6.7 Exemplo para debugar o ciclo de vida de um fragment...........................................216
6.8 Buscar um fragment na tela.................................................................................. 220
6.9 Criando os fragments dinamicamente com FragmentTransaction........................... 224
6.10 FragmentTransaction mais alguns exemplos...................................................... 227
6.11 Fragment back stack............................................................................................ 230
6.12 Biblioteca de compatibilidade.............................................................................. 230
6.13 Migrando o projeto dos Fragments para utilizar a biblioteca de compatibilidade.... 231
6.14 Detalhes sobre o ciclo de vida de um Fragment.................................................... 236
6.15 O mtodo setRetainInstance(boolean)................................................................. 238
6.16 Ciclo de vida de um FragmentTransaction........................................................... 239

Captulo 7 ActionBar....................................................................................................... 243


7.1 Introduo............................................................................................................ 243
7.2 Preparando o projeto de exemplos......................................................................... 244
7.3 Adicionando itens de menu via API....................................................................... 244
7.4 Adicionando itens de menu via XML..................................................................... 246
7.5 Utilizando o cone do aplicativo como a home....................................................... 248
7.6 Trabalhando com Tabs.......................................................................................... 253
7.7 Inserindo uma view customizada na barra............................................................. 258
7.8 Mtodos utilitrios da ActionBar........................................................................... 263
7.9 ActionBar em verses anteriores ao Android 3.x..................................................... 264

Captulo 8 Migrando o aplicativo para tablets.................................................................. 267


8.1 Introduo........................................................................................................... 267
8.2 Criando o projeto................................................................................................ 272
8.3 Analisando a metodologia utilizada para a migrao............................................. 273
8.4 Adicionando a biblioteca de compatibilidade no projeto........................................ 274
8.5 Criando a classe base para os fragments................................................................ 275
8.6 Criando o fragment para o dashboard.................................................................. 278
8.7 Criando o fragment para a tela de sobre................................................................ 282
8.8 Dividindo a tela do dashboard em duas partes nos tablets..................................... 285
8.9 Tratando o layout diferenciado para tablets........................................................... 289
8.10 Criando o fragment para a tela de detalhes do carro..............................................291
8.11 Criando o fragment para a tela de listagem de carros............................................ 295
8.12 Criando o layout para a listagem de carros para tablets........................................ 299
8.13 Utilizando o fragment de detalhes na direita........................................................ 302
8.14 Navegao por Tabs na ActionBar para tablets...................................................... 305
8.15 Criando os itens de menu na ActionBar................................................................312
8.16 Implementando a ao do item atualizar na ActionBar..........................................315
8.17 Implementado a busca de carros com o SearchView..............................................319

10

Google Android para Tablets

Captulo 9 Android 4.x Ice Cream Sandwich.................................................................. 325


9.1 Introduo............................................................................................................ 325
9.2 Configurando o emulador do Android 4.x............................................................. 325
9.3 Android 4.0 ICS possui API Level = 14................................................................... 327
9.4 Executando a aplicao no Android 4.x ICS........................................................... 328
9.5 Verificando as outras telas da aplicao no Android 4.x ICS.................................... 331
9.6 Customizando o texto da ActionBar...................................................................... 332
9.7 Utilizando o menu fsico para acionar os itens de menu da ActionBar..................... 334
9.8 Troca de orientao na verso smartphone com Android 4.x ICS............................ 336
9.9 Travando a tela na horizontal para os tablets......................................................... 339

Captulo 10 Animaes................................................................................................... 341


10.1 A classe Animation...............................................................................................341
10.2 Criando o projeto para as animaes................................................................... 343
10.3 AlphaAnimation................................................................................................. 348
10.4 RotateAnimation................................................................................................. 351
10.5 ScaleAnimation.................................................................................................. 356
10.6 TranslateAnimation............................................................................................ 359
10.7 AnimationSet..................................................................................................... 362
10.8 AnimationListener..............................................................................................366
10.9 LayoutAnimationController................................................................................ 370
10.10 Interpolator........................................................................................................ 371
10.11 ViewFlipper....................................................................................................... 373
10.12 View customizada com animao ...................................................................... 376
10.13 Inserindo uma animao no projeto dos carros................................................... 378

Captulo 11 Animaes com Android 3.0.......................................................................... 382


11.1 O problema com a API de animaes no Android 2.x............................................ 382
11.2 Property Animation A animao criada a partir do Android 3.x.........................388
11.3 A classe ValueAnimator....................................................................................... 389
11.4 A classe ObjectAnimator..................................................................................... 393
11.5 ObjectAnimator Criando uma animao alpha................................................. 395
11.6 ObjectAnimator Girando um objeto................................................................. 397
11.7 ObjectAnimator Scale....................................................................................... 398
11.8 ObjectAnimator Movendo um objeto pela tela.................................................. 399
11.9 Criando um conjunto de animaes com a classe AnimatorSet..............................401
11.10 AnimatorListener............................................................................................... 402
11.11 Inserindo uma animao no projeto dos carros....................................................406

Captulo 12 Google Analytics e Google Mobile Ads........................................................... 410


12.1 Introduo ao Google Analytics............................................................................410
12.2 Criando uma conta no Google Analytics.............................................................. 411
12.3 Fazendo o download do SDK do Google Analytics................................................413
12.4 Criando os pageviews..........................................................................................416

Sumrio

11

12.5 Visualizando os relatrios....................................................................................418


12.6 Introduo ao Google Mobile Ads AdMobs....................................................... 420
12.7 Google Mobile Ads..............................................................................................421
12.8 Registrando a aplicao no AdMobs.................................................................... 422
12.9 Configurando o projeto...................................................................................... 426
12.10 Como adicionar um anncio com o AdView....................................................... 428
12.11 Alterando os layouts das telas de carros.............................................................. 430
12.12 Verificando os logs............................................................................................ 432
12.13 Voltando administrao da AdMobs................................................................ 433
12.14 Configurando um banner para a verso Tablet.................................................... 433

Captulo 13 Google TV.................................................................................................... 438


13.1 Introduo.......................................................................................................... 438
13.2 Preparando o ambiente de desenvolvimento......................................................... 439
13.3 Instalando o KVM.............................................................................................. 439
13.4 Instalando o Google TV Add-On.........................................................................440
13.5 Executando o emulador do Google TV................................................................ 442
13.6 Instalando a aplicao dos carros........................................................................ 443
13.7 Mais sobre o Google TV...................................................................................... 445

ndice remissivo................................................................................................................ 447

Google Android
para Tablets
Aprenda a desenvolver aplicaes para
o Android De smartphones a tablets

Ricardo R. Lecheta

Novatec

Copyright 2012 Novatec Editora Ltda.


Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.
proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao,
por escrito, do autor e da Editora.
Editor: Rubens Prates
Reviso gramatical: Alessandro Thom
Editorao eletrnica: Carolina Kuwabata
Capa: DesignCRV
ISBN: 978-85-7522-292-8
Histrico de impresses:
Fevereiro/2012

Primeira edio

Novatec Editora Ltda.


Rua Lus Antnio dos Santos 110
02460-000 So Paulo, SP Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: novatec@novatec.com.br
Site: novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec

Dados

Internacionais de Catalogao na Publicao


(Cmara Brasileira do Livro, SP, Brasil)
Lecheta, Ricardo R.
Google Android para tablets : aprenda a
desenvolver aplicaes para o Android : de
smartphones a tablets / Ricardo R. Lecheta. -So Paulo : Novatec Editora, 2012.
Bibliografia.
ISBN 978-85-7522-292-8
1. Android (Programa de computador) 2. Aplicao
de programa - Desenvolvimento 3. Computao mvel
4. Google 5. Internet sem fio 6. Tablets I. Ttulo.

12-00857

CDD-005.26
ndices para catlogo sistemtico:
1. Android : Plataforma de desenvolvimento para
aplicativos mveis : Tablets : Programa de
computador
005.26

VC20120131

(CIP)

captulo 1

Introduo

1.1 Introduo
Atualmente, diversas pesquisas apontam o Android como o sistema operacional
para smartphones que mais cresce no mundo. Sua arquitetura simples, flexvel e
ao mesmo tempo poderosa permite com que ele seja a base para muitos produtos,
que se beneficiam de sua plataforma.
A disputa no mercado de mobilidade est extremamente acirrada, com diversas
inovaes e lanamentos acontecendo em todos os lugares, e mesmo os especialistas sentem dificuldade em acompanhar tamanha evoluo.
Estamos na dcada da mobilidade, onde smartphones e tablets faro cada vez
mais parte de nosso dia a dia, e o mercado busca incessantemente por especialistas
no assunto para desenvolver aplicativos comerciais e coorporativos para os mais
diversos setores, como varejo, sade, economia, jogos e muito mais.
O objetivo deste livro fornecer uma base slida para que se acompanhe esse
mercado e que se desenvolvam aplicaes competitivas com o simptico sistema
operacional do robozinho verde.

1.2 Desenvolvendo desde smartphones at tablets


Para que se compreenda este livro recomendam-se conhecimentos bsicos de
Android, para que se consiga acompanhar os exemplos.
Nosso objetivo desenvolver, passo a passo, uma aplicao que funcione
desde nos smartphones com Android 1.6 at nos novos tablets com Android 3.x
Honeycomb.
16

Captulo 1 Introduo

17

Recentemente tambm foi lanado o Android 4.x Ice Cream Sandwich, o qual
visa unir as plataformas de desenvolvimento dos smartphones e tablets e trazer
as novas APIs, que inicialmente estavam disponveis apenas no Honeycomb para
os smartphones.
Com todas essas verses do Android e toda a diversidade de aparelhos com
diferentes tamanhos de tela e resoluo, surge uma dificuldade em desenvolver
aplicativos compatveis com todos eles.
Nesta obra, a cada captulo vamos evoluir nosso projeto, utilizando vrias
boas prticas e dicas de desenvolvimento medida em que os assuntos vo sendo
abordados.
Como foco principal temos o desenvolvimento de uma aplicao nica para
smartphones e tablets, e ainda usufruindo de novos recursos, como Fragments e
ActionBar, disponveis a partir do Android 3.x Honeycomb.

1.3 Android 3.x Honeycomb


Com a popularizao dos tablets e a grande busca dos usurios por esses equipamentos surgiu a necessidade de otimizar e customizar o Android para que se
usufrua ao mximo do tamanho de tela disponvel nesses aparelhos.
A resposta do Google para essa demanda foi o lanamento do Android 3.x,
conhecido como Honeycomb, com o objetivo de fornecer ao usurio uma tima
experincia ao utilizar os tablets.
Durante a leitura vamos estudar as novas APIs disponveis a partir do Honeycomb, como Fragments e ActionBar, e otimizar o projeto do livro para tablets.
A figura 1.1 exibe a aplicao dos carros executando em um tablet.

1.4 Android 4.x Ice Cream Sandwich


Depois que o Android 3.x Honeycomb foi lanado, com novos recursos e funcionalidades, surgiu uma grande necessidade de unificar as plataformas de desenvolvimento entre os tablets e smartphones. Para isso foi lanado o to aguardado
Android 4.x Ice Cream Sandwich (ICS), que unificou o sistema operacional,
permitindo que os smartphones pudessem utilizar os ltimos recursos e APIs
disponveis no sistema operacional.

18

Google Android para Tablets

Figura 1.1 Projeto dos carros executando em um tablet com Android 3.x Honeycomb.

A figura 1.2 exibe a aplicao dos carros funcionando em um smartphone com


Android 4.x ICS.

Figura 1.2 Projeto dos carros executando em um smartphone com Android 4.x ICS.

Captulo 1 Introduo

19

1.5 Organizao do livro


Esta obra dedicada aos desenvolvedores Android que j desenvolvem aplicativos para esse sistema operacional, ou pelo menos conhecem o bsico sobre a
plataforma.
O desenvolvimento do projeto j comea a todo o vapor no captulo 2 e com
uma abordagem simples e direta. Para comear construda, passo a passo, uma
aplicao que lista diversos carros separados por categoria, com todos os detalhes
necessrios para um bom entendimento do exemplo.
Assuntos avanados, como tratamento de threads, requisies http, parser de
xml e at como criar projetos de biblioteca com classes reutilizveis e um projeto
de testes, so explicados e detalhados j no captulo 2.
A figura 1.3 exibe o projeto que teremos executado no final do captulo 2.
No captulo 3 explicado como o Android trata a troca de orientao, onde
vamos estudar como criar telas especficas para a vertical ou a horizontal, detalhes importantes sobre o ciclo de vida das aplicaes e como salvar o estado das
informaes corretamente durante a troca de orientao.
O captulo 4 explica a fundo o maior problema que temos com o Android hoje,
que o fato de existirem diversos aparelhos com diferentes tamanhos de telas e
resolues. Existem celulares pequenos, grandes e tablets, que no se diferenciam
somente pelo tamanho das telas, mas tambm pela sua resoluo. Nesse captulo
vamos estudar todos os detalhes que voc precisa saber para dominar esse assunto,
para que seja possvel criarmos aplicaes que funcionem em diversos tamanhos
de tela. Esse um captulo bem terico e apresenta uma base muito forte que
todos os desenvolvedores Android precisam dominar.
O livro muito prtico, e os detalhes para tratar as telas na horizontal e criar
layouts diferenciados, assim como aspectos avanados do ciclo de vida da aplicao, so abordados de forma simples.
No captulo 5 seguimos com nossa abordagem, e agora o prximo passo
ser a introduo ao Android 3.x Honeycomb, onde discutiremos aspectos
importantes que devem ser levados em considerao ao migrar as aplicaes de
smartphones para tablets.
Os captulos 6 e 7 fornecem uma base slida para as novas APIs de Fragments
e ActionBar, criadas para auxiliar o desenvolvedor no aproveitamento do grande
espao disponvel nas grandes telas dos novos tablets de 10, assim como ajudar
na organizao e manuteno do cdigo.

20

Google Android para Tablets

Figura 1.3 Aplicao dos carros para smartphone Android 2.x.

O captulo 8 onde comeamos a migrao da aplicao dos carros para tablets. O


resultado depois da utilizao dos novos conceitos pode ser visualizado na figura 1.4.
No final desse captulo a aplicao estar pronta e funcional, e teremos em um
nico build uma aplicao que funciona desde em smartphones com Android
1.6 at nos novos tablets com Android 3.x. Alm disso, exibido um layout diferenciado para cada tipo de tela, para que se aproveitem ao mximo os padres e
recursos disponveis na plataforma.

Captulo 1 Introduo

21

Figura 1.4 Aplicao dos carros executando em um tablet com Android 3.x de 10.

No captulo 9 feita a introduo ao Android 4.x ICS, e vamos verificar como


a aplicao construda para tablets pode executar em um poderoso smartphone
que vai usufruir dos novos recursos, inclusive da navegao por Tabs na ActionBar.
Esta obra no para por a, e os captulos 10 e 11 explicam as bibliotecas disponveis para animao no Android 2.x e o novo framework de animao criado a
partir do Android 3.x, respectivamente. Diversos exemplos simples e prticos so
criados para explicar as animaes, e no final desses captulos vamos turbinar a
aplicao dos carros e criar alguns efeitos especiais.
No captulo 12 vamos estudar como exibir anncios do Google Mobile Ads
AdMobs na aplicao e a possibilidade de ter lucro com o aplicativo sempre que
algum usurio clicar sobre um anncio.
Outro assunto que vamos estudar como utilizar o Google Analytics para
monitorar as telas acessadas da aplicao, assim como diversos eventos gerados,
para descobrir como o usurio est utilizando tal aplicao e posteriormente ter
acesso a interessantes relatrios e mtricas.
A figura 1.5 mostra os anncios sendo exibidos na aplicao dos carros.

22

Google Android para Tablets

Figura 1.5 Anncios sendo exibidos na aplicao.

Para finalizar, no captulo 13 vamos verificar como a aplicao executa no


emulador da Google TV e dar um primeiro grande passo para desenvolver para
essa plataforma. A figura 1.6 exibe a aplicao dos carros na Google TV.

Figura 1.6 Google TV.

O objetivo deste livro criar uma aplicao, que ser desenvolvida passo a
passo juntamente com voc, a cada captulo. Boa leitura.