Google Android
para Tablets
Aprenda a desenvolver aplicações 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 reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização,
por escrito, do autor e da Editora.
Editor: Rubens Prates
Revisão gramatical: Alessandro Thomé
Editoração eletrônica: Carolina Kuwabata
Capa: DesignCRV
ISBN: 978-85-7522-292-8
Histórico de impressões:
Fevereiro/2012
Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: [email protected]
Site: novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
Dados
Internacionais de Catalogação na Publicação
(Câmara Brasileira do Livro, SP, Brasil)
Lecheta, Ricardo R.
Google Android para tablets : aprenda a
desenvolver aplicações para o Android : de
smartphones a tablets / Ricardo R. Lecheta. -São Paulo : Novatec Editora, 2012.
Bibliografia.
ISBN 978-85-7522-292-8
1. Android (Programa de computador) 2. Aplicação
de programa - Desenvolvimento 3. Computação móvel
4. Google 5. Internet sem fio 6. Tablets I. Título.
12-00857
CDD-005.26
Índices para catálogo sistemático:
1. Android : Plataforma de desenvolvimento para
aplicativos móveis : Tablets : Programa de
computador
005.26
VC20120131
(CIP)
Sumário
Agradecimentos..................................................................................................................13
Sobre o autor......................................................................................................................14
Prefácio..............................................................................................................................15
Capítulo 1 ▪ Introdução.......................................................................................................16
1.1 Introdução.............................................................................................................. 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 Organização do livro.............................................................................................. 19
Capítulo 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 cabeçalho e rodapé............................................................... 35
2.5 Adicionando os eventos nos botões do dashboard...................................................38
2.6 A classe Carro........................................................................................................40
2.7 Arquitetura de integração com o legado.................................................................. 41
2.8 Requisição HTTP para ler o arquivo XML...............................................................42
2.9 Criando um projeto biblioteca para o projeto.......................................................... 49
2.10 Criando testes unitários com JUnit........................................................................ 53
2.11 Verificando se existe conexão de dados disponível..................................................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 código 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 não carrega.................................. 97
2.21 Considerações sobre o exemplo........................................................................... 100
7
8
Google Android para Tablets
Capítulo 3 ▪ Controlando o estado de sua activity............................................................... 101
3.1 Vertical e horizontal............................................................................................... 101
3.2 Forçando a tela a trabalhar na orientação desejada................................................ 102
3.3 Criando telas diferentes para a vertical e a horizontal............................................. 105
3.4 O problema: o Android destrói e recria a activity ao trocar de orientação................. 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 método 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 configuração do android:configChanges................................. 129
3.11 Smartphones com teclado.................................................................................... 130
3.12 A tela de aguarde durante a busca dos carros......................................................... 131
Capítulo 4 ▪ Trabalhando com diversos tamanhos de tela................................................... 137
4.1 Introdução............................................................................................................137
4.2 Exemplo prático sobre o problema de resolução.................................................... 138
4.3 Termos e notações 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 práticas para a criação 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 código..........................................................................173
Capítulo 5 ▪ Android 3.x para tablets “Honeycomb”............................................................ 174
5.1 Introdução.............................................................................................................174
5.2 Desenvolvendo aplicações para o Android 3.x.........................................................176
5.3 Criando um Emulador para Android 3.x................................................................176
5.4 Executando a aplicação 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
Capítulo 6 ▪ Fragments..................................................................................................... 192
6.1 Introdução........................................................................................................... 192
6.2 O problema ao reutilizar views em diversas activities............................................. 193
6.3 Como controlar o conteúdo de diversas views e diversas threads em paralelo.......... 196
Sumário
9
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 método setRetainInstance(boolean)................................................................. 238
6.16 Ciclo de vida de um FragmentTransaction........................................................... 239
Capítulo 7 ▪ ActionBar....................................................................................................... 243
7.1 Introdução............................................................................................................ 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 Métodos utilitários da ActionBar........................................................................... 263
7.9 ActionBar em versões anteriores ao Android 3.x..................................................... 264
Capítulo 8 ▪ Migrando o aplicativo para tablets.................................................................. 267
8.1 Introdução........................................................................................................... 267
8.2 Criando o projeto................................................................................................ 272
8.3 Analisando a metodologia utilizada para a migração............................................. 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 Navegação por Tabs na ActionBar para tablets...................................................... 305
8.15 Criando os itens de menu na ActionBar................................................................312
8.16 Implementando a ação do item atualizar na ActionBar..........................................315
8.17 Implementado a busca de carros com o SearchView..............................................319
10
Google Android para Tablets
Capítulo 9 ▪ Android 4.x – Ice Cream Sandwich.................................................................. 325
9.1 Introdução............................................................................................................ 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 aplicação no Android 4.x ICS........................................................... 328
9.5 Verificando as outras telas da aplicação no Android 4.x ICS.................................... 331
9.6 Customizando o texto da ActionBar...................................................................... 332
9.7 Utilizando o menu físico para acionar os itens de menu da ActionBar..................... 334
9.8 Troca de orientação na versão smartphone com Android 4.x ICS............................ 336
9.9 Travando a tela na horizontal para os tablets......................................................... 339
Capítulo 10 ▪ Animações................................................................................................... 341
10.1 A classe Animation...............................................................................................341
10.2 Criando o projeto para as animações................................................................... 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 animação ...................................................................... 376
10.13 Inserindo uma animação no projeto dos carros................................................... 378
Capítulo 11 ▪ Animações com Android 3.0.......................................................................... 382
11.1 O problema com a API de animações no Android 2.x............................................ 382
11.2 Property Animation – A animação 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 animação 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 animações com a classe AnimatorSet..............................401
11.10 AnimatorListener............................................................................................... 402
11.11 Inserindo uma animação no projeto dos carros....................................................406
Capítulo 12 ▪ Google Analytics e Google Mobile Ads........................................................... 410
12.1 Introdução 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
Sumário
11
12.5 Visualizando os relatórios....................................................................................418
12.6 Introdução ao Google Mobile Ads – AdMobs....................................................... 420
12.7 Google Mobile Ads..............................................................................................421
12.8 Registrando a aplicação no AdMobs.................................................................... 422
12.9 Configurando o projeto...................................................................................... 426
12.10 Como adicionar um anúncio com o AdView....................................................... 428
12.11 Alterando os layouts das telas de carros.............................................................. 430
12.12 Verificando os logs............................................................................................ 432
12.13 Voltando à administração da AdMobs................................................................ 433
12.14 Configurando um banner para a versão Tablet.................................................... 433
Capítulo 13 ▪ Google TV.................................................................................................... 438
13.1 Introdução.......................................................................................................... 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 aplicação dos carros........................................................................ 443
13.7 Mais sobre o Google TV...................................................................................... 445
Índice remissivo................................................................................................................ 447
Google Android
para Tablets
Aprenda a desenvolver aplicações 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 reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização,
por escrito, do autor e da Editora.
Editor: Rubens Prates
Revisão gramatical: Alessandro Thomé
Editoração eletrônica: Carolina Kuwabata
Capa: DesignCRV
ISBN: 978-85-7522-292-8
Histórico de impressões:
Fevereiro/2012
Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: [email protected]
Site: novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
Dados
Internacionais de Catalogação na Publicação
(Câmara Brasileira do Livro, SP, Brasil)
Lecheta, Ricardo R.
Google Android para tablets : aprenda a
desenvolver aplicações para o Android : de
smartphones a tablets / Ricardo R. Lecheta. -São Paulo : Novatec Editora, 2012.
Bibliografia.
ISBN 978-85-7522-292-8
1. Android (Programa de computador) 2. Aplicação
de programa - Desenvolvimento 3. Computação móvel
4. Google 5. Internet sem fio 6. Tablets I. Título.
12-00857
CDD-005.26
Índices para catálogo sistemático:
1. Android : Plataforma de desenvolvimento para
aplicativos móveis : Tablets : Programa de
computador
005.26
VC20120131
(CIP)
capítulo 1
Introdução
1.1 Introdução
Atualmente, diversas pesquisas apontam o Android como o sistema operacional
para smartphones que mais cresce no mundo. Sua arquitetura simples, flexível 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
inovações e lançamentos acontecendo em todos os lugares, e mesmo os especialistas sentem dificuldade em acompanhar tamanha evolução.
Estamos na década da mobilidade, onde smartphones e tablets farão 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, saúde, economia, jogos e muito mais.
O objetivo deste livro é fornecer uma base sólida para que se acompanhe esse
mercado e que se desenvolvam aplicações competitivas com o simpático sistema
operacional do robozinho verde.
1.2 Desenvolvendo desde smartphones até tablets
Para que se compreenda este livro recomendam-se conhecimentos básicos de
Android, para que se consiga acompanhar os exemplos.
Nosso objetivo é desenvolver, passo a passo, uma aplicação que funcione
desde nos smartphones com Android 1.6 até nos novos tablets com Android 3.x
Honeycomb.
16
Capítulo 1 ■ Introdução
17
Recentemente também foi lançado 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 disponíveis apenas no Honeycomb para
os smartphones.
Com todas essas versões do Android e toda a diversidade de aparelhos com
diferentes tamanhos de tela e resolução, surge uma dificuldade em desenvolver
aplicativos compatíveis com todos eles.
Nesta obra, a cada capítulo vamos evoluir nosso projeto, utilizando várias
boas práticas e dicas de desenvolvimento à medida em que os assuntos vão sendo
abordados.
Como foco principal temos o desenvolvimento de uma aplicação única para
smartphones e tablets, e ainda usufruindo de novos recursos, como Fragments e
ActionBar, disponíveis a partir do Android 3.x – Honeycomb.
1.3 Android 3.x – Honeycomb
Com a popularização dos tablets e a grande busca dos usuários por esses equipamentos surgiu a necessidade de otimizar e customizar o Android para que se
usufrua ao máximo do tamanho de tela disponível nesses aparelhos.
A resposta do Google para essa demanda foi o lançamento do Android 3.x,
conhecido como Honeycomb, com o objetivo de fornecer ao usuário uma ótima
experiência ao utilizar os tablets.
Durante a leitura vamos estudar as novas APIs disponíveis a partir do Honeycomb, como Fragments e ActionBar, e otimizar o projeto do livro para tablets.
A figura 1.1 exibe a aplicação dos carros executando em um tablet.
1.4 Android 4.x – Ice Cream Sandwich
Depois que o Android 3.x – Honeycomb foi lançado, com novos recursos e funcionalidades, surgiu uma grande necessidade de unificar as plataformas de desenvolvimento entre os tablets e smartphones. Para isso foi lançado o tão aguardado
Android 4.x – Ice Cream Sandwich (ICS), que unificou o sistema operacional,
permitindo que os smartphones pudessem utilizar os últimos recursos e APIs
disponíveis 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 aplicação 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.
Capítulo 1 ■ Introdução
19
1.5 Organização do livro
Esta obra é dedicada aos desenvolvedores Android que já desenvolvem aplicativos para esse sistema operacional, ou pelo menos conhecem o básico sobre a
plataforma.
O desenvolvimento do projeto já começa a todo o vapor no capítulo 2 e com
uma abordagem simples e direta. Para começar é construída, passo a passo, uma
aplicação que lista diversos carros separados por categoria, com todos os detalhes
necessários para um bom entendimento do exemplo.
Assuntos avançados, como tratamento de threads, requisições http, parser de
xml e até como criar projetos de biblioteca com classes reutilizáveis e um projeto
de testes, são explicados e detalhados já no capítulo 2.
A figura 1.3 exibe o projeto que teremos executado no final do capítulo 2.
No capítulo 3 é explicado como o Android trata a troca de orientação, onde
vamos estudar como criar telas específicas para a vertical ou a horizontal, detalhes importantes sobre o ciclo de vida das aplicações e como salvar o estado das
informações corretamente durante a troca de orientação.
O capítulo 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
resoluções. Existem celulares pequenos, grandes e tablets, que não se diferenciam
somente pelo tamanho das telas, mas também pela sua resolução. Nesse capítulo
vamos estudar todos os detalhes que você precisa saber para dominar esse assunto,
para que seja possível criarmos aplicações que funcionem em diversos tamanhos
de tela. Esse é um capítulo bem teórico e apresenta uma base muito forte que
todos os desenvolvedores Android precisam dominar.
O livro é muito prático, e os detalhes para tratar as telas na horizontal e criar
layouts diferenciados, assim como aspectos avançados do ciclo de vida da aplicação, são abordados de forma simples.
No capítulo 5 seguimos com nossa abordagem, e agora o próximo passo
será a introdução ao Android 3.x – Honeycomb, onde discutiremos aspectos
importantes que devem ser levados em consideração ao migrar as aplicações de
smartphones para tablets.
Os capítulos 6 e 7 fornecem uma base sólida para as novas APIs de Fragments
e ActionBar, criadas para auxiliar o desenvolvedor no aproveitamento do grande
espaço disponível nas grandes telas dos novos tablets de 10”, assim como ajudar
na organização e manutenção do código.
20
Google Android para Tablets
Figura 1.3 – Aplicação dos carros para smartphone Android 2.x.
O capítulo 8 é onde começamos a migração da aplicação dos carros para tablets. O
resultado depois da utilização dos novos conceitos pode ser visualizado na figura 1.4.
No final desse capítulo a aplicação estará pronta e funcional, e teremos em um
único build uma aplicação que funciona desde em smartphones com Android
1.6 até nos novos tablets com Android 3.x. Além disso, é exibido um layout diferenciado para cada tipo de tela, para que se aproveitem ao máximo os padrões e
recursos disponíveis na plataforma.
Capítulo 1 ■ Introdução
21
Figura 1.4 – Aplicação dos carros executando em um tablet com Android 3.x de 10”.
No capítulo 9 é feita a introdução ao Android 4.x – ICS, e vamos verificar como
a aplicação construída para tablets pode executar em um poderoso smartphone
que vai usufruir dos novos recursos, inclusive da navegação por Tabs na ActionBar.
Esta obra não para por aí, e os capítulos 10 e 11 explicam as bibliotecas disponíveis para animação no Android 2.x e o novo framework de animação criado a
partir do Android 3.x, respectivamente. Diversos exemplos simples e práticos são
criados para explicar as animações, e no final desses capítulos vamos turbinar a
aplicação dos carros e criar alguns efeitos especiais.
No capítulo 12 vamos estudar como exibir anúncios do Google Mobile Ads –
AdMobs na aplicação e a possibilidade de ter lucro com o aplicativo sempre que
algum usuário clicar sobre um anúncio.
Outro assunto que vamos estudar é como utilizar o Google Analytics para
monitorar as telas acessadas da aplicação, assim como diversos eventos gerados,
para descobrir como o usuário está utilizando tal aplicação e posteriormente ter
acesso a interessantes relatórios e métricas.
A figura 1.5 mostra os anúncios sendo exibidos na aplicação dos carros.
22
Google Android para Tablets
Figura 1.5 – Anúncios sendo exibidos na aplicação.
Para finalizar, no capítulo 13 vamos verificar como a aplicação executa no
emulador da Google TV e dar um primeiro grande passo para desenvolver para
essa plataforma. A figura 1.6 exibe a aplicação dos carros na Google TV.
Figura 1.6 – Google TV.
O objetivo deste livro é criar uma aplicação, que será desenvolvida passo a
passo juntamente com você, a cada capítulo. Boa leitura.
Download

Google Android para Tablets