Ricardo da Silva Ogliari
Robison Cris Brito
Android - Do Básico ao Avançado
Copyright¤ Editora Ciência Moderna Ltda., 2014
Todos os direitos para a língua portuguesa reservados pela EDITORA CIÊNCIA
MODERNA LTDA.
De acordo com a Lei 9.610, de 19/2/1998, nenhuma parte deste livro poderá ser
reproduzida, transmitida e gravada, por qualquer meio eletrônico, mecânico, por
fotocópia e outros, sem a prévia autorização, por escrito, da Editora.
Editor: Paulo André P. Marques
Produção Editorial: Aline Vieira Marques
Assistente Editorial: Amanda Lima da Costa
Capa: Equipe Ciência Moderna
Diagramação: Tatiana Neves
Várias Marcas Registradas aparecem no decorrer deste livro. Mais do que
simplesmente listar esses nomes e informar quem possui seus direitos de
exploração, ou ainda imprimir os logotipos das mesmas, o editor declara estar
utilizando tais nomes apenas para fins editoriais, em benefício exclusivo do dono da
Marca Registrada, sem intenção de infringir as regras de sua utilização. Qualquer
semelhança em nomes próprios e acontecimentos será mera coincidência.
FICHA CATALOGRÁFICA
OGLIARI, Ricardo da Silva; BRITO, Robison Cris.
Android - Do Básico ao Avançado
Rio de Janeiro: Editora Ciência Moderna Ltda., 2014.
1. Informática; 2. Linguagem de programação.
I — Título
ISBN: 978-85-399-0516-4
ISBN: 978-85-399-0483-9
Editora Ciência Moderna Ltda.
R. Alice Figueiredo, 46 – Riachuelo
Rio de Janeiro, RJ – Brasil CEP: 20.950-150
Tel: (21) 2201-6662/ Fax: (21) 2201-6896
E-MAIL: [email protected]
WWW.LCM.COM.BR
CDD 001.642
CDD 005.133
01/14
Dedicatória
Dedicamos este livro a todos os nossos amigos programadores, em especial,
aos que se identificam com a plataforma Android, essa plataforma magnífica que nos
motivou registrar parte do nosso conhecimento neste material.
Agradecimentos
Queremos aproveitar este espaço para agradecer a um grande conjunto de
pessoas que nos auxiliaram na escrita deste livro.
Iniciamos com um agradecimento muito especial às nossas respectivas
companheiras, Scheila e Jaqueliny, que sempre estiveram ao nosso lado, apoiando e
orientando, e que muitas vezes abriram mão das nossas companhias para as nossas
infindáveis horas ausentes para ministrar palestras, cursos, escrever artigos, e tutoriais.
Não poderíamos esquecer de agradecer às nossas famílias, ao seu Paulo e Dona
Marilde, ao seu Antônio e Dona Marly, por terem esforçado-se tanto para nos dar uma
educação de qualidade. Muitas vezes, abrindo mão de seu conforto para nos fornecer
recursos na batalha pela vida, tudo isso pelo amor que tinham por seus filhos.
Gostaríamos de dizer que sempre seremos gratos, aos nossos heróis que amamos muito.
Agradecemos também à Universidade Tecnológica Federal do Paraná –
Campus Pato Branco – pelas oportunidades ofertadas, à empresa GlobalCode, à
Universidade de Passo Fundo – Campus Passo Fundo. Além de agradecer a todos os
organizadores de evento que nos convidaram para palestras, ministrar minicursos e
afins, assim como as editoras e revistas que abriram as portas para divulgarmos nossos
materiais à comunidade.
Por fim, agradecemos aos amigos Eduardo Malherbi Martins e Geison Adriano
Biazus, acadêmicos do II Curso de Especialização em Tecnologia Java da UTFPR –
Campus Pato Branco, por suas contribuições nos capítulos 15 e 16 deste livro.
Sobre os autores
Ricardo da Silva Ogliari é especialista em Web: Sistemas de Inovação e
Tecnologia pelo Senac São Paulo. Bacharel em Ciência da Computação pela
Universidade de Passo Fundo. Ministra treinamentos na Globalcode, além de
ser sócio da StillRocker Digit´all. Escreveu artigos para diversas revistas e atualmente escreve regularmente para a Mobile Magazine e Espírito Livre.
Palestrante em diversos eventos nacionais e internacionais, tais como, FISL,
TDC, WebDays, Just Java, WebMobile Tech Weeks e Campus Party. Ao todo,
é autor de mais de 200 publicações. Criador e mantenedor do Mobilidade é
Tudo. Participante do Things Hacker Team.
Robison Cris Brito é mestre em Engenharia Elétrica e Informática Industrial
pela Universidade Tecnológica Federal do Paraná, onde ministra aulas sobre
tecnologia Java e Computação Móvel nos cursos de tecnologia em Análise e
Desenvolvimento de Sistemas e Engenharia da Computação. Escreve artigos
para a revista Mobile Magazine do grupo Devmedia. Foi palestrante de eventos, tais como, JavaOne, M3DDLA, FISL, WebMobile Tech Week, Webdays,
TDC e JustJava. Evangelista da tecnologia, procura ministrar palestras e
minicursos em universidades e eventos.
Prefácio
O desenvolvimento de aplicativos para dispositivos móveis, além de fascinante,
é uma excelente oportunidade de negócio. Hoje, muitas empresas de desenvolvimento
de software possuem setores especializados nessa plataforma, desenvolvendo aplicações
específicas que trabalham sozinhas ou integradas com os sistemas já existentes, tais
como, aplicativos da Web e desktop, agregando valores e facilitando o compartilhamento
de informações.
Ao longo de vários anos, algumas linguagens para plataforma móvel surgiram
e desapareceram. Todas foram linguagens que se destacaram em seus segmentos e
perduraram por muitos anos, mas acabaram sendo substituídas, na grande maioria das
vezes, pela descontinuidade dos aparelhos que as suportavam.
Entretanto, com o Android é diferente. Muito mais do que uma linguagem, ele
é uma plataforma de desenvolvimento, formado inclusive por um sistema operacional.
O que chama a atenção é o grande impacto e a adoção dessa plataforma nos smartphones
e nos tablets hoje. Em 2009, por exemplo, menos de 1% dos smartphones possuía
suporte ao Android; hoje, em 2013, esse número ultrapassa 60%.
Outra grande vantagem é o fato de inúmeros fabricantes apostarem nessa
tecnologia, o que provavelmente aumentará a vida da plataforma, pois, ao contrário
das tecnologias que surgiram e desapareceram por não possuírem mais dispositivos
que a suportassem, o Android possui suporte nos mais diversos fabricantes, como, por
exemplo, Motorola, Samsung, LG, entre muitos outros. Com certeza, os fabricantes
que ainda não a suportam, um dia a suportarão.
Neste contexto, o presente livro apresenta a plataforma Android, fugindo um
pouco do tradicional passo a passo básico, sendo mais focado no how-to-do (como
fazer), podendo, desta forma, ser aproveitado por usuários leigos na tecnologia, uma
vez que os capítulos iniciais são básicos, e também por usuários avançados, já que os
capítulos finais apresentam estudos de casos bastante avançados.
X
Android - Do Básico ao Avançado
Assim, dividimos a presente obra em capítulos, sendo os dois primeiros
destinados à preparação do ambiente de desenvolvimento e à programação de um
aplicativo básico, sendo útil aos leitores que não conhecem a plataforma e precisam de
orientação sobre como começar. Para todos os estudos de caso, foi optada a utilização
da IDE Eclipse, esta a mais popular entre os programadores Android, destacando-se
por ser livre e multiplataforma.
O terceiro, quarto e quinto capítulos do livro apresentam os componentes visuais
básicos da plataforma Android, permitindo o desenvolvimento de aplicações ricas
visualmente, além de apresentar modelos de interação entre a aplicação e o usuário,
utilizando eventos.
O sexto e o sétimo capítulos apresentam formas de persistência de dados,
permitindo o armazenamento de dados em aplicações Android utilizando o tradicional
SQLite e também técnicas alternativas, tais como, a utilização de arquivos de preferência
e o cartão de memória.
O capítulo oito apresenta a nova forma de utilizar mapas em aplicações Android,
esta já utilizando a Google Maps for Android 2.0, lançada em março de 2013.
Os dois capítulos seguintes apresentam a utilização de dados multimídias na
plataforma, sendo através de imagens ou sons.
Por fim, os seis últimos capítulos apresentam aplicabilidades distintas e
avançadas da plataforma Android, como, por exemplo, a criação de widgets, utilização
de notificação, acesso a dados de servidores RSS utilizando o protocolo http, utilização
de sensores, recepção de mensagens SMS e, por fim, um capítulo dedicado à utilização
da realidade aumentada nas aplicações Android.
Utilizando esta estrutura, o presente livro torna-se um material de referência
extremamente útil aos programadores iniciantes e avançados, sejam acadêmicos,
professores, profissionais da área, sejam amantes da tecnologia, que desejam explorar
novos horizontes, fugindo do tradicional desenvolvimento para desktop e Web.
Uma boa leitura a todos.
Sumário
XI
Sumário
Capítulo 1
Introdução ao desenvolvimento de Aplicações Android para dispositivos móveis .... 1
Um pouco da história ............................................................................................................. 2
Infraestrutura do Software .................................................................................................... 3
Ambiente de Desenvolvimento ............................................................................................. 4
Instalando o Android SDK e o ADT Bundle ......................................................................... 6
Atualizando o Android SDK ................................................................................................... 7
Criando um AVD – Android Virtual Device ....................................................................... 10
Instalando e Preparando a IDE Eclipse ............................................................................ 13
Outras Opções de IDEs de Desenvolvimento para Android ........................................... 17
Concluindo... .......................................................................................................................... 18
Capítulo 2
Desenvolvimento do aplicativo HelloWorld para a plataforma Android ............... 19
Criando a primeira aplicação Android .............................................................................. 20
Concluindo... .......................................................................................................................... 35
Capítulo 3
Componentes Visuais Básicos da Plataforma Android ...................................... 37
Desenvolvimento de Interfaces Visuais ........................................................................... 37
Gerenciadores de Layout .................................................................................................... 39
LinearLayout ................................................................................................................... 39
AbsoluteLayout .............................................................................................................. 42
TableLayout .................................................................................................................... 44
Outros Gerenciadores de Layout ....................................................................................... 46
XII
Android - Do Básico ao Avançado
Utilizando Vários Gerenciadores de Layout em uma Única Tela .................................. 46
Componentes Visuais .......................................................................................................... 48
Componente TextView .................................................................................................. 52
Componente Button ...................................................................................................... 52
Componente ImageButton ........................................................................................... 52
Componente EditText .................................................................................................... 53
Componente CheckBox ................................................................................................ 54
Componentes RadioGroup e RadioButton ................................................................ 54
Componente ToogleButton .......................................................................................... 55
Concluindo ............................................................................................................................. 55
Capítulo 4
Tratando eventos de componentes visuais na plataforma Android ..................... 57
Criando a Interface Gráfica do Estudo de Caso .............................................................. 58
Eventos de Clique e Mudança de Tela .............................................................................. 61
Evento de Clique Longo ....................................................................................................... 66
Adicionando o Menu de Contexto ...................................................................................... 69
Evento de Toque .................................................................................................................... 74
Mudança de Foco nos Componentes ............................................................................... 75
Eventos de Tecla ................................................................................................................... 77
Evento de Item Selecionado ............................................................................................... 78
Concluindo... .......................................................................................................................... 85
Capítulo 5
Componentes visuais avançados no Android ................................................... 87
Componente AutoCompleteTextView ............................................................................... 88
Componente ProgressBar ................................................................................................... 90
Componente Spinner ........................................................................................................... 96
Componente PickerViews ................................................................................................... 99
Componente ListViews ...................................................................................................... 107
Concluindo... ........................................................................................................................ 110
Sumário
XIII
Capítulo 6
Desenvolvendo um programa de cadastro usando SQLite e Adapters .............. 111
O projeto .............................................................................................................................. 112
Construindo a aplicação sem o banco de dados .......................................................... 113
Classe utilitária Artigo ................................................................................................ 114
Layouts das telas ......................................................................................................... 114
Activities ........................................................................................................................ 118
O banco de dados .............................................................................................................. 119
Criando o Adapter para ListActivity ................................................................................. 124
Integrando o Adapter e o Banco de Dados .................................................................... 130
Transações em SQLite ....................................................................................................... 138
Concluindo... ........................................................................................................................ 139
Capítulo 7
Persistência de dados com Android: Muito além do SQLite............................. 141
Utilizando Shared Preferences ........................................................................................ 143
Utilizando PreferenceActivity ........................................................................................... 149
Utilizando o Armazenamento Interno (Internal Storage) ............................................ 158
Armazenando Dados Temporários em Aplicações Android ....................................... 162
Utilizando o Armazenamento Externo (External Storage) ........................................... 163
Concluindo... ........................................................................................................................ 167
Capítulo 8
Trabalhando com o Google Maps for Android 2.0 e Location API ..................... 169
Preparando o Ambiente para a Google Maps Android API v2 ................................... 171
Criando o Projeto e Importando a Biblioteca ................................................................ 172
Gerando a API Key ............................................................................................................. 174
Adicionando a Chave à Aplicação e Mostrando o Mapa ............................................. 177
Tornando o Mapa Profissional e Adicionando Pontos de Interesse .......................... 180
POIs ................................................................................................................................ 180
Seguindo o Usuário ............................................................................................................ 185
XIV
Android - Do Básico ao Avançado
Concluindo... ........................................................................................................................ 192
Capítulo 9
Tirando o máximo de vantagem das classes para o uso de imagens no Android 193
Usando os Componentes Gallery e ImageView ............................................................ 194
Apresentando uma Imagem Selecionada no Centro da Tela ..................................... 202
Utilizando o Componente ImageSwitcher ..................................................................... 204
Utilizando GridView para a Apresentação de Imagens ............................................... 209
Concluindo... ........................................................................................................................ 213
Capítulo 10
Utilizando sons e fotos em aplicações Android .............................................. 215
Estudos de Caso ................................................................................................................. 216
Primeiro Aplicativo - Rádio ............................................................................................... 216
Player de Mídia como Serviço .......................................................................................... 224
Segundo Aplicativo – Álbum de Fotos ............................................................................ 229
Concluindo... ........................................................................................................................ 240
Capítulo11
Criando widgets na plataforma Android ........................................................ 241
Aplicativo ............................................................................................................................. 243
Começando a Construção ................................................................................................ 244
1º Passo: Criar AppWidgetProviderInfo ................................................................... 245
2º Passo: Criar o Arquivo de Layout ......................................................................... 246
3º Passo: Criar o Activity de Configuração .............................................................. 249
4º Passo: Criar a Classe AppWidgetProvider .......................................................... 257
5º Passo: Criar AlarmManager para Atualizar o Widget ....................................... 259
Concluindo... ........................................................................................................................ 266
Capítulo 12
Utilização de sensores na plataforma Android ............................................... 267
Aplicativo ............................................................................................................................. 270
Pacote Hardware ................................................................................................................ 272
Primeiro Passo: Sensor Manager ............................................................................. 273
Sumário
XV
Segundo Passo: Conhecendo os sensores .............................................................. 274
Terceiro Passo: Trabalhando com sensores ............................................................ 275
Trabalhando com o Sensor de Luz .................................................................................. 278
Trabalhando com o Sensor de Proximidade ................................................................. 279
Trabalhando com o Text to Speech ................................................................................. 280
Concluindo... ........................................................................................................................ 281
Capítulo 13
Trabalhando com notificações no Android ..................................................... 283
Projeto .................................................................................................................................. 285
Interface Gráfica ................................................................................................................ 287
Activity .................................................................................................................................. 294
Notificação .......................................................................................................................... 299
Finalizando o Aplicativo .................................................................................................... 309
Concluindo... ........................................................................................................................ 310
Capítulo 14
Utilizando a conectividade Android para criar um leitor de RSS ...................... 311
Projeto .................................................................................................................................. 313
Download da Imagem ....................................................................................................... 316
Um Pouco Sobre findViewById ......................................................................................... 321
Download e Parser dos Feeds ......................................................................................... 322
Visualização de Post .......................................................................................................... 327
Concluindo... ........................................................................................................................ 329
Capítulo 15
Utilizando recursos nativos de SMS em aplicações Android............................ 331
Recebendo Mensagens SMS na Plataforma Android .................................................. 332
Apresentação do Sistema Proposto ............................................................................... 332
Criação do Projeto .............................................................................................................. 333
Estrutura do Projeto ........................................................................................................... 334
Criação de Pacotes ............................................................................................................ 336
Criação de Classes ............................................................................................................. 336
XVI
Android - Do Básico ao Avançado
Criação de Activities .......................................................................................................... 338
Entendendo o Android Manifest ...................................................................................... 340
Criação de Layout .............................................................................................................. 341
Codificação dosActivities .................................................................................................. 348
Criação das Controladoras ......................................................................................... 353
Criação dos Modelos (Objetos) .................................................................................. 354
Criação de Adaptadores ............................................................................................. 356
Criação da Classe SQL – Pacote Util ........................................................................ 359
Criação dos Serviços ................................................................................................... 360
SMS Receiving ............................................................................................................. 365
Simulação da APP Desenvolvida .............................................................................. 368
Concluindo... ........................................................................................................................ 371
Capítulo 16
Utilizando recursos de realidade aumentada em aplicações Android .............. 373
O Que é Realidade Aumentada e Qual a sua Origem? ............................................... 374
Realidade Aumentada e Dispositivos Móveis ............................................................... 376
Realidade Aumentada no Android .................................................................................. 378
Estudo de Caso Desenvolvido .......................................................................................... 379
Instalando o Android SDK e o Android NDK .................................................................. 380
Instalação e Configuração do Vuforia SDK .................................................................... 383
Funcionamento do Vuforia SDK ....................................................................................... 385
Como Gerar um Dataset ................................................................................................... 390
Renderização dos Objetos Virtuais ................................................................................. 392
Reprodução de Vídeos do YouTube ................................................................................. 394
Aplicativo Desenvolvido .................................................................................................... 395
Concluindo... ........................................................................................................................ 397
Capítulo 1
Introdução ao desenvolvimento de
Aplicações Android para dispositivos móveis
Aprenda a montar um ambiente de desenvolvimento livre para Android usando as
IDEs de desenvolvimento mais utilizadas no mercado.
O Android é uma plataforma para desenvolvimento e execução de programas
para dispositivos móveis, robusta e de fácil utilização/aprendizagem. Foi construída
inicialmente por uma pequena empresa de Palo Alto (Califórnia - EUA), chamada
Android Inc. A mesma foi adquirida pela Google em 2005. A plataforma, que hoje é
desenvolvida por um consórcio de empresas chamado Open Handset Alliance, é vista
como uma ótima alternativa para o desenvolvimento de aplicações.
Aos programadores que conhecem outras linguagens de programação, tais como,
Java ME, Windows Mobile, Windows Phone, iOS, entre outras, aprender a programar
com o Android é uma tarefa simples, uma vez que essa tecnologia utiliza a linguagem
de programação Java, com algumas semelhanças com o Java ME, e para o
desenvolvimento da interface visual, podem-se utilizar arquivos XML, o que simplifica
consideravelmente o processo de desenvolvimento.
A grande aposta do Android são os novos aparelhos celulares, mais conhecidos
como smartphones, que podem ser resumidos a celulares com grande poder de
processamento e que integram vários recursos, como alta conectividade com a Internet,
GPS, sensores, telas sensíveis a toque e muito mais.
Para otimizar a execução de aplicações mobile desenvolvidas em Android,
este utiliza uma máquina virtual chamada Dalvik, que foi projetada para otimizar a
memória e os recursos de hardware em um ambiente que pode ser bastante limitado.
Por este motivo, os programas desenvolvidos com a plataforma Android possuem a
extensão .dex, que significa Dalvik Executable, fazendo uma referência à máquina
virtual Dalvik.
2
Android - Do Básico ao Avançado
Um pouco da história
O Android é um projeto de código aberto e por este motivo, surgem novas
versões em um ritmo acelerado. Embora muitos achem que o Android foi desenvolvido
exclusivamente pela Google, na verdade, o mesmo foi desenvolvido pela Android
Inc., adquirida em 2005. Hoje, é de responsabilidade da Open Handset Alliance (OHA),
uma aliança fundada em 2007, onde, além da Google, outras empresas do setor, como
Intel, Acer, Motorola, Asus, DoCoMo, HTC, Huawei, Sprint, Kyocera, T-Mobile, LG,
Samsung, Vodafone, SonyEricsson, Qualcomm e NVidia se uniram para fomentar o
crescimento da plataforma Android.
Na sequência, foi lançado o primeiro dispositivo móvel Android Enabled, o
HTC T-Mobile, lançado em 2008 - Figura 1, sendo, em seguida, lançados inúmeros
outros aparelhos com suporte a esta nova plataforma, tais como, sistemas de
navegação veicular, um Netbook e até mesmo automóveis com painéis eletrônicos
inteligentes.
Figura 1. HTC T-Mobile, primeiro aparelho com Android.
Uma das características mais importantes do Android é a prioridade igualitária
para aplicativos nativos e de terceiros. As aplicações desenvolvidas por terceiros
dispõem de toda a infraestrutura de hardware e software, assim como os aplicativos
nativos, como, por exemplo, acesso ao Google Maps, Calendário, Agenda, entre outros.
Talvez seja umas das plataformas com a ligação mais forte entre a plataforma de
desenvolvimento e o sistema operacional.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
3
Para completar a lista de vantagens, destaca-se seu design sofisticado e o fato
de ter o nome associado ao Google, completando a força que a plataforma precisa para
impulsionar seu avanço no mercado.
Infraestrutura do Software
No que diz respeito à infraestrutura de software, o Android consiste de uma
pilha que engloba um sistema operacional baseado em Linux, conjunto de bibliotecas,
API chamada Android Runtime, aplicações preexistentes no Android e aplicações
diversas, conforme apresentado na Figura 2.
Figura 2. Arquitetura em camadas dos softwares no Android.
O sistema operacional Android conta com um kernel Linux, versão 2.6 e versão
3.0 (Android API Level 11 e posteriores), sendo este responsável pelas tarefas de
gerenciamento de memória, acesso à rede, gerenciamento de processos etc. É
responsabilidade do sistema operacional fazer a comunicação entre o software
desenvolvido e o hardware do dispositivo.
As bibliotecas, ou libraries, consistem em um conjunto de bibliotecas C/C++
usadas por diversos componentes do Android e possuem funções específicas. Para o
4
Android - Do Básico ao Avançado
desenvolvedor, o acesso a esta acontece por meio do Android Application Framework.
Entre as bibliotecas, destacam-se:
- SQLite: implementação de um banco de dados relacional disponível para
todos os aplicativos.
- 3D Libraries: biblioteca baseada no OpenGL ES 1.0 APIs. Ela usa a
aceleração 3D em hardware (se estiver presente) para o processamento de
imagens gráficas.
- Media Libraries: baseada no PacketVideo’s OpenCORE, suporta a gravação
e o playback de vários formatos de mídia. Também trabalha com imagens
estáticas.
- LibWebCore: um motor de browser da Web usado nos browsers do sistema.
- Surface Manager: gerencia o acesso ao subsistema de display.
- FreeType: renderização de fontes bitmap e vetorial.
O Android Runtime, resumidamente, compreende as bibliotecas básicas do
Android (core libraries) que são utilizadas pelas bibliotecas mencionadas anteriormente.
Já as Application Frameworks são bibliotecas de mais alto nível, responsáveis
por funções específicas no aparelho, como, por exemplo, o gerenciamento de janelas,
recursos dos dispositivos móveis, notificações etc. Essas são as bibliotecas
costumeiramente acessadas pelos desenvolvedores Android para interagir com o
dispositivo móvel.
Por fim, os aplicativos são ferramentas comuns a todos os usuários de celulares
e smartphones. Uma característica do Android, como já foi informado, é que estes
aplicativos nativos não possuem prioridade sobre outros instalados por terceiros, como
acontecia com o Java Micro Edition. Inclusive, qualquer programa instalado no aparelho
pode compartilhar informações ou módulos para outros programas utilizarem. Além
disso, um aplicativo de terceiros pode executar aplicativos nativos.
Ambiente de Desenvolvimento
Para o desenvolvimento Android, duas IDEs se destacam: Eclipse e
Netbeans, com predominância da primeira. Porém, recentemente o Google anunciou
o IntelliJ IDEA como base para o Android Studio, uma nova IDE para os
desenvolvedores dessa plataforma.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
5
A IDE Netbeans se destaca pela facilidade de uso e também por ser pioneira na
implementação de ambientes visuais de desenvolvimento mobile, lembrando que já na
versão 4.1, a IDE integrou o plugin Mobility Pack, o qual permitia desenvolver
aplicações visuais (clicando e arrastando componentes) para a linguagem Java ME.
Já a grande vantagem do Eclipse é a facilidade de gerenciamento de plugins, o
que torna seu ambiente configurável para um número muito grande de funcionalidades,
além de possuir um excelente editor de código. Soma-se a isso o fato do próprio Google
e do principal site de desenvolvedores Android (developer.android.com) apoiarem o
uso dessa IDE.
Em um primeiro momento, independentemente da IDE de desenvolvimento
escolhida, é necessário montar um ambiente padrão, este formado pelo JDK (Java
Developtment Kit), o kit de desenvolvimento Java padrão, e pelo Android SDK, o kit
de desenvolvimento Android padrão. Após instalar o JDK e o Android SDK, é necessário
atualizar as plataformas de desenvolvimento no Android SDK. Somente após estes
passos o ambiente está pronto para receber a IDE Netbeans ou Eclipse.
Para instalar o Java SDK, deve-se acessar a url http://www.oracle.com/
technetwork/java/javase/downloads/index.html, clicando no link referente ao Kit
de Desenvolvimento Java Padrão (JDK), conforme a Figura 3. Após o download
do arquivo, é só proceder com a instalação padrão, de acordo com o sistema
operacional utilizado.
Figura 3. Página para download do Java SDK.
6
Android - Do Básico ao Avançado
Dica: Ambiente de Desenvolvimento Android e Sistemas
Operacionais
O ambiente de desenvolvimento Android é multiplataforma, ou seja,
além de gratuito (o que é um ótimo diferencial para programadores e
empresas que estão iniciando na plataforma), é possível baixar o ambiente
para diferentes sistemas operacionais, tais como, Windows, Linux ou
MacOS, sendo que o processo de desenvolvimento é praticamente o
mesmo, independentemente do sistema operacional.
Instalando o Android SDK e o ADT Bundle
Até algum tempo atrás, o processo de configuração do ambiente de
desenvolvimento Android era um processo um pouco penoso e suscetível a falhas.
Porém, este problema foi resolvido com o ADT Bundle.
Este pacote já traz uma estrutura de pastas pronta para uso, incluindo o Android
SDK e o Eclipse. Até o momento da escrita deste livro, ainda não existia a versão
desse bundle com a nova IDE, a Android Studio. Para baixar a ferramenta, basta entrar
neste link: http://developer.android.com/tools/index.html. Você verá uma interface como
a mostrada na Figura 4.
Figura 4. Página para download do ADT Bundle.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
7
Ao clicar no botão de download, será baixado para sua máquina um arquivo
.zip. Basta descompactá-lo na pasta que desejar. Dentro do pacote, será possível
encontrar duas pastas (eclipse e sdk) e um arquivo (SDKManager). De uma forma
muito mais rápida e simples, você já terá o ambiente de desenvolvimento Android
instalado e configurado.
Atualizando o Android SDK
Após a instalação, deve-se executar o SDKManager.exe, que abrirá o aplicativo
Gerenciador do Android SDK, conforme a Figura 5.
Figura 5. Tela do Android SDK Manager.
No Android SDK Manager, devem-se escolher os pacotes necessários para o
desenvolvimento. O pacote tools traz as ferramentas para fazer testes com o emulador
de dispositivo Android e os outros pacotes trazem as versões do Android. Para instalar
o Android 2.1, também chamado de API 7, este deve ser marcado na Figura 5, clicando,
na sequência, no botão Install.
8
Android - Do Básico ao Avançado
Devido ao tamanho de cada plataforma, que pode ultrapassar tranquilamente
100 MB, não é aconselhável a instalação de todas as plataformas disponíveis, a não
ser, claro, que o programador precise testar sua aplicação em todas as plataformas
Android existentes no mercado. Hoje, bastaria ter as versões 2.3 (com maior market
share) e a 4.2 (por ser a última).
Dica: Versões das plataformas Android
O Android, ao contrário de outros ambientes de desenvolvimento móvel,
como o Java ME, possui constantes atualizações, sendo lançados novas
versões com poucos meses de intervalo. Para uma melhor organização
das versões do Android, as mesmas costumam ser chamadas de API ou
plataforma. A primeira versão do Android foi chamada de Plataforma 1
ou API 1 e assim, as versões foram evoluindo e sua numeração seguiu
uma numeração sequencial e crescente. Entretanto, para o usuário, é
mais comum conhecer a versão do Android pela sua numeração. A
primeira versão do Android (a API 1) foi 1.0, a segunda versão do Android
(API 2) foi a versão 1.1 e assim seguiu conforme a figura abaixo.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
9
Após a instalação do Android SDK e da atualização das suas plataformas/
ferramentas, o diretório onde este foi instalado fica como o apresentado na Figura 6.
Na figura, o ambiente ainda está do modo como foi descompactado, sendo assim,
perceba que temos somente diretórios com a nomenclatura contendo API Level 17 ou
Android 4.2.2.
Figura 6. Estrutura de pastas após a instalação do Android SDK.
O diretório plataforms possui todas as plataformas baixadas no Android SDK
Manager, nomeadas pelo número de sua API/Plataforma. Já a pasta tools, possui alguns
dos principais executáveis utilizados pela plataforma Android. A pasta Sample pode
10
Android - Do Básico ao Avançado
ser utilizada pelos programadores mais experientes, já que traz uma série de exemplos
envolvendo inúmeros recursos, tais como, componentes visuais, comunicação bluetooth,
entre outros.
Criando um AVD – Android Virtual Device
Android Virtual Device (AVD) é um emulador para um aparelho Android.
Através dele, é possível simular um dispositivo Android real, definindo opções de
hardware e software. A Figura 7 apresenta um AVD do Android em execução.
Figura 7. AVD do Android em execução.
Ao criar um AVD, devem-se definir os recursos de hardware do dispositivo
virtual, o qual simulará o dispositivo real, definindo, por exemplo, o tipo de teclado,
memória do dispositivo, configurar a plataforma/versão do Android, especificar para
o emulador as dimensões da tela, aparência, tamanho do cartão SD, entre outros.
Podem-se também criar vários AVDs para testar em diferentes plataformas o
dispositivo desenvolvido.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
11
A criação do AVD é possível escolhendo o executável AVDManager.exe presente
na pasta onde foi instalado o Android SDK ou como um dos ícones na barra superior
da IDE Eclipse. A tela Android Virtual Device Manager (Figura 8) é aberta e através
dela, podem-se criar emuladores.
Figura 8. Tela do Android Virtual Device Manager.
Na tela apresentada, para criar um AVD, clica-se no botão New, onde é
apresentada uma tela para informar as características do Android Virtual Device. A
Figura 9 apresenta os dados do AVD utilizado para testar o aplicativo.
12
Android - Do Básico ao Avançado
Figura 9. Tela para a criação de um AVD.
Nesta tela, destacam-se os seguintes campos:
- AVD Name: nome do AVD, podendo ser referenciado posteriormente na
execução da aplicação Android.
- Device: informações de alguns devices pré-configurados, existentes no
mercado ou genéricos, contendo especificação de tela e resolução do
dispositivo que será emulado. Por exemplo: Nexus 4 (4,7", 768 x 1280: xhdpi).
- Target: versão do Android para a emulação no AVD.
- CPU/ABI: a escolha de qual CPU será emulada. Hoje, sabemos que não
existem somente chips ARM no mercado, apesar de sua dominância ainda
ativa (isso no momento da escrita deste livro, em 2013).
- Keyboard: informa se existirá um teclado físico no dispositivo Android.
Muitas vezes, o teclado do computador simulará o teclado físico do
dispositivo.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
13
- Skin: informa se as teclas de hardware (Voltar, Home e Menu) serão
apresentadas no emulador.
- Front Camera e Back Camera: permite simular os recursos de câmeras
frontais e atrás do aparelho.
- Memory Option: informa os valores referentes às memórias RAM e Head
do emulador.
- Internal Storage: simula o tamanho de armazenamento interno do
dispositivo emulado
- SD Card: informação sobre um suposto cartão de memória que esteja
conectado ao emulador.
Após criado o emulador, o mesmo pode ser iniciado selecionando-o na tela da
Figura 8 e clicando no botão Start, sendo apresentada uma tela do sistema operacional
Android bloqueada, como se você tivesse iniciado um dispositivo Android.
Assim, você tem acesso a todas as aplicações do sistema operacional, bem como
às aplicações instaladas ou executadas no AVD.
Na tela principal, o usuário também tem acesso a alguns aplicativos, tais como,
discador, agenda de contatos, browser, aplicativo de mensagens, entre outros.
Após os passos apresentados anteriormente, o ambiente de desenvolvimento
está pronto, com um AVD criado e pronto para executar. O próximo passo é preparar
o ambiente para receber a IDE de desenvolvimento, procedimento este apresentado
na sequência.
Instalando e Preparando a IDE Eclipse
Como vimos anteriormente, o Android disponibiliza o ADT Bundle, que já
contém toda a estrutura de diretório e arquivos para o Android SDK e Eclipse. Porém,
o desenvolvedor pode desejar não usar este pacote, baixar e usar o Eclipse em separado.
Sendo assim, veja como funciona.
Para baixar a IDE de desenvolvimento Eclipse, deve-se acessar a página do
projeto em http://www.eclipse.org. Como existem várias versões da IDE Eclipse, devese baixar alguma que seja compatível com o desenvolvimento Java. Aconselha-se a
versão Classic ou for Java Developers, conforme apresentado na Figura 10.
14
Android - Do Básico ao Avançado
Figura 10. Versões da IDE Eclipse.
A IDE do Eclipse possui como característica não possuir um arquivo de
instalação, bastando muitas vezes apenas descompactar o arquivo baixado. Desta forma,
a IDE está pronta para ser executada.
Na primeira execução da IDE Eclipse, é solicitado o caminho para o diretório
workspace, sendo este o local onde os projetos são salvos. Após a execução, a IDE é
apresentada conforme a Figura 11.
Figura 11. Janela principal da IDE Eclipse.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
15
O Eclipse não possui suporte nativo ao desenvolvimento para Android, desta
forma, torna-se necessário o uso de um plugin, este chamado ADT (Android
Development Tools). Ele é um plugin para a IDE Eclipse que permite o desenvolvimento
de aplicações para a plataforma Android. Projetado para ser um ambiente poderoso e
integrado, permite o desenvolvimento, execução e depuração de aplicativos Android.
Através dele, é possível criar novos projetos Android, adicionar pacotes com base na
API, criar interfaces para usuário, depurar aplicativos e exportar sua aplicação para
utilizá-la em seu smartphone ou tablet.
O próprio portal oficial do Android (http://developer.android.com/) aconselha
desenvolver aplicações Android no Eclipse com o ADT. O plugin permite a configuração
do projeto guiada via wizard, ferramentas de integração, editores XML personalizados
e painel de saída da depuração.
Para a instalação do plugin, com o Eclipse aberto, acesse o menu Help - Install
New Software, conforme a Figura 12.
Figura 12. Instalação do plugin ADT no Eclipse.
A janela de instalação será aberta. Nela, deve-se adicionar o caminho para
download do ADT Eclipse (https://dl-ssl.google.com/android/eclipse/), conforme ilustra
a Figura 13.
16
Android - Do Básico ao Avançado
Figura 13. Download do plugin ADT para o Eclipse.
Na sequência, devem-se confirmar as telas que aparecerão, seguindo o processo
de instalação. Ao final, a IDE é reiniciada, sendo apresentada para o usuário uma tela
para a configuração do Android SDK. Nessa tela, deve-se informar a pasta onde o
Android foi instalado, confirmando para finalizar a configuração do plugin.
Outra maneira também possível de informar o caminho do Android SDK é
através do menu Window – Preferences e na categoria Android, informar o caminho
em Android Location. Após o Apply, as plataformas do Android, disponíveis para os
usuários, são apresentadas na tela, conforme a Figura 14.
Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...
17
Figura 14. Configuração do caminho do Android SDK no ADT.
Desta forma, a IDE Eclipse já está pronta para o desenvolvimento de aplicações
Android.
Outras Opções de IDEs de Desenvolvimento para
Android
Como os ambientes de desenvolvimento Android são, na verdade, ambientes
de desenvolvimento Java personalizados para o trabalho na plataforma Android, existem
várias opções que podem ser utilizadas, além do tradicional Eclipse.
Uma opção muito forte é o Netbeans, com o plugin nbandroid. O Netbeans
tem uma tradição no desenvolvimento para dispositivos móveis, sendo pioneiro
no desenvolvimento visual para dispositivos móveis com o plugin Mobility Pack
para Java ME.
Muitos dos outros ambientes são variações do Eclipse com o plugin ADT, porém,
possuindo novos recursos e implementações.
18
Android - Do Básico ao Avançado
O primeiro que recebe é o ADT Bundle (http://developer.android.com/sdk),
sendo este um ambiente baseado exclusivamente no Eclipse e no plugin ADT, sendo
que esse ambiente não necessita de instalação de plugin e configurações, basta baixar,
instalar e pronto. Após, é só desenvolver os projetos Android.
Outra opção existente é a IDE Motodev Studio (http://developer.motorola.com),
sendo este um ambiente personalizado pela Motorola para o desenvolvimento Android,
possuindo alguns recursos adicionais não presentes no tradicional Eclipse + ADT.
Para o download gratuito, é necessário fazer um cadastro no portal.
Outra opção muito forte no desenvolvimento Android é o IntelliJ IDEA (http:/
/www.jetbrains.com/idea/). Este ambiente possui uma versão Community gratuita, assim
como uma versão paga. Como principal característica, está o ambiente visual de
desenvolvimento (clicar e arrastar), assim como um ambiente de debug simples, que
apresenta mensagens intuitivas com os tipos e locais de erro.
Concluindo...
Como apresentado neste capítulo, é possível preparar ambientes completos para
o desenvolvimento Android sem gastar dinheiro. Com ferramentas gratuitas e
multiplataformas, é possível desenvolver desde aplicativos simples até sistemas
complexos, podendo estes fazer comunicação com a rede da operadora, utilizar o
bluetooth, sensores, arquivos, entre outros recursos.
Deste ponto em diante, todos os exemplos apresentados no livro serão
desenvolvidos utilizando a IDE de desenvolvimento Eclipse, do ADT Bundle. Porém,
esses exemplos podem ser desenvolvidos em outras IDEs, de acordo com as preferências
do leitor, já que a linguagem e a estrutura dos aplicativos são as mesmas,
independentemente da plataforma escolhida para o desenvolvimento.
Download

Ricardo da Silva Ogliari Robison Cris Brito