Ricardo da Silva Ogliari Robison Cris Brito · ... acadêmicos do II Curso de ... o presente livro...

31
Ricardo da Silva Ogliari Robison Cris Brito

Transcript of Ricardo da Silva Ogliari Robison Cris Brito · ... acadêmicos do II Curso de ... o presente livro...

Ricardo da Silva OgliariRobison 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 CDD 001.642 ISBN: 978-85-399-0483-9 CDD 005.133

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 01/14

Dedicamos este livro a todos os nossos amigos programadores, em especial,aos que se identificam com a plataforma Android, essa plataforma magnífica que nosmotivou registrar parte do nosso conhecimento neste material.

Dedicatória

Agradecimentos

Queremos aproveitar este espaço para agradecer a um grande conjunto depessoas que nos auxiliaram na escrita deste livro.

Iniciamos com um agradecimento muito especial às nossas respectivascompanheiras, Scheila e Jaqueliny, que sempre estiveram ao nosso lado, apoiando eorientando, e que muitas vezes abriram mão das nossas companhias para as nossasinfindá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 DonaMarilde, ao seu Antônio e Dona Marly, por terem esforçado-se tanto para nos dar umaeducação de qualidade. Muitas vezes, abrindo mão de seu conforto para nos fornecerrecursos 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 osorganizadores de evento que nos convidaram para palestras, ministrar minicursos eafins, assim como as editoras e revistas que abriram as portas para divulgarmos nossosmateriais à comunidade.

Por fim, agradecemos aos amigos Eduardo Malherbi Martins e Geison AdrianoBiazus, 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 eTecnologia pelo Senac São Paulo. Bacharel em Ciência da Computação pelaUniversidade de Passo Fundo. Ministra treinamentos na Globalcode, além deser sócio da StillRocker Digit´all. Escreveu artigos para diversas revistas e atu-almente 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 Industrialpela Universidade Tecnológica Federal do Paraná, onde ministra aulas sobretecnologia Java e Computação Móvel nos cursos de tecnologia em Análise eDesenvolvimento de Sistemas e Engenharia da Computação. Escreve artigospara a revista Mobile Magazine do grupo Devmedia. Foi palestrante de even-tos, tais como, JavaOne, M3DDLA, FISL, WebMobile Tech Week, Webdays,TDC e JustJava. Evangelista da tecnologia, procura ministrar palestras eminicursos 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 desenvolvimentode software possuem setores especializados nessa plataforma, desenvolvendo aplicaçõesespecíficas que trabalham sozinhas ou integradas com os sistemas já existentes, taiscomo, aplicativos da Web e desktop, agregando valores e facilitando o compartilhamentode informações.

Ao longo de vários anos, algumas linguagens para plataforma móvel surgirame desapareceram. Todas foram linguagens que se destacaram em seus segmentos eperduraram por muitos anos, mas acabaram sendo substituídas, na grande maioria dasvezes, 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 smartphonese nos tablets hoje. Em 2009, por exemplo, menos de 1% dos smartphones possuíasuporte ao Android; hoje, em 2013, esse número ultrapassa 60%.

Outra grande vantagem é o fato de inúmeros fabricantes apostarem nessatecnologia, o que provavelmente aumentará a vida da plataforma, pois, ao contráriodas tecnologias que surgiram e desapareceram por não possuírem mais dispositivosque a suportassem, o Android possui suporte nos mais diversos fabricantes, como, porexemplo, Motorola, Samsung, LG, entre muitos outros. Com certeza, os fabricantesque ainda não a suportam, um dia a suportarão.

Neste contexto, o presente livro apresenta a plataforma Android, fugindo umpouco do tradicional passo a passo básico, sendo mais focado no how-to-do (comofazer), podendo, desta forma, ser aproveitado por usuários leigos na tecnologia, umavez que os capítulos iniciais são básicos, e também por usuários avançados, já que oscapí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 primeirosdestinados à preparação do ambiente de desenvolvimento e à programação de umaplicativo básico, sendo útil aos leitores que não conhecem a plataforma e precisam deorientação sobre como começar. Para todos os estudos de caso, foi optada a utilizaçãoda IDE Eclipse, esta a mais popular entre os programadores Android, destacando-sepor ser livre e multiplataforma.

