Ricardo da Silva Ogliari Robison Cris Brito



Documentos relacionados
Desenvolvimento de um aplicativo básico usando o Google Android

Desenvolvimento para Android Prá9ca 1. Prof. Markus Endler

Introdução ao Android

Android. Marcelo

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

O que é o Android? O que é o Android

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

Introdução a Computação Móvel

Marco Polo Monteiro Viana. Sistemas Comerciais. Conceitos, modelagem e projeto

A plataforma Android: Uma Introdução

Manual de instalação e configuração da Ferramenta Android SDK

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Programação para Android

Programação para Dispositivos Móveis

OneDrive: saiba como usar a nuvem da Microsoft

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

Procedimentos para Reinstalação do Sisloc

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Tutorial 1.0. Instalação

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Android Básico Hello World!

FRWTC-400 DESENVOLVIMENTO MÓVEL PARA ANDROID MÓDULO 1

ANDROID APPLICATION PROJECT

Motorola Phone Tools. Início Rápido

MANUAL DE INSTALAÇÃO CONFIGURAÇÃO IDE ECLIPSE

Manual de Utilização do Sistema GRServer Cam on-line (Gerenciamento de Câmeras On-line)

OBJETIVO Criação e execução de um projeto Android dentro da IDE IntelliJ.

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Manual do Usuário Nextel Cloud. Manual do Usuário. Versão Copyright Nextel

Operador de Computador. Informática Básica

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

MANUAL DO SISTEMA. Versão 1.00

Google Android para Tablets

Procedimentos para Instalação do Sisloc

JOOPP O construtor de sites mais rápido do mundo!

Manual do Visualizador NF e KEY BEST

Introdução ao Android. Prof. Fellipe Aleixo

Sistema de Chamados Protega

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROJETO INFORMÁTICA NA ESCOLA

Manual de Instalação ( Client / Server ) Versão 1.0

Informática. Aula 03 Sistema Operacional Linux. Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Campus Currais Novos

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

Celebre este natal e ano novo junto aos seus amigos e familiares distantes.

Manual de Atualização Versão

Desenvolvimento para Android

Entenda as vantagens dos chips de quatro núcleos

DOWNLOAD DO APLICATIVO: INSTALAÇÃO DO APLICATIVO

Manual TIM PROTECT BACKUP. Manual do Usuário. Versão Copyright TIM PROTECT BACKUP

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

I N T R O D U Ç Ã O W A P desbloqueio,

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V

Desenvolvimento de Aplicativos com ASR para Android

Instruções para download e instalação da atualização de Mapa GPS (v3)

CONSTRUÇÃO DE BLOG COM O BLOGGER

Estamos muito felizes por compartilhar com você este novo serviço educacional do Centro Universitário de Patos de Minas.

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

Introdução a Informática - 1º semestre AULA 02 Prof. André Moraes

Qlik Sense Desktop. Qlik Sense 1.1 Copyright QlikTech International AB. Todos os direitos reservados.

Manual do Usuário Nextel Cloud. Manual do Usuário. Versão Copyright Nextel

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

Desenvolvimento com Android Studio Aula 01 Instalação e Configuração do Ambiente de Desenvolvimento, Estrutura de um projeto Android

Procedimentos para Instalação do SISLOC

Atualizaça o do Maker

Aula Au 3 la 3 Windows-Internet

Sistemas Operacionais

Lógica de Programação

Inicialização Rápida do Novell Vibe Mobile

Introdução a programação de dispositivos móveis. Prof. Me. Hélio Esperidião

Sistemas Embarcados Android

Nome N Série: Ferramentas

IV SEMANA DE INFORMÁTICA. Prof. Rafael Hens Ribas

Manual Vivo Sync. Manual do Usuário. Versão Copyright Vivo

Manual de Instalação, Configuração e Utilização do MG-Soft Web

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Desenvolvimento Android.

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

EA998/MC933 Guido Araujo e Sandro Rigo

ÍNDICE. 16/06/ :48 Leite Júnior

Manual Backup Online. Manual do Usuário. Backup Online. Versão Copyright GVT

Tecnologia e Informática

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Instalação do TOTVS ESB. Guia de Instalação do TOTVS ESB

Cadastramento de Computadores. Manual do Usuário

Guia do usuário do PrintMe Mobile 3.0

Sistema de Instalação e Criação da Estrutura do Banco de Dados MANUAL DO INSTALADOR. Julho/2007. Ministério da saúde

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Desenvolvimento de Aplicações. Android. Rick Rogers, John Lombardo, Zigurd Mednieks e Blake Meike. Novatec

Como configurar s nos celulares. Ebook. Como configurar s no seu celular. W3alpha - Desenvolvimento e hospedagem na internet

Hyper-V e Intel HAXM. Ativando a virtualização

SISTEMAS OPERACIONAIS

mobile PhoneTools Guia do Usuário

Motorola Phone Tools. Início Rápido

Transcrição:

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 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: LCM@LCM.COM.BR WWW.LCM.COM.BR 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.