aprenda a desenvolver aplicações para o android - de smartphones a tablets

16
Novatec Ricardo R. Lecheta Google Android para Tablets Aprenda a desenvolver aplicações para o Android – De smartphones a tablets

Upload: apeironcad

Post on 08-Feb-2016

69 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Novatec

Ricardo R. Lecheta

Google Android para Tablets

Aprenda a desenvolver aplicações para o Android – De smartphones a tablets

Page 2: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

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 PratesRevisão gramatical: Alessandro ThoméEditoração eletrônica: Carolina KuwabataCapa: 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 11002460-000 – São Paulo, SP – BrasilTel.: +55 11 2959-6529Fax: +55 11 2950-8869E-mail: [email protected]: novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec

VC20120131

Dados Internacionais de Catalogação na Publicação (CIP)(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

Page 3: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

7

Sumário

Agradecimentos ................................................................................................................. 13

Sobre o autor ..................................................................................................................... 14

Prefácio ............................................................................................................................. 15

Capítulo 1 ▪ Introdução ...................................................................................................... 161.1 Introdução ............................................................................................................. 161.2 Desenvolvendo desde smartphones até tablets ........................................................ 161.3 Android 3.x – Honeycomb ..................................................................................... 171.4 Android 4.x – Ice Cream Sandwich ......................................................................... 171.5 Organização do livro ............................................................................................. 19

Capítulo 2 ▪ Aplicativo de exemplo ..................................................................................... 232.1 O projeto............................................................................................................... 232.2 Criando o projeto .................................................................................................262.3 Criando a tela principal – Dashboard .....................................................................292.4 Criando os layouts de cabeçalho e rodapé .............................................................. 352.5 Adicionando os eventos nos botões do dashboard ..................................................382.6 A classe Carro .......................................................................................................402.7 Arquitetura de integração com o legado ................................................................. 412.8 Requisição HTTP para ler o arquivo XML ..............................................................422.9 Criando um projeto biblioteca para o projeto .........................................................492.10 Criando testes unitários com JUnit ....................................................................... 532.11 Verificando se existe conexão de dados disponível..................................................582.12 Trabalhando com threads ..................................................................................... 612.13 A classe AsyncTask ...............................................................................................632.14 Criando a interface para a lista de carros com um ListView ................................... 672.15 Criando o adapter para a lista de carros ................................................................692.16 Encapsulando o AsyncTask para tornar o código mais simples ............................... 812.17 Exibindo os detalhes do carro selecionado ............................................................852.18 Exibindo a tela de sobre com um WebView ...........................................................922.19 Integrando Java e Javascript no WebView ..............................................................942.20 Exibindo um ProgressBar enquanto o WebView não carrega .................................972.21 Considerações sobre o exemplo .......................................................................... 100

Page 4: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Google Android para Tablets8

Capítulo 3 ▪ Controlando o estado de sua activity .............................................................. 1013.1 Vertical e horizontal ..............................................................................................1013.2 Forçando a tela a trabalhar na orientação desejada ............................................... 1023.3 Criando telas diferentes para a vertical e a horizontal ............................................ 1053.4 O problema: o Android destrói e recria a activity ao trocar de orientação ................ 1113.5 Salvando o estado da tela – onSaveInstanceState() .................................................1133.6 Salvando o estado da tela – onRetainNonConfigurationInstance() .......................... 1173.7 Salvando o estado da tela – Qual método utilizar? .................................................1183.8 Fazer cache das imagens para melhorar a performance .......................................... 1223.9 Alternando o layout manualmente sem a necessidade de destruir e recriar a tela –

android:configChanges........................................................................................ 1263.10 O problema com a configuração do android:configChanges ................................ 1293.11 Smartphones com teclado ................................................................................... 1303.12 A tela de aguarde durante a busca dos carros ........................................................ 131

Capítulo 4 ▪ Trabalhando com diversos tamanhos de tela .................................................. 1374.1 Introdução ...........................................................................................................1374.2 Exemplo prático sobre o problema de resolução ................................................... 1384.3 Termos e notações utilizadas .................................................................................1434.4 Convertendo pixels em dp e vice-versa ................................................................. 1504.5 Customizando as imagens conforme a densidade da tela .......................................1554.6 A tag <supports-screens> no AndroidManifest.xml .............................................. 1564.7 A ordem que o Android utiliza para buscar os prefixos ......................................... 1594.8 Mantendo a compatibilidade com Android 1.6 ou superior ................................... 1604.9 Mantendo a compatibilidade com Android 1.5 ou superior ................................... 1604.10 Melhores práticas para a criação de telas ............................................................. 1624.11 Aplicativo dos carros customizado para tela grande ............................................. 1634.12 Instalando um add-on para simular o GalaxTab .................................................. 1644.13 Customizando a tela para o GalaxTab, tela = large ............................................... 1654.14 O problema de duplicar o código .........................................................................173

Capítulo 5 ▪ Android 3.x para tablets “Honeycomb” ........................................................... 1745.1 Introdução ............................................................................................................1745.2 Desenvolvendo aplicações para o Android 3.x ........................................................1765.3 Criando um Emulador para Android 3.x ...............................................................1765.4 Executando a aplicação dos carros no Android 3.x .................................................1785.5 Preparando o projeto para Android 3.x ..................................................................1815.6 Customizando a ActionBar para Android 3.x ou superior ...................................... 1865.7 Identificando se é um tablet com Android 3.x ....................................................... 187

Capítulo 6 ▪ Fragments .................................................................................................... 1926.1 Introdução .......................................................................................................... 1926.2 O problema ao reutilizar views em diversas activities ............................................ 1936.3 Como controlar o conteúdo de diversas views e diversas threads em paralelo ......... 196

Page 5: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

9Sumário

6.4 Criando o projeto com Android 3.x .......................................................................1976.5 Alterando o exemplo para utilizar fragments ........................................................ 2026.6 Ciclo de vida de um fragment ...............................................................................2126.7 Exemplo para debugar o ciclo de vida de um fragment ..........................................2166.8 Buscar um fragment na tela ................................................................................. 2206.9 Criando os fragments dinamicamente com FragmentTransaction .......................... 2246.10 FragmentTransaction – mais alguns exemplos ..................................................... 2276.11 Fragment back stack ........................................................................................... 2306.12 Biblioteca de compatibilidade ............................................................................. 2306.13 Migrando o projeto dos Fragments para utilizar a biblioteca de compatibilidade ...2316.14 Detalhes sobre o ciclo de vida de um Fragment ................................................... 2366.15 O método setRetainInstance(boolean) ................................................................ 2386.16 Ciclo de vida de um FragmentTransaction .......................................................... 239

Capítulo 7 ▪ ActionBar ...................................................................................................... 2437.1 Introdução ........................................................................................................... 2437.2 Preparando o projeto de exemplos ........................................................................ 2447.3 Adicionando itens de menu via API ...................................................................... 2447.4 Adicionando itens de menu via XML .................................................................... 2467.5 Utilizando o ícone do aplicativo como a home ...................................................... 2487.6 Trabalhando com Tabs ......................................................................................... 2537.7 Inserindo uma view customizada na barra ............................................................ 2587.8 Métodos utilitários da ActionBar .......................................................................... 2637.9 ActionBar em versões anteriores ao Android 3.x ....................................................264

Capítulo 8 ▪ Migrando o aplicativo para tablets ................................................................. 2678.1 Introdução .......................................................................................................... 2678.2 Criando o projeto................................................................................................ 2728.3 Analisando a metodologia utilizada para a migração ............................................ 2738.4 Adicionando a biblioteca de compatibilidade no projeto ....................................... 2748.5 Criando a classe base para os fragments ............................................................... 2758.6 Criando o fragment para o dashboard.................................................................. 2788.7 Criando o fragment para a tela de sobre ............................................................... 2828.8 Dividindo a tela do dashboard em duas partes nos tablets .................................... 2858.9 Tratando o layout diferenciado para tablets .......................................................... 2898.10 Criando o fragment para a tela de detalhes do carro .............................................2918.11 Criando o fragment para a tela de listagem de carros ........................................... 2958.12 Criando o layout para a listagem de carros para tablets ....................................... 2998.13 Utilizando o fragment de detalhes na direita ....................................................... 3028.14 Navegação por Tabs na ActionBar para tablets ..................................................... 3058.15 Criando os itens de menu na ActionBar ...............................................................3128.16 Implementando a ação do item atualizar na ActionBar .........................................3158.17 Implementado a busca de carros com o SearchView .............................................319

Page 6: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Google Android para Tablets10

Capítulo 9 ▪ Android 4.x – Ice Cream Sandwich ................................................................. 3259.1 Introdução ........................................................................................................... 3259.2 Configurando o emulador do Android 4.x ............................................................ 3259.3 Android 4.0 ICS possui API Level = 14 .................................................................. 3279.4 Executando a aplicação no Android 4.x ICS .......................................................... 3289.5 Verificando as outras telas da aplicação no Android 4.x ICS ...................................3319.6 Customizando o texto da ActionBar ..................................................................... 3329.7 Utilizando o menu físico para acionar os itens de menu da ActionBar .................... 3349.8 Troca de orientação na versão smartphone com Android 4.x ICS ........................... 3369.9 Travando a tela na horizontal para os tablets ........................................................ 339

Capítulo 10 ▪ Animações .................................................................................................. 34110.1 A classe Animation ..............................................................................................34110.2 Criando o projeto para as animações .................................................................. 34310.3 AlphaAnimation ................................................................................................ 34810.4 RotateAnimation ................................................................................................ 35110.5 ScaleAnimation ................................................................................................. 35610.6 TranslateAnimation ........................................................................................... 35910.7 AnimationSet .................................................................................................... 36210.8 AnimationListener .............................................................................................36610.9 LayoutAnimationController ............................................................................... 37010.10 Interpolator .......................................................................................................37110.11 ViewFlipper ...................................................................................................... 37310.12 View customizada com animação ..................................................................... 37610.13 Inserindo uma animação no projeto dos carros .................................................. 378

Capítulo 11 ▪ Animações com Android 3.0 ......................................................................... 38211.1 O problema com a API de animações no Android 2.x ........................................... 38211.2 Property Animation – A animação criada a partir do Android 3.x.........................38811.3 A classe ValueAnimator ...................................................................................... 38911.4 A classe ObjectAnimator .................................................................................... 39311.5 ObjectAnimator – Criando uma animação alpha ................................................ 39511.6 ObjectAnimator – Girando um objeto ................................................................ 39711.7 ObjectAnimator – Scale ...................................................................................... 39811.8 ObjectAnimator – Movendo um objeto pela tela ................................................. 39911.9 Criando um conjunto de animações com a classe AnimatorSet .............................40111.10 AnimatorListener .............................................................................................. 40211.11 Inserindo uma animação no projeto dos carros ...................................................406

Capítulo 12 ▪ Google Analytics e Google Mobile Ads .......................................................... 41012.1 Introdução ao Google Analytics ...........................................................................41012.2 Criando uma conta no Google Analytics ............................................................. 41112.3 Fazendo o download do SDK do Google Analytics ...............................................41312.4 Criando os pageviews .........................................................................................416

Page 7: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

11Sumário

12.5 Visualizando os relatórios ...................................................................................41812.6 Introdução ao Google Mobile Ads – AdMobs ...................................................... 42012.7 Google Mobile Ads .............................................................................................42112.8 Registrando a aplicação no AdMobs ................................................................... 42212.9 Configurando o projeto ..................................................................................... 42612.10 Como adicionar um anúncio com o AdView ...................................................... 42812.11 Alterando os layouts das telas de carros ............................................................. 43012.12 Verificando os logs............................................................................................ 43212.13 Voltando à administração da AdMobs ............................................................... 43312.14 Configurando um banner para a versão Tablet ................................................... 433

Capítulo 13 ▪ Google TV.................................................................................................... 43813.1 Introdução ......................................................................................................... 43813.2 Preparando o ambiente de desenvolvimento ........................................................ 43913.3 Instalando o KVM ............................................................................................. 43913.4 Instalando o Google TV Add-On ........................................................................44013.5 Executando o emulador do Google TV ............................................................... 44213.6 Instalando a aplicação dos carros ....................................................................... 44313.7 Mais sobre o Google TV ..................................................................................... 445

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

Page 8: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Novatec

Ricardo R. Lecheta

Google Android para Tablets

Aprenda a desenvolver aplicações para o Android – De smartphones a tablets

Page 9: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

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 PratesRevisão gramatical: Alessandro ThoméEditoração eletrônica: Carolina KuwabataCapa: 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 11002460-000 – São Paulo, SP – BrasilTel.: +55 11 2959-6529Fax: +55 11 2950-8869E-mail: [email protected]: novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec

VC20120131

Dados Internacionais de Catalogação na Publicação (CIP)(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

Page 10: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

16

capítulo 1Introdução

1.1 IntroduçãoAtualmente, 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 especia-listas 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é tabletsPara 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.

Page 11: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

17Capítulo 1 ■ Introdução

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 – HoneycombCom a popularização dos tablets e a grande busca dos usuários por esses equi-pamentos 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 Ho-neycomb, 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 SandwichDepois que o Android 3.x – Honeycomb foi lançado, com novos recursos e fun-cionalidades, surgiu uma grande necessidade de unificar as plataformas de desen-volvimento 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.

Page 12: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Google Android para Tablets18

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.

Page 13: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

19Capítulo 1 ■ Introdução

1.5 Organização do livroEsta obra é dedicada aos desenvolvedores Android que já desenvolvem aplica-tivos 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, deta-lhes 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 apli-caçã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.

Page 14: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Google Android para Tablets20

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 dife-renciado para cada tipo de tela, para que se aproveitem ao máximo os padrões e recursos disponíveis na plataforma.

Page 15: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

21Capítulo 1 ■ Introdução

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 dispo-ní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.

Page 16: Aprenda a desenvolver aplicações para o Android - de smartphones a tablets

Google Android para Tablets22

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.