O terceiro, quarto e quinto capítulos do livro apresentam os componentes visuaisbásicos da plataforma Android, permitindo o desenvolvimento de aplicações ricasvisualmente, 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 tradicionalSQLite e também técnicas alternativas, tais como, a utilização de arquivos de preferênciae 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 naplataforma, sendo através de imagens ou sons.

Por fim, os seis últimos capítulos apresentam aplicabilidades distintas eavançadas da plataforma Android, como, por exemplo, a criação de widgets, utilizaçãode notificação, acesso a dados de servidores RSS utilizando o protocolo http, utilizaçãode sensores, recepção de mensagens SMS e, por fim, um capítulo dedicado à utilizaçãoda realidade aumentada nas aplicações Android.

Utilizando esta estrutura, o presente livro torna-se um material de referênciaextremamente útil aos programadores iniciantes e avançados, sejam acadêmicos,professores, profissionais da área, sejam amantes da tecnologia, que desejam explorarnovos horizontes, fugindo do tradicional desenvolvimento para desktop e Web.

Uma boa leitura a todos.

XISumário

Sumário

Capítulo 1Introduçã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 2Desenvolvimento do aplicativo HelloWorld para a plataforma Android ............... 19

Criando a primeira aplicação Android .............................................................................. 20

Concluindo... .......................................................................................................................... 35

Capítulo 3Componentes 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 4Tratando 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 5Componentes visuais avançados no Android ................................................... 87

Componente AutoCompleteTextView ............................................................................... 88

Componente ProgressBar ................................................................................................... 90

Componente Spinner ........................................................................................................... 96

Componente PickerViews ................................................................................................... 99

Componente ListViews ...................................................................................................... 107

Concluindo... ........................................................................................................................ 110

XIIISumário

Capítulo 6Desenvolvendo 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 7Persistê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 8Trabalhando 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 9Tirando 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 10Utilizando 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ítulo11Criando 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 12Utilização de sensores na plataforma Android ............................................... 267

Aplicativo ............................................................................................................................. 270

Pacote Hardware ................................................................................................................ 272

Primeiro Passo: Sensor Manager ............................................................................. 273

XVSumário

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 13Trabalhando 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 14Utilizando 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 15Utilizando 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 16Utilizando 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 1Introdução ao desenvolvimento deAplicações Android para dispositivos móveis

Aprenda a montar um ambiente de desenvolvimento livre para Android usando asIDEs de desenvolvimento mais utilizadas no mercado.

O Android é uma plataforma para desenvolvimento e execução de programaspara dispositivos móveis, robusta e de fácil utilização/aprendizagem. Foi construídainicialmente por uma pequena empresa de Palo Alto (Califórnia - EUA), chamadaAndroid Inc. A mesma foi adquirida pela Google em 2005. A plataforma, que hoje édesenvolvida por um consórcio de empresas chamado Open Handset Alliance, é vistacomo 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 programarcom o Android é uma tarefa simples, uma vez que essa tecnologia utiliza a linguagemde programação Java, com algumas semelhanças com o Java ME, e para odesenvolvimento da interface visual, podem-se utilizar arquivos XML, o que simplificaconsideravelmente o processo de desenvolvimento.

A grande aposta do Android são os novos aparelhos celulares, mais conhecidoscomo smartphones, que podem ser resumidos a celulares com grande poder deprocessamento 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 amemó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 aextensão .dex, que significa Dalvik Executable, fazendo uma referência à máquinavirtual 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 novasversões em um ritmo acelerado. Embora muitos achem que o Android foi desenvolvidoexclusivamente pela Google, na verdade, o mesmo foi desenvolvido pela AndroidInc., 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, comoIntel, Acer, Motorola, Asus, DoCoMo, HTC, Huawei, Sprint, Kyocera, T-Mobile, LG,Samsung, Vodafone, SonyEricsson, Qualcomm e NVidia se uniram para fomentar ocrescimento da plataforma Android.

Na sequência, foi lançado o primeiro dispositivo móvel Android Enabled, oHTC T-Mobile, lançado em 2008 - Figura 1, sendo, em seguida, lançados inúmerosoutros aparelhos com suporte a esta nova plataforma, tais como, sistemas denavegação veicular, um Netbook e até mesmo automóveis com painéis eletrônicosinteligentes.

Figura 1. HTC T-Mobile, primeiro aparelho com Android.

Uma das características mais importantes do Android é a prioridade igualitáriapara aplicativos nativos e de terceiros. As aplicações desenvolvidas por terceirosdispõem de toda a infraestrutura de hardware e software, assim como os aplicativosnativos, 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 dedesenvolvimento e o sistema operacional.

3Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

Para completar a lista de vantagens, destaca-se seu design sofisticado e o fatode ter o nome associado ao Google, completando a força que a plataforma precisa paraimpulsionar seu avanço no mercado.

Infraestrutura do Software

No que diz respeito à infraestrutura de software, o Android consiste de umapilha que engloba um sistema operacional baseado em Linux, conjunto de bibliotecas,API chamada Android Runtime, aplicações preexistentes no Android e aplicaçõesdiversas, 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ão3.0 (Android API Level 11 e posteriores), sendo este responsável pelas tarefas degerenciamento de memória, acesso à rede, gerenciamento de processos etc. Éresponsabilidade do sistema operacional fazer a comunicação entre o softwaredesenvolvido 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 paratodos os aplicativos.

- 3D Libraries: biblioteca baseada no OpenGL ES 1.0 APIs. Ela usa aaceleração 3D em hardware (se estiver presente) para o processamento deimagens gráficas.

- Media Libraries: baseada no PacketVideo’s OpenCORE, suporta a gravaçãoe o playback de vários formatos de mídia. Também trabalha com imagensestá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 doAndroid (core libraries) que são utilizadas pelas bibliotecas mencionadas anteriormente.

Já as Application Frameworks são bibliotecas de mais alto nível, responsáveispor 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 bibliotecascostumeiramente acessadas pelos desenvolvedores Android para interagir com odispositivo móvel.

Por fim, os aplicativos são ferramentas comuns a todos os usuários de celularese smartphones. Uma característica do Android, como já foi informado, é que estesaplicativos nativos não possuem prioridade sobre outros instalados por terceiros, comoacontecia com o Java Micro Edition. Inclusive, qualquer programa instalado no aparelhopode compartilhar informações ou módulos para outros programas utilizarem. Alémdisso, um aplicativo de terceiros pode executar aplicativos nativos.

Ambiente de Desenvolvimento

Para o desenvolvimento Android, duas IDEs se destacam: Eclipse eNetbeans, com predominância da primeira. Porém, recentemente o Google anunciouo IntelliJ IDEA como base para o Android Studio, uma nova IDE para osdesenvolvedores dessa plataforma.

5Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

A IDE Netbeans se destaca pela facilidade de uso e também por ser pioneira naimplementação de ambientes visuais de desenvolvimento mobile, lembrando que já naversão 4.1, a IDE integrou o plugin Mobility Pack, o qual permitia desenvolveraplicações visuais (clicando e arrastando componentes) para a linguagem Java ME.

Já a grande vantagem do Eclipse é a facilidade de gerenciamento de plugins, oque 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 Googlee do principal site de desenvolvedores Android (developer.android.com) apoiarem ouso dessa IDE.

Em um primeiro momento, independentemente da IDE de desenvolvimentoescolhida, é necessário montar um ambiente padrão, este formado pelo JDK (JavaDeveloptment Kit), o kit de desenvolvimento Java padrão, e pelo Android SDK, o kitde desenvolvimento Android padrão. Após instalar o JDK e o Android SDK, é necessárioatualizar as plataformas de desenvolvimento no Android SDK. Somente após estespassos 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 Kitde Desenvolvimento Java Padrão (JDK), conforme a Figura 3. Após o downloaddo arquivo, é só proceder com a instalação padrão, de acordo com o sistemaoperacional utilizado.

Figura 3. Página para download do Java SDK.

6 Android - Do Básico ao Avançado

Dica: Ambiente de Desenvolvimento Android e SistemasOperacionais

O ambiente de desenvolvimento Android é multiplataforma, ou seja,além de gratuito (o que é um ótimo diferencial para programadores eempresas que estão iniciando na plataforma), é possível baixar o ambientepara diferentes sistemas operacionais, tais como, Windows, Linux ouMacOS, sendo que o processo de desenvolvimento é praticamente omesmo, independentemente do sistema operacional.

Instalando o Android SDK e o ADT Bundle

Até algum tempo atrás, o processo de configuração do ambiente dedesenvolvimento 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 AndroidSDK e o Eclipse. Até o momento da escrita deste livro, ainda não existia a versãodesse bundle com a nova IDE, a Android Studio. Para baixar a ferramenta, basta entrarneste link: http://developer.android.com/tools/index.html. Você verá uma interface comoa mostrada na Figura 4.

Figura 4. Página para download do ADT Bundle.

7Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

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ívelencontrar duas pastas (eclipse e sdk) e um arquivo (SDKManager). De uma formamuito mais rápida e simples, você já terá o ambiente de desenvolvimento Androidinstalado e configurado.

Atualizando o Android SDK

Após a instalação, deve-se executar o SDKManager.exe, que abrirá o aplicativoGerenciador 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 odesenvolvimento. O pacote tools traz as ferramentas para fazer testes com o emuladorde dispositivo Android e os outros pacotes trazem as versões do Android. Para instalaro 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 tranquilamente100 MB, não é aconselhável a instalação de todas as plataformas disponíveis, a nãoser, claro, que o programador precise testar sua aplicação em todas as plataformasAndroid existentes no mercado. Hoje, bastaria ter as versões 2.3 (com maior marketshare) 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 novasversões com poucos meses de intervalo. Para uma melhor organizaçãodas versões do Android, as mesmas costumam ser chamadas de API ouplataforma. A primeira versão do Android foi chamada de Plataforma 1ou API 1 e assim, as versões foram evoluindo e sua numeração seguiuuma numeração sequencial e crescente. Entretanto, para o usuário, émais comum conhecer a versão do Android pela sua numeração. Aprimeira 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.

9Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

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 ouAndroid 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 SDKManager, nomeadas pelo número de sua API/Plataforma. Já a pasta tools, possui algunsdos 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 exemplosenvolvendo 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 dehardware 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 dispositivovirtual, 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 parao 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 odispositivo desenvolvido.

11Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

A criação do AVD é possível escolhendo o executável AVDManager.exe presentena pasta onde foi instalado o Android SDK ou como um dos ícones na barra superiorda IDE Eclipse. A tela Android Virtual Device Manager (Figura 8) é aberta e atravésdela, 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. AFigura 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 naexecução da aplicação Android.

- Device: informações de alguns devices pré-configurados, existentes nomercado ou genéricos, contendo especificação de tela e resolução dodispositivo 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ãoexistem somente chips ARM no mercado, apesar de sua dominância aindaativa (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 dodispositivo.

13Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

- Skin: informa se as teclas de hardware (Voltar, Home e Menu) serãoapresentadas no emulador.

- Front Camera e Back Camera: permite simular os recursos de câmerasfrontais e atrás do aparelho.

- Memory Option: informa os valores referentes às memórias RAM e Headdo emulador.

- Internal Storage: simula o tamanho de armazenamento interno dodispositivo emulado

- SD Card: informação sobre um suposto cartão de memória que estejaconectado ao emulador.

Após criado o emulador, o mesmo pode ser iniciado selecionando-o na tela daFigura 8 e clicando no botão Start, sendo apresentada uma tela do sistema operacionalAndroid 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 desenvolvimentoestá pronto, com um AVD criado e pronto para executar. O próximo passo é prepararo ambiente para receber a IDE de desenvolvimento, procedimento este apresentadona 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 doprojeto em http://www.eclipse.org. Como existem várias versões da IDE Eclipse, deve-se baixar alguma que seja compatível com o desenvolvimento Java. Aconselha-se aversã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 deinstalaçã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órioworkspace, 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.

15Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

O Eclipse não possui suporte nativo ao desenvolvimento para Android, destaforma, torna-se necessário o uso de um plugin, este chamado ADT (AndroidDevelopment Tools). Ele é um plugin para a IDE Eclipse que permite o desenvolvimentode aplicações para a plataforma Android. Projetado para ser um ambiente poderoso eintegrado, permite o desenvolvimento, execução e depuração de aplicativos Android.Através dele, é possível criar novos projetos Android, adicionar pacotes com base naAPI, criar interfaces para usuário, depurar aplicativos e exportar sua aplicação parautilizá-la em seu smartphone ou tablet.

O próprio portal oficial do Android (http://developer.android.com/) aconselhadesenvolver aplicações Android no Eclipse com o ADT. O plugin permite a configuraçãodo projeto guiada via wizard, ferramentas de integração, editores XML personalizadose painel de saída da depuração.

Para a instalação do plugin, com o Eclipse aberto, acesse o menu Help - InstallNew 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 paradownload do ADT Eclipse (https://dl-ssl.google.com/android/eclipse/), conforme ilustraa 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 processode instalação. Ao final, a IDE é reiniciada, sendo apresentada para o usuário uma telapara a configuração do Android SDK. Nessa tela, deve-se informar a pasta onde oAndroid 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 caminhoem Android Location. Após o Apply, as plataformas do Android, disponíveis para osusuários, são apresentadas na tela, conforme a Figura 14.

17Capítulo 1 - Introdução ao desenvolvimento de Aplicações Android ...

Figura 14. Configuração do caminho do Android SDK no ADT.

Desta forma, a IDE Eclipse já está pronta para o desenvolvimento de aplicaçõesAndroid.

Outras Opções de IDEs de Desenvolvimento paraAndroid

Como os ambientes de desenvolvimento Android são, na verdade, ambientesde desenvolvimento Java personalizados para o trabalho na plataforma Android, existemvárias opções que podem ser utilizadas, além do tradicional Eclipse.

Uma opção muito forte é o Netbeans, com o plugin nbandroid. O Netbeanstem uma tradição no desenvolvimento para dispositivos móveis, sendo pioneirono desenvolvimento visual para dispositivos móveis com o plugin Mobility Packpara 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, sendoque 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, assimcomo uma versão paga. Como principal característica, está o ambiente visual dedesenvolvimento (clicar e arrastar), assim como um ambiente de debug simples, queapresenta mensagens intuitivas com os tipos e locais de erro.

Concluindo...

Como apresentado neste capítulo, é possível preparar ambientes completos parao desenvolvimento Android sem gastar dinheiro. Com ferramentas gratuitas emultiplataformas, é possível desenvolver desde aplicativos simples até sistemascomplexos, podendo estes fazer comunicação com a rede da operadora, utilizar obluetooth, sensores, arquivos, entre outros recursos.

Deste ponto em diante, todos os exemplos apresentados no livro serãodesenvolvidos utilizando a IDE de desenvolvimento Eclipse, do ADT Bundle. Porém,esses exemplos podem ser desenvolvidos em outras IDEs, de acordo com as preferênciasdo leitor, já que a linguagem e a estrutura dos aplicativos são as mesmas,independentemente da plataforma escolhida para o desenvolvimento.