Cap_01

34
Objetivos Neste capítulo, você vai: Conhecer a história do Android e do SDK do Android. Conhecer o Android Market para aplicativos. Fazer uma revisão dos conceitos básicos da tecnolo- gia de objetos. Conhecer os tipos mais importantes de software para desenvolvimento de aplicativos Android, incluindo o SDK do Android, o SDK do Java e o ambiente de de- senvolvimento integrado (IDE) Eclipse. Aprender sobre uma importante documentação do Android. Fazer o teste de um aplicativo Android que permite desenhar na tela. Conhecer os Android Resource Centers online da Deitel. 1 Introdução ao Android

Transcript of Cap_01

Page 1: Cap_01

ObjetivosNeste capítulo, você vai:

� Conhecer a história do Android e do SDK do Android. � Conhecer o Android Market para aplicativos. � Fazer uma revisão dos conceitos básicos da tecnolo-gia de objetos.

� Conhecer os tipos mais importantes de software para desenvolvimento de aplicativos Android, incluindo o SDK do Android, o SDK do Java e o ambiente de de-senvolvimento integrado (IDE) Eclipse.

� Aprender sobre uma importante documentação do Android.

� Fazer o teste de um aplicativo Android que permite desenhar na tela.

� Conhecer os Android Resource Centers online da Deitel.

1Introdução ao Android

_Livro_Deitel_Android.indb 1_Livro_Deitel_Android.indb 1 11/07/12 10:1811/07/12 10:18

Page 2: Cap_01

2 Android para Programadores

1.1 IntroduçãoBem-vindo ao desenvolvimento de aplicativos Android! Esperamos que você considere o trabalho com este livro uma experiência instrutiva, desafiadora, divertida e recom-pensadora. Esta obra se destina a programadores Java. Utilizamos somente aplicativos funcionais completos; portanto, se você não conhece Java, mas tem experiência com programação orientada a objetos em outra linguagem, como C#, Objective-C/Cocoa ou C++ (com bibliotecas de classe), deve ser capaz de dominar o material rapidamente, aprendendo Java e programação orientada a objetos no estilo Java à medida que aprende a desenvolver aplicativos Android.

O livro usa uma abordagem baseada em aplicativos – discutimos cada nova tec-nologia no contexto de aplicativos Android funcionais e completos, com um aplicativo por capítulo. Descrevemos o aplicativo e o testamos. Em seguida, apresentamos uma breve visão geral das importantes tecnologias Eclipse (ambiente de desenvolvimento integrado), Java e o SDK (Software Development Kit) do Android que vamos usar para implementar o aplicativo. Para aplicativos que assim o exigem, conduzimos um acompanhamento visual do projeto da interface gráfica do usuário, utilizando o Eclip-se. Em seguida, fornecemos a listagem do código-fonte completo, usando números de linha, destaque da sintaxe (para imitar o colorido da sintaxe utilizado no IDE Eclipse) e realce de código para enfatizar as suas partes principais. Também mostramos uma ou mais capturas de tela do aplicativo em execução. Então, fazemos um acompanhamento detalhado do código, enfatizando os novos conceitos de programação introduzidos no aplicativo. O código-fonte de todos os aplicativos do livro pode ser baixado no ende-reço www.bookman.com.br. A Figura 1.1 lista a documentação online importante sobre o Android.

Res

umo 1.1 Introdução

1.2 Visão geral do Android 1.3 Android 2.2 (Froyo) 1.4 Android 2.3 (Gingerbread) 1.5 Android 3.0 (Honeycomb) 1.6 Android Ice Cream Sandwich 1.7 Baixando aplicativos do

Android Market

1.8 Pacotes 1.9 O SDK do Android 1.10 Tecnologia de objetos: uma rápida

recapitulação 1.11 Teste do aplicativo Doodlz em um AVD 1.12 Recursos da Deitel 1.13 Recursos para desenvolvimento com Android 1.14 Para finalizar

Título URL

Android Developer Guide developer.android.com/guide/index.html

Using the Android Emulator developer.android.com/guide/developing/devices/emulator.html

Android Package Index developer.android.com/reference/packages.html

Android Class Index developer.android.com/reference/classes.html

User Interface Guidelines developer.android.com/guide/practices/ui_guidelines/index.html

Data Backup developer.android.com/guide/topics/data/backup.html

Fig. 1.1 | Documentação online importante para desenvolvedores Android. (continua)

_Livro_Deitel_Android.indb 2_Livro_Deitel_Android.indb 2 11/07/12 10:1811/07/12 10:18

Page 3: Cap_01

Capítulo 1 Introdução ao Android 3

Leia a seção “Antes de começar” para obter informações sobre como baixar o soft-ware necessário para construir aplicativos Android. O site Android Developer fornece downloads gratuitos, além de documentação, vídeos explicativos (Fig. 1.37), diretrizes de codificação e muito mais. Para publicar seus aplicativos na loja de aplicativos do Google – Android Market –, você precisará criar um perfil de desenvolvedor no endereço ma-rket.android.com/publish/signup. Existe uma taxa de inscrição e você precisa aceitar as condições do Android Market Developer Distribution Agreement. Discutimos a publi-cação de seus aplicativos com mais detalhes no Capítulo 2, “Android Market e questões de comercialização de aplicativos”.

À medida que se aprofundar no desenvolvimento de aplicativos Android, talvez você tenha perguntas sobre as ferramentas, questões de projeto, segurança e muito mais. Existem vários grupos de discussão e fóruns para desenvolvedores Android, onde você pode obter as notícias mais recentes ou fazer perguntas (Fig. 1.2).

Título URL

Security and Permissions developer.android.com/guide/topics/security/security.html

Managing Projects from Eclipse with ADT

developer.android.com/guide/developing/projects/projects-eclipse.html

Debugging Tasks developer.android.com/guide/developing/debug-tasks.html

Tools Overview developer.android.com/guide/developing/tools/index.html

Publishing Your Apps developer.android.com/guide/publishing/publishing.html

Android Market Getting Started market.android.com/support/bin/topic.py?hl=en&topic=15866

Android Market Developer Distribution Agreement

www.android.com/us/developer-distribution-agreement.html

Fig. 1.1 | Documentação online importante para desenvolvedores Android.

Título Assinatura Descrição

Android Discuss Assine usando Google Groups:android-discuss

Assine via email: android-discuss-subscribe@

googlegroups.com

Um grupo de discussão geral sobre o Android, onde você pode obter respostas para suas perguntas sobre desenvolvimento de aplicativos.

Stack Overflow stackoverflow.com/questions/tagged/android

Use essa lista para fazer perguntas sobre desenvolvimento de aplicativos Android em nível de iniciante, incluindo como começar a usar Java e Eclipse, e perguntas sobre as melhores práticas.

Fig. 1.2 | Grupos de discussão e fóruns sobre Android. (continua)

_Livro_Deitel_Android.indb 3_Livro_Deitel_Android.indb 3 11/07/12 10:1811/07/12 10:18

Page 4: Cap_01

4 Android para Programadores

1.2 Visão geral do AndroidA primeira geração de telefones Android foi lançada em outubro de 2008. De acordo com a Gartner, as vendas de telefones baseados em Android nos Estados Unidos aumen-taram 707% no primeiro trimestre de 2010, em relação ao ano anterior.1 Em março de 2011, um estudo da Nielsen mostrou que o Android tinha 37% da fatia de mercado de smartphones nos Estados Unidos, comparados com 27% do iPhone da Apple e 22% do Blackberry.2 Em agosto de 2010, mais de 200 mil smartphones Android eram ativados todos os dias, ultrapassando de 100 mil por dia apenas dois meses antes.3 Em junho de 2011, mais de 500 mil dispositivos Android eram ativados diariamente. Atualmente, existem mais de 300 dispositivos Android diferentes em todo o mundo.

O sistema operacional Android foi desenvolvido pela Android, Inc., adquirida pelo Google em julho de 2005. Em novembro de 2007, foi formada a Open Handset Alliance™ – um consórcio composto inicialmente de 34 empresas e agora contando com 81 (www.ope-nhandsetalliance.com/oha_members.html) – para desenvolver o Android, impulsionando a inovação na tecnologia móvel, melhorando a experiência do usuário e reduzindo os custos. O Android é utilizado em inúmeros smartphones, dispositivos e-reader e tablets.

Franqueza e código-fonte abertoUma vantagem de desenvolver aplicativos Android é a franqueza (ou grau de abertura) da plataforma. O sistema operacional é de código-fonte aberto e gratuito. Isso permite ver o código-fonte do Android e como seus recursos são implementados. Você também pode contribuir para o Android relatando erros (consulte source.android.com/source/report--bugs.html) ou participando nos grupos de discussão do Open Source Project (source.android.com/community/index.html). Diversos aplicativos Android de código-fonte aber-to do Google e outros estão disponíveis na Internet (Fig. 1.3). A Figura 1.4 mostra onde se pode obter o código-fonte do Android, aprender a respeito da filosofia por trás do sistema operacional de código-fonte aberto e obter informações sobre licenciamento.

1 www.gartner.com/it/page.jsp?id=1372013.

2 blog.nielsen.com/nielsenwire/online_mobile/u-s-smartphone-market-whos-the-most-wanted/.

3 www.wired.com/gadgetlab/2010/08/google-200000-android-phones/.

Título Assinatura Descrição

Android Developers Assine usando Google Groups: android-developers

Os desenvolvedores Android experientes usam essa lista para solucionar problemas de aplicativos, problemas de projeto de interface gráfica do usuário, problemas de desempenho e muito mais.

Assine via email:android-developers-

[email protected]

Android Market Help Forum

www.google.com/support/forum/p/Android+market

Faça perguntas e encontre respostas a respeito do Android Market.

Android Forums www.androidforums.com/ Faça perguntas, compartilhe dicas com outros desenvolvedores e encontre fóruns destinados a dispositivos Android específicos.

Fig. 1.2 | Grupos de discussão e fóruns sobre Android.

_Livro_Deitel_Android.indb 4_Livro_Deitel_Android.indb 4 11/07/12 10:1811/07/12 10:18

Page 5: Cap_01

Capítulo 1 Introdução ao Android 5

JavaOs aplicativos Android são desenvolvidos com Java – a linguagem de programação mais usada do mundo. Essa linguagem foi uma escolha lógica para a plataforma Android, porque é poderosa, gratuita e de código-fonte aberto. O Java é usado para desenvolver aplicativos empresarias de larga escala, melhorar a funcionalidade de servidores Web, for-necer aplicativos para aparelhos de consumidor (por exemplo, telefones celulares, pagers e assistentes digitais pessoais) e para muitos outros propósitos.

O Java permite desenvolver aplicativos que são executados em uma variedade de dispositivos, sem nenhum código específico para a plataforma. Os programadores Java ex-perientes podem se aprofundar rapidamente no desenvolvimento com Android, usando as APIs (interfaces de programação de aplicativo) Android e outras disponíveis de terceiros.

O grau de abertura da plataforma estimula a rápida inovação. O Android está dis-ponível em dispositivos de dezenas de fabricantes de equipamento originais (OEMs – original equipment manufacters) em 48 países, por meio de 59 empresas de telefonia.4 A intensa concorrência entre os OEMs e as empresas de telefonia beneficia os clientes.

A linguagem Java é orientada a objetos e tem acesso a poderosas bibliotecas de classe que ajudam a desenvolver aplicativos rapidamente. A programação de interfaces gráficas do usuário com Java é baseada em eventos – neste livro, você vai escrever apli-cativos que respondem a vários eventos iniciados pelo usuário, como toques na tela e pressionamentos de tecla. Além de programar partes de seus aplicativos diretamente, você também vai usar o Eclipse para arrastar e soltar convenientemente objetos predefinidos,

4 code.google.com/events/io/2010/.

Descrição URL

Ampla lista de aplicativos de código-fonte aberto, organizada por categoria (por exemplo, games, utilitários etc.).

en.wikipedia.org/wiki/List_of_open_source_Android_applications

Exemplos de aplicativos do Google para a plataforma Android.

code.google.com/p/apps-for-android/

30 exemplos de aplicativos demonstrando vários recursos do Android.

developer.android.com/resources/browser.html?tag=sample

Lista 12 aplicativos Android de código-fonte aberto.

www.techdrivein.com/2010/11/12-open-source-android-applications.html

Fornece links para uma seleção de games Android de código-fonte aberto.

www.techdrivein.com/2010/12/15-nice-and-simple-open-source-android.html

Fig. 1.3 | Sites de recurso de aplicativos Android de código-fonte aberto.

Título URL

Get Android Source Code source.android.com/source/download.html

Philosophy and Goals source.android.com/about/philosophy.html

Licenses source.android.com/source/licenses.html

FAQs source.android.com/faqs.html#aosp

Fig. 1.4 | Recursos de código-fonte e documentação sobre o Android.

_Livro_Deitel_Android.indb 5_Livro_Deitel_Android.indb 5 11/07/12 10:1811/07/12 10:18

Page 6: Cap_01

6 Android para Programadores

como botões e caixas de texto, em seu lugar na tela, além de rotulá-los e redimensioná--los. Usando Eclipse com o Plugin ADT (Android Development Tools), você pode criar, executar, testar e depurar aplicativos Android rápida e convenientemente, e pode projetar suas interfaces de usuário visualmente.

Tela multitouchMuitos smartphones Android emglobam a funcionalidade de telefone celular, cliente de Internet, MP3 player, console de jogos, câmera digital e muito mais, em um dispositivo portátil com telas multitouch coloridas. Isso permite controlar o dispositivo com gestos que envolvem apenas um toque ou vários toques simultâneos (Fig. 1.5).

Usando a tela multitouch, você pode navegar facilmente entre seu telefone, seus aplicativos, sua biblioteca de músicas, pela Web etc. A tela pode exibir um teclado para digitação de emails e mensagens de texto e para a inserção de dados em aplicativos (al-guns dispositivos Android também têm teclados físicos). Usando dois dedos, você pode ampliar (afastando os dedos) e reduzir (juntando-os) fotos, vídeos e páginas Web. Pode rolar páginas e telas para cima e para baixo ou de um lado para outro, apenas correndo os dedos pela tela.

Aplicativos incorporadosOs dispositivos Android vêm com vários aplicativos incorporados de fábrica, os quais podem variar de acordo com o dispositivo. Normalmente eles incluem Telefone, Contatos, Correio, Navegador e muito mais. Muitos fabricantes personalizam os aplicativos-padrão; vamos mostrar como interagir com os aplicativos, como quer que tenham sido alterados.

Convenção de atribuição de nomes do AndroidCada nova versão do Android recebe um nome de sobremesa, em inglês, em ordem alfabética:

• Android 1.6 (Donut) • Android 2.0–2.1 (Eclair)

Nome do gesto Ação física Usado para

Toque rápido (touch) Tocar rapidamente na tela uma vez.

Abrir um aplicativo, “pressionar” um botão ou um item de menu.

Toque duplo rápido (double tap)

Tocar rapidamente na tela duas vezes.

Ampliar e então reduzir imagens, Google Maps e páginas Web.

Pressionamento longo (long press)

Tocar na tela e manter o dedo na posição.

Abrir um menu de contexto ou pegar ícones de aplicativo ou objetos para mover arrastando.

Arrastamento (drag) Tocar e arrastar o dedo pela tela.

Mover objetos ou ícones, ou rolar precisamente uma página Web ou lista.

Movimento rápido (fling)

Tocar e mover rapidamente o dedo na tela, na direção do movimento desejado.

Rolar por um ListView (por exemplo, Contatos) ou por um DatePicker ou um TimePicker (por exemplo, para selecionar datas e horas no Calendar).

Zoom de pinça (pinch zoom)

Usando dois dedos, tocar na tela e juntá-los ou afastá-los.

Ampliar e então reduzir a tela (por exemplo, ampliando texto e imagens).

Fig. 1.5 | Gestos no Android.

_Livro_Deitel_Android.indb 6_Livro_Deitel_Android.indb 6 11/07/12 10:1811/07/12 10:18

Page 7: Cap_01

Capítulo 1 Introdução ao Android 7

• Android 2.2 (Froyo) • Android 2.3 (Gingerbread) • Android 3.0 (Honeycomb)

1.3 Android 2.2 (Froyo)O Android 2.2 (também chamado de Froyo, lançado em maio de 2010) incluiu vários recursos novos e aprimoramentos (Fig. 1.6). Nas próximas seções, vamos discutir o An-droid 2.3 (Gingerbread) e o Android 3.0 (Honeycomb).

Recurso Descrição

Memória e desempenho melhorados

Os upgrades incluem:

• Os aprimoramentos na Dalvik Virtual Machine a tornaram de duas a cinco vezes mais rápida do que no Android 2.1.

• O mecanismo Chrome V8 carrega páginas Web com JavaScript rapidamente.

• A melhoria no gerenciamento de memória do kernel aumenta o desempenho do dispositivo.

Descoberta automática Permite que usuários do Exchange digitem um nome de usuário e uma senha para sincronizar suas contas no Exchange com seus dispositivos Android rapidamente.

Calendário Os usuários podem sincronizar o Calendário do Exchange com o aplicativo Calendar.

Pesquisa com GAL (Global Address Lists)

Acessa endereços de usuários de email e listas de distribuição do sistema de email do Microsoft Exchange dos usuários, permitindo o preenchimento automático de nomes de contato dos destinatários ao se criar um novo email.

Senhas Os usuários podem adicionar senhas alfanuméricas para desbloquear um dispositivo. Isso aumenta a segurança dos dados, impedindo que alguém acesse informações no dispositivo bloqueado.

Limpeza Remota Se você não consegue encontrar seu dispositivo Android, o recurso Limpeza Remota restaura as configurações de fábrica (removendo todos os dados pessoais), protegendo assim a privacidade de suas informações. Quando a Limpeza Remota é usada no telefone, os dados que não têm backup são perdidos. [Observação: a disponibilidade de Limpeza Remota varia de acordo com o fabricante e com os gerenciadores de política do dispositivo.]

Contatos e contas O Quick Contact para Android fornece aos usuários fácil acesso às informações de contato e modos de se comunicarem com seus contatos, como email, SMS ou telefone. O usuário pode dar um toque rápido na foto de um contato (por exemplo, na lista de contatos, na galeria de imagens, email ou calendário), abrindo o widget Quick Contact com os vários modos de comunicação. Como desenvolvedor, você pode incorporar o Quick Contact em seus aplicativos.

Fig. 1.6 | Recursos de usuário do Android 2.2 (developer.android.com/sdk/android-2.2--highlights.html). (continua)

_Livro_Deitel_Android.indb 7_Livro_Deitel_Android.indb 7 11/07/12 10:1811/07/12 10:18

Page 8: Cap_01

8 Android para Programadores

Recurso Descrição

Câmera Os controles de câmera no Android 2.2 incluem suporte para flash e zoom digital. Os usuários podem ajustar as configurações da câmera de acordo com o ambiente (por exemplo, noite, pôr do sol, ação), adicionar efeitos (por exemplo, sépia, matiz vermelho, matiz azul) e muito mais. Você pode programar as configurações de visualização e captura da câmera e recuperar e codificar vídeo.

Teclado virtual do Android A disposição do teclado foi aprimorada, tornando muito mais fácil digitar na tela multitouch e garantindo que os toques no teclado não sejam perdidos ao se digitar com dois dedos.

Dicionário aprimorado O dicionário mais sofisticado aprende a partir das palavras usadas pelo usuário e inclui os contatos do usuário nas grafias sugeridas.

Navegador A interface do usuário aprimorada do navegador apresenta uma nova barra de endereços em que o usuário pode dar um toque rápido para pesquisa e navegação e dar um duplo toque rápido para ampliar e reduzir uma página Web. Suporta também HTML5, que inclui recursos como reprodução de vídeo e operação de arrastar e soltar, disponíveis anteriormente somente por meio de plug-ins de outros fornecedores, como o Adobe Flash. [Obs.: O navegador também suporta Flash.]

Teclado para vários idiomas Os usuários podem adicionar teclados de outros idiomas e trocar entre eles facilmente, “movendo o dedo rapidamente”* da direita para a esquerda pela barra de espaço no teclado.Para adicionar teclados em um dispositivo ou no emulador, acesse Settings > Language & keyboard > Android keyboard > Input languages.**

Framework de mídia O framework de mídia Stagefright do Android permite reprodução de vídeo e streaming HTTP progressivo – isto é, enviar vídeo para um navegador pela Internet usando HyperText Transfer Protocol e reproduzir o vídeo enquanto ainda está sendo baixado. O framework de mídia anterior, OpenCORE, ainda é suportado no Android.

Bluetooth Agora os usuários podem estabelecer conexões sem fio entre seus dispositivos Android e outros dispositivos habilitados para Bluetooth, como fones de ouvido e conexões em carros (para conectar o telefone no sistema viva-voz de um carro), compartilhar informações de contato com telefones habilitados para Bluetooth e discagem de voz.

Tethering e suporte para ponto de acesso Wi-Fi

O Android 2.x incluía tethering e suporte para ponto de acesso Wi-Fi incorporado, permitindo aos usuários ligar seus telefones em um computador Windows ou Linux com um cabo USB a fim de usar o serviço 3G do telefone para se conectarem à Internetwww.engadget.com/2010/05/13/android-2-2-froyo-to-

include-usb-tethering-wifi-hotspot-funct/

* N. de R.T.: O nome original desse movimento é fling.

** N. de R.T.: Neste livro, os nomes das opções de menu do Android são mantidos em inglês, pois as traduções para outros idiomas não são padronizadas.

Fig. 1.6 | Recursos de usuário do Android 2.2 (developer.android.com/sdk/android-2.2--highlights.html).

_Livro_Deitel_Android.indb 8_Livro_Deitel_Android.indb 8 11/07/12 10:1811/07/12 10:18

Page 9: Cap_01

Capítulo 1 Introdução ao Android 9

Novos recursos para desenvolvedores no Android 2.2O serviço Android Cloud to Device Messaging (C2DM) permite aos desenvolvedores de aplicativos enviar dados de seus servidores para seus aplicativos instalados em dispo-sitivos Android, mesmo quando os aplicativos não estão sendo executados. O servidor avisa os aplicativos para que entrem em contato diretamente com o servidor a fim de receber dados atualizados de aplicativo ou do usuário.5 O Android Application Error Reports, que pode ser acessado fazendo-se login em sua conta de publicador do Android Market, permite receber relatórios sobre falha e congelamento de aplicativo a partir dos usuários de seus aplicativos.

O Android 2.2 também contém várias APIs novas que permitem adicionar funcio-nalidade facilmente em seus aplicativos (Fig. 1.7). Usamos alguns desses novos frameworks neste livro. Usamos também os Web services. Com eles, você pode criar mashups, os quais permitem desenvolver aplicativos rapidamente, combinando os Web services com-plementares de várias organizações, possivelmente com feeds de informação de vários tipos (como RSS, Atom, XML, JSON e outros) (Fig. 1.8). Por exemplo, www.housingmaps.com utiliza Web services para combinar listagens de imóveis da Craigslist (www.craigslist.org) com os recursos do Google Maps – a API mais usada para mashups – para mostrar as lo-calizações de apartamentos para alugar em determinada área. Usamos os Web services do WeatherBug no Capítulo 14.

5 code.google.com/android/c2dm/.

API Descrição

Aplicativos em armazenamento externo

Os aplicativos podem ser armazenados em um dispositivo de memória externa, em vez de apenas na memória interna do dispositivo Android.

Câmera e filmadora Os novos recursos incluem a API Camera Preview, que duplica a frequência de exibição (agora são 20 quadros por segundo), orientação de retrato, controles de zoom, dados de exposição e um utilitário de miniaturas. As novas classes CamcorderProfile podem ser usadas em aplicativos para determinar os recursos de hardware da filmadora do dispositivo do usuário.

Backup de dados Faz o backup de dados na nuvem e a restauração de dados depois que o usuário redefine o servidor com as configurações originais de fábrica ou troca de dispositivo.

Gerenciamento de política do dispositivo

Cria aplicativos de administrador para controlar recursos de segurança do dispositivo (por exemplo, força da senha).

Imagens gráficas Acesso às APIs gráficas OpenGL ES 2.0, que anteriormente estavam disponíveis somente por meio do Android NDK – um conjunto de ferramentas que permite usar código nativo para componentes de aplicativo diretamente relacionados com o desempenho (developer.android.com/sdk/ndk/overview.html).

Framework de mídia APIs para foco de áudio, varredura automática de arquivos no banco de dados de mídia (por exemplo, arquivos de áudio e vídeo), detecção de conclusão de carregamento de som, pausa e retomada automáticas de reprodução de áudio e muito mais.

Framework de interface do usuário

Os controles de modo carro, modo mesa e modo noturno do UiModeManager permitem ajustar a interface do usuário de um aplicativo, a API de detecção de gestos em escala aprimora os eventos multitouch e a faixa inferior de um TabWidget agora pode ser personalizada.

Fig. 1.7 | APIs do Android 2.2 (developer.android.com/sdk/android-2.2-highlights.html).

_Livro_Deitel_Android.indb 9_Livro_Deitel_Android.indb 9 11/07/12 10:1811/07/12 10:18

Page 10: Cap_01

10 Android para Programadores

A Figura 1.9 lista diretórios onde você vai encontrar informações sobre muitos dos Web services mais populares.

Diretório URL

ProgrammableWeb www.programmableweb.com

Webmashup.com www.webmashup.com/

Webapi.org www.webapi.org/webapi-directory/

Google Code API Directory code.google.com/apis/gdata/docs/directory.html

APIfinder www.apifinder.com/

Fig. 1.9 | Diretórios de Web services.

1.4 Android 2.3 (Gingerbread)O Android 2.3 (Gingerbread), lançado em dezembro de 2010 (com o Android 2.3.3 – uma pequena atualização – lançado em fevereiro de 2011), acrescentou mais refinamen-tos para o usuário, como um teclado redesenhado, recursos de navegação aprimorados, maior eficiência no consumo de energia e muito mais. A Figura 1.10 descreve alguns dos principais novos recursos e atualizações.

Fonte de Web services Como é usada

Google Maps Serviços de mapasFacebook Rede socialFoursquare Check-in móvelLinkedIn Rede social para negóciosYouTube Busca de vídeoTwitter MicroblogGroupon Comércio socialNetflix Aluguel de filmeseBay Leilões pela InternetWikipedia Enciclopédia colaborativaPayPal PagamentosLast.fm Rádio na InternetAmazon eCommerce Compra de livros e muito maisSalesforce.com Gerenciamento de relacionamento com o cliente

(CRM)Skype Telefonia pela InternetMicrosoft Bing BuscaFlickr Compartilhamento de fotosZillow Avaliação de imóveisYahoo Search BuscaWeatherBug Meteorologia

Fig. 1.8 | Alguns Web services populares (www.programmableweb.com/apis/directory/1?sort=mashups).

_Livro_Deitel_Android.indb 10_Livro_Deitel_Android.indb 10 11/07/12 10:1811/07/12 10:18

Page 11: Cap_01

Capítulo 1 Introdução ao Android 11

A plataforma também adicionou vários recursos novos de desenvolvedor para melhorar a comunicação, o desenvolvimento de games e multimídia (Fig. 1.11). Para obter mais detalhes sobre cada um desses recursos, acesse developer.android.com/sdk/android-2.3-highlights.html.

Recurso Descrição

Gerenciamento de energia Os aplicativos que consomem energia do processador enquanto estão sendo executados em segundo plano (ou ficam despertos por mais tempo do que o normal) podem ser fechados pelo Android (se apropriado) para economizar energia da bateria e melhorar o desempenho. Os usuários também podem ver os aplicativos e componentes do sistema que consomem energia da bateria.

Atalho Manage Applications O atalho para gerenciar aplicativos, Manage Applications, no menu Options da tela inicial permite aos usuários ver todos os aplicativos que estão em execução. Para cada aplicativo, você pode ver o volume de armazenamento e a memória que ele está usando, as permissões concedidas (se pode ler os dados de contato do usuário, criar conexões Bluetooth etc.) e muito mais. Os usuários também podem interromper o aplicativo “à força”.

Comunicação em campo próximo A comunicação em c ampo próximo (NFC) é um padrão de conectividade sem fio de curto alcance que permite a comunicação entre dois dispositivos ou de um dispositivo e uma etiqueta (que armazena dados que podem ser lidos por dispositivos habilitados para NFC) dentro de poucos centímetros. Os dispositivos habilitados para NFC podem operar em três modos – leitor/gravador (por exemplo, lendo dados de uma etiqueta), par a par (por exemplo, trocando dados entre dois dispositivos) e emulação de cartão (por exemplo, atuando como um cartão inteligente para pagamentos sem contato físico). Os dispositivos Android habilitados para NFC podem ser usados nos modos leitor/gravador e par a par. O suporte e os recursos para NFC variam de acordo com o dispositivo Android.

Funcionalidade Copiar e Colar aprimorada

Você pode tocar em uma palavra para selecioná-la, arrastar os marcadores para ajustar a seleção, copiar o texto tocando na área realçada e, por fim, colar o texto. Também é possível mover o cursor arrastando a respectiva seta.

Câmera Os aplicativos podem acessar câmeras traseiras e frontais.Chamada pela Internet O Android inclui suporte para SIP (Session Initiation Protocol)

– um protocolo padrão da IETF (Internet Engineering Task Force) para iniciar e terminar chamadas de voz pela Internet. Os usuários com contas SIP (disponíveis por meio de outros fornecedores) podem fazer chamadas de voz pela Internet para outros contatos com contas SIP. Nem todos os dispositivos Android ou operadoras suportam SIP e chamadas pela Internet. Para ver uma lista de provedores de SIP, consulte www.cs.columbia.edu/sip/service-providers.html.

Aplicativo Downloads Os usuários podem acessar arquivos baixados a partir de email, do navegador etc., por intermédio do aplicativo Downloads.

Fig. 1.10 | Recursos de usuário do Android 2.3 (developer.android.com/sdk/android-2.3--highlights.html).

_Livro_Deitel_Android.indb 11_Livro_Deitel_Android.indb 11 11/07/12 10:1811/07/12 10:18

Page 12: Cap_01

12 Android para Programadores

1.5 Android 3.0 (Honeycomb)Em 2015, as vendas de tablets serão responsáveis por mais de 20% de todas as vendas de computadores pessoais.6 O interesse por tablets Android está aumentando rapidamente. Na exposição Consumer Electronic Show de 2011, foram anunciados 85 novos tablets Android.7 O Android 3.0 (Honeycomb) inclui aprimoramentos na interface do usuário feitos especificamente para dispositivos de tela grande (tal como os tablets), como tecla-do redesenhado para digitação mais eficiente, interface do usuário em 3D visualmente atraente, barras de sistema e de ação para facilitar a navegação e muito mais (Fig. 1.12). Ele também fornece novas ferramentas para os desenvolvedores otimizarem os aplicativos para dispositivos de tela maior (Fig. 1.13).

6 www.forrester.com/ER/Press/Release/0,1769,1340,00.html.

7 www.computerworld.com/s/article/9206219/Google_Android_tablets_gain_traction_with_developers?source=CTWNLE_nlt_dailyam_2011-01-25.

Recurso Descrição

Telefonia pela Internet O novo suporte para SIP permite incorporar funcionalidade de telefonia pela Internet em seus aplicativos – ou seja, fazer e receber chamadas de voz.

API de comunicação em campo próximo

Constrói aplicativos que leem e respondem a dados de etiquetas ou dispositivos NFC. Os aplicativos Android 2.3.3 também podem gravar em etiquetas e trabalhar no modo par a par com outros dispositivos. Vale ressaltar que o suporte para NFC varia de acordo com o dispositivo Android.

API de efeitos de áudio Adiciona equalização (para ajustar graves ou agudos), reforço de baixo (aumentar o volume de sons graves), virtualização de fones de ouvido (som surround simulado) e reverberação (efeitos de eco) em uma ou em várias trilhas sonoras.

Novos formatos de áudio Suporte interno para codificação AAC (Advanced Audio Coding – sucessora do MP3) e AMRWB (Adaptive Multi-Rate Wideband) para capturar áudio de alta qualidade.

Novos formatos de vídeo Suporte interno para compactação de vídeo aberta VP8, com o formato de contêiner aberto WebM.

API Camera Use a API Camera aprimorada para acessar câmeras traseiras e frontais em um dispositivo, determinar seus recursos e abrir a câmera apropriada.

Fig. 1.11 | Recursos de desenvolvedor do Android 2.3 (developer.android.com/sdk/an-droid-2.3-highlights.html).

Recurso Descrição

Interface holográfica do usuário Atraente interface de usuário de aparência tridimensional.Tela inicial que pode ser personalizada

Organiza widgets, atalhos de aplicativo e muito mais.

Fig. 1.12 | Novos recursos do Android 3 (developer.android.com/sdk/android-3.0-highlights.html). (continua)

_Livro_Deitel_Android.indb 12_Livro_Deitel_Android.indb 12 11/07/12 10:1811/07/12 10:18

Page 13: Cap_01

Capítulo 1 Introdução ao Android 13

Recurso Descrição

Teclado redesenhado Permite mais precisão e eficiência na digitação.Edição melhorada Com a nova interface do usuário, é mais fácil selecionar, copiar e

colar texto.Barra de sistema Acesso rápido aos botões de navegação, às notificações e ao status

do sistema a partir da barra de sistema, na parte inferior da tela.Barra de ação Fornece controles específicos para cada aplicativo (como para

navegação) a partir da barra de ação, na parte superior da tela de cada aplicativo.

Multitarefa melhorada A lista de aplicativos recentes, Recent Apps, na barra de sistema permite ver as tarefas que estão sendo executadas simultaneamente e passar de um aplicativo para outro.

Opções de conectividade Conecte seu dispositivo Android em um teclado usando USB ou Bluetooth.

Suporte para PTP (Photo Transfer Protocol) e MTP (Media Transfer Protocol)

Desenvolvidos pela Microsoft, esses protocolos permitem transferir fotos, vídeos e arquivos de música para seu computador. Você pode construir aplicativos que permitem aos usuários criar e gerenciar arquivos de mídia e compartilhá-los em vários dispositivos.

Tethering com Bluetooth Conecte uma rede Wi-Fi ou 3G em seu computador ou outros dispositivos usando seu dispositivo Android como modem.

Navegador Apresenta guias, em vez de várias janelas, navegação mais fácil em sites que não são para dispositivos móveis (usando zoom melhorado, rolagem etc.), modo “incógnito” para navegar em sites anonimamente, suporte de multitouch para JavaScript e plug-ins e muito mais. Você também pode se inscrever em sites do Google automaticamente e sincronizar seus favoritos com o Google Chrome.

Câmera Reestruturados para dispositivos de tela maior, você pode acessar facilmente os recursos da câmera, como câmera frontal, flash, foco automático e muito mais. Os recursos de gravação de vídeo em time-lapse permitem capturar “quadros” em velocidade mais lenta do que a normal e, então, reproduzir o vídeo em velocidade normal, fazendo parecer como se o tempo estivesse andando mais rápido.

Contatos A interface do usuário com dois painéis facilita a leitura, a edição e a organização dos contatos. A rolagem rápida o ajuda a encontrar contatos rapidamente.

Email Use a barra de ação para organizar os emails em pastas e sincronizar anexos. Você também pode usar o widget de email da tela inicial para monitorar suas mensagens facilmente.

Galeria Veja álbuns no modo tela cheia, com imagens em miniatura para ver outras fotos do álbum.

Fig. 1.12 | Novos recursos do Android 3 (developer.android.com/sdk/android-3.0-highlights.html).

Recurso Descrição

Compatibilidade com versões anteriores

O Android 3.x é compatível com aplicativos desenvolvidos em versões anteriores do Android.

Fig. 1.13 | Novos recursos para desenvolvedor no Android 3 (developer.android.com/sdk/android-3.0-highlights.html). (continua)

_Livro_Deitel_Android.indb 13_Livro_Deitel_Android.indb 13 11/07/12 10:1811/07/12 10:18

Page 14: Cap_01

14 Android para Programadores

Recurso Descrição

Interface holográfica do usuário

Faça seus aplicativos novos e já existentes terem a nova aparência holográfica e o comportamento do Android 3, adicionando um atributo no arquivo de manifesto do aplicativo.

Adição de layouts de dispositivos de tela grande nos aplicativos existentes

Adicione novos layouts e recursos de dispositivos de tela grande em seus aplicativos já existentes, projetados para dispositivos de tela pequena.

Fragmentos de atividade Divida as atividades do aplicativo em fragmentos modulares, os quais podem ser usados em uma variedade de combinações. O Google está melhorando essa API para que possa ser usada no Android 1.6 e posteriores.

Interface do usuário nova e atualizada e widgets da tela inicial

Inclui uma caixa de pesquisa, calendário, pilha tridimensional, um selecionador de data/hora, selecionador de número e muito mais. Agora os widgets da tela inicial podem ser controlados com gestos de toque para rolar e correr pelo conteúdo.

Barra de ação Agora, cada aplicativo tem sua própria barra de ação persistente, fornecendo aos usuários opções de navegação etc.

Aprimoramentos para jogos As melhorias feitas para jogos incluem: • Aprimoramentos no desempenho, como um coletor de lixo de execução concorrente, distribuição mais rápida de eventos e drivers de vídeo atualizados.

• Eventos de entrada e sensor nativos. • Novos sensores – giroscópio, barômetro, sensor de gravidade e muito mais – para um melhor processamento de movimento tridimensional.

• API Khronos OpenSL ES para áudio nativo. • Biblioteca Khronos EGL para gerenciamento nativo de elementos gráficos.

• Acesso nativo ao ciclo de vida de atividades e APIs para gerenciar janelas.

• API Asset Manager nativa e API Storage Manager.Recursos de notificações adicionais

Adicione ícones grandes e pequenos, títulos e flags de prioridade nas notificações de seus aplicativos, usando a classe builder.

Área de transferência Permite aos usuários copiar e colar dados entre vários aplicativos.Arrastar e soltar Use o framework DragEvent para adicionar recursos de arrastar e

soltar em um aplicativo.Seleção múltipla Permite aos usuários selecionar múltiplos itens de uma lista ou

grade.MTP/PTP (Media/Picture Transfer Protocol)

Permite aos usuários transferir quaisquer tipos de arquivos de mídia facilmente entre dispositivos e para um computador host.

Suporte para arquitetura de processador multinúcleo

Execute o Android 3.x em arquiteturas de processador com um ou vários núcleos para melhorar o desempenho.

HLS (HTTP Live Streaming) Os aplicativos podem fornecer uma URL para uma lista de reprodução multimídia no framework de mídia para iniciar uma sessão de HTTP Live Streaming. Isso proporciona um suporte de qualidade mais alta para vídeo adaptável.

Mecanismo gráfico Renderscript 3D

Crie elementos gráficos tridimensionais de alto desempenho para aplicativos, widgets etc. e cálculos de offload para a GPU (unidade de processamento gráfico).

Fig. 1.13 | Novos recursos para desenvolvedor no Android 3 (developer.android.com/sdk/android-3.0-highlights.html). (continua)

_Livro_Deitel_Android.indb 14_Livro_Deitel_Android.indb 14 11/07/12 10:1811/07/12 10:18

Page 15: Cap_01

Capítulo 1 Introdução ao Android 15

1.6 Android Ice Cream SandwichO Android Ice Cream Sandwich mescla o Android 2.3 (Gingerbread) e o Android 3.0 (Honeycomb) em um único sistema operacional para uso em todos os dispositivos An-droid. Isso permite a incorporação de recursos do Honeycomb – como a interface holo-gráfica do usuário, um novo lançador e muito mais (anteriormente disponíveis somente em tablets) em seus aplicativos para smartphone – e a fácil adaptação de seus aplicativos facilmente para funcionar em diferentes dispositivos. O Ice Cream Sandwich também adiciona novas funcionalidades (Fig. 1.14).

Recurso Descrição

Elementos gráficos bidimensionais com aceleração por hardware

O novo renderizador OpenGL aumenta o desempenho de operações gráficas comuns.

Novo framework de animação Anima elementos ou objetos da interface do usuário facilmente.Bluetooth A2DP e HSP APIs para A2DP (Advanced Audio Distribution Profile) e HSP

(Headset Profile) do Bluetooth permitem que seus aplicativos verifiquem dispositivos Bluetooth conectados, o nível da bateria e muito mais.

Framework DRM (Digital Rights Management)

API que permite gerenciar conteúdo protegido em seus aplicativos.

Novas políticas para aplicativos de administração de dispositivo

Agora os aplicativos de administração de dispositivo empresariais podem suportar políticas como expiração de senha e muito mais.

Fig. 1.13 | Novos recursos para desenvolvedor no Android 3 (developer.android.com/sdk/android-3.0-highlights.html).

Recurso Descrição

Compartilhamento par a par de NFC sem clicar

Os usuários com dispositivos Android compatíveis poderão compartilhar conteúdo (por exemplo, contatos, vídeos) ao simplesmente colocar os dispositivos próximos uns aos outros.

Monitoramento da cabeça Usando a câmera, os dispositivos compatíveis vão determinar o posicionamento dos olhos, nariz e boca do usuário. A câmera também vai acompanhar os olhos do usuário, permitindo criar aplicativos que mudam a perspectiva com base na direção em que o usuário está olhando (por exemplo, cenários de jogos em 3D).

Operador de câmera virtual Ao se fazer uma tomada de vídeo, a câmera vai focalizar automaticamente a pessoa que está falando. Por exemplo, se duas pessoas estiverem participando em um lado de uma conversa por vídeo, a câmera vai determinar qual das duas está falando e focalizará essa pessoa.

Framework Android@Home Vai permitir a criação de aplicativos Android para controlar aparelhos elétricos na casa do usuário, como desligar e ligar as luzes (com lâmpadas especiais da Lighting Science), ajustar o termostato, controlar o sistema de irrigação e muito mais.

Fig. 1.14 | Alguns recursos do Android Ice Cream Sandwich.

_Livro_Deitel_Android.indb 15_Livro_Deitel_Android.indb 15 11/07/12 10:1811/07/12 10:18

Page 16: Cap_01

16 Android para Programadores

1.7 Baixando aplicativos do Android MarketQuando este livro estava sendo produzido, havia centenas de milhares de aplicativos no Android Market do Google, e o número continua a aumentar rapidamente. A Figura 1.15 lista alguns aplicativos Android populares. Você pode baixar mais aplicativos diretamente em seu dispositivo Android por meio do Android Market. O Android Ma-rket o avisa quando há atualizações disponíveis para seus aplicativos baixados.

Visite o site market.android.com para conferir os aplicativos em destaque ou con-sulte alguns dos outros sites de análise e recomendação de aplicativos Android (Fig. 1.16). Alguns aplicativos são gratuitos e alguns são pagos. Os desenvolvedores definem os preços de seus aplicativos vendidos no Android Market e recebem 70% dos rendimen-tos. Como uma estratégia de marketing, muitos desenvolvedores de aplicativo oferecem versões básicas de seus aplicativos gratuitamente para que os usuários possam decidir se gostam deles e, então, adquirir versões mais completas. Discutimos essa estratégia, co-nhecida como “lite”, em mais detalhes na Seção 2.10.

Categoria do Android Market Exemplos de aplicativo

Quadrinhos Super-heróis da Marvel, calendário do Dilbert, piadas de Jerry Seinfeld

Comunicação Google Voice, Skype mobile™, Wi-Fi Locator, EasyEntretenimento Face Melter, Fingerprint Scanner, Fandango® MoviesFinanças Mint.com Personal Finance, PayPal, Debt Payoff PlannerJogos: aventura e ação NESoid, Droid Breakout, Raging Thunder 2 Lite, Whac ‘em!Jogos: raciocínio Enjoy Sudoku, Spin Cube Lite, Ultimate Simpson PuzzleJogos: cartas e cassino Texas Hold’em Poker, Tarot Cards, Chessmaster™Jogos: casual City Mayor, LOL Libs, Paper Toss, SuperYatzy Free

EditionSaúde Fast Food Calorie Counter, CardioTrainer, StopSmokingEstilo de vida Zillow Real Estate, Epicurious Recipe App, Family

LocatorMultimídia Pandora Radio, Shazam, Last.fm, iSyncr, Camera IllusionNotícias e clima The Weather Channel, CNN, NYTimes, FeedR News

ReaderProdutividade Adobe® Reader®, Documents To Go 2.0 Main AppReferência Google Sky Map, Dictionary.com, Wikidroid for

WikipediaCompras Gluten Free, Amazon.com, Barcode Scanner, Pkt

Auctions eBaySocial Facebook®, Twitter for Android, MySpace, Bump, AIMEsportes NFL Mobile, Nascar Mobile, Google ScoreboardTemas Pixel Zombies Live Wallpaper, Aquarium Live WallpaperFerramentas Compass, Droidlight LED Flashlight, AppAlarm ProViagens Google Earth, Yelp®, Urbanspoon, WHERE, XE CurrencyDemo Screen Crack, Bubbles, CouponMap, SnowGlobeBibliotecas de software Translate Tool, Security Guarder, Car Locator Bluetooth

Plugin

Fig. 1.15 | Alguns aplicativos Android populares no Android Market.

_Livro_Deitel_Android.indb 16_Livro_Deitel_Android.indb 16 11/07/12 10:1811/07/12 10:18

Page 17: Cap_01

Capítulo 1 Introdução ao Android 17

1.8 PacotesO Android usa um conjunto de pacotes, que são grupos nomeados de classes predefi-nidas e relacionadas. Alguns dos pacotes são específicos do Android, enquanto outros são pacotes do Java e do Google. Esses pacotes permitem acessar convenientemente os recursos do sistema operacional Android e incorporá-los em seus aplicativos. São escritos principalmente em Java e são acessíveis para programas Java. Os pacotes Android ajudam a criar aplicativos que obedecem às convenções de aparência e comportamento exclusivas do Android. A Figura 1.17 lista os pacotes discutidos neste livro. Para uma lista completa de pacotes Android, consulte developer.android.com/reference/packages.html.

Nome URL

AppBrain www.appbrain.com/

AndroidLib www.androlib.com/

Android Tapp™ www.androidtapp.com/

Appolicious™ www.androidapps.com/

AndroidZoom www.androidzoom.com/

doubleTwist® www.doubletwist.com/apps/

mplayit™ mplayit.com/#homepage

Fig. 1.16 | Sites de análise e recomendação de aplicativos Android.

Pacote Descrição

android.app Inclui classes de alto nível no modelo de aplicativos Android. (Aplicativo Tip Calculator do Capítulo 4.)

android.os Serviços de sistemas operacionais. (Aplicativo Tip Calculator do Capítulo 4.)

android.text Renderização e monitoramento de texto no dispositivo. (Aplicativo Tip Calculator do Capítulo 4.)

android.widget Classes de interface do usuário para widgets. (Aplicativo Tip Calculator do Capítulo 4.)

android.net Classes de acesso à rede. (Aplicativo Favorite Twitter® Searches do Capítulo 5.)

android.view Classes de interface do usuário para layout e interações do usuário. (Aplicativo Favorite Twitter® Searches do Capítulo 5.)

java.io Streaming, serialização e acesso ao sistema de arquivo de recursos de entrada e saída. (Aplicativo Flag Quiz do Capítulo 6.)

java.util Classes utilitárias. (Aplicativo Favorite Twitter® Searches do Capítulo 5.)

android.content.res Classes para acessar recursos de aplicativo (por exemplo, mídia, cores, desenhos etc.) e informações de configuração de dispositivo que afetam o comportamento dos aplicativos. (Aplicativo Flag Quiz Game do Capítulo 6.)

android.graphics.drawable

Classes para elementos somente para exibição (por exemplo, gradientes etc.). (Aplicativo Flag Quiz Game do Capítulo 6.)

Fig. 1.17 | Pacotes Android, Java e Google usados neste livro, listados com o capítulo em que aparecem pela primeira vez. (continua)

_Livro_Deitel_Android.indb 17_Livro_Deitel_Android.indb 17 11/07/12 10:1811/07/12 10:18

Page 18: Cap_01

18 Android para Programadores

1.9 O SDK do AndroidO SDK (Software Development Kit) do Android fornece as ferramentas necessárias para construir aplicativos Android. Ele está disponível gratuitamente no site Android Deve-lopers. Consulte a seção “Antes de começar” para ver os detalhes completos sobre como baixar as ferramentas necessárias para desenvolver aplicativos Android, incluindo o Java SE, o IDE Eclipse, o SDK 3.x do Android e o Plugin ADT para Eclipse.

Pacote Descrição

android.media Classes para manipular interfaces de áudio e vídeo. (Aplicativo Spotz Game do Capítulo 8.)

android.util Métodos utilitários e utilitários XML. (Aplicativo Cannon Game do Capítulo 7.)

android.content Acesso e publicação de dados em um dispositivo. (Aplicativo Doodlz do Capítulo 9.)

android.hardware Suporte para hardware de dispositivo. (Aplicativo Doodlz do Capítulo 9 e aplicativo Enhanced Slideshow do Capítulo 13.)

android.provider Acesso a provedores de conteúdo Android. (Aplicativo Doodlz do Capítulo 9.)

android.database Manipulação de dados retornados pelo provedor de conteúdo. (Aplicativo Address Book do Capítulo 10.)

android.database.sqlite Gerenciamento de banco de dados SQLite para bancos de dados privados. (Aplicativo Address Book do Capítulo 10.)

android.graphics Ferramentas gráficas usadas para desenhar na tela. (Aplicativo Route Tracker do Capítulo 11.)

android.location Serviços baseados em localização. (Aplicativo Route Tracker do Capítulo 11.)

com.google.android.maps Usado no aplicativo Route Tracker do Capítulo 11.android.appwidget Usado no aplicativo Weather Viewer do Capítulo 14.java.net Classes de ligação em rede (por exemplo, manipulação de endereços de

Internet e pedidos HTTP). (Aplicativo Weather Viewer do Capítulo 14.)javax.xml.parsers Processamento de documentos XML. (Aplicativo Weather Viewer do

Capítulo 14.)org.xml.sax SAX API (Simple API for XML) para ler dados de documentos XML.

(Aplicativo Weather Viewer do Capítulo 14.)android.speech Classes de reconhecimento de voz. (Aplicativo Pizza Ordering do

Capítulo 15.)android.speech.tts Classes de leitura de texto. (Aplicativo Pizza Ordering do Capítulo 15.)android.telephony APIs de telefonia para monitorar informações de rede, estado da

conexão e muito mais. Vamos usar essas APIs para enviar mensagens SMS. (Aplicativo Pizza Ordering do Capítulo 15.)

android.opengl Ferramentas gráficas OpenGL. (Aplicativo 3D Art do Capítulo 18.)java.nio Buffers para manipular dados. (Aplicativo 3D Art do Capítulo 18.)javax.microedition.

khronos.eglAPIs Khronos EGL para elementos gráficos em 3D. (Aplicativo 3D Art do Capítulo 18.)

javax.microedition.khronos.opengles

Interfaces Khronos OpenGL® ES. (Aplicativo 3D Art do Capítulo 18.)

Fig. 1.17 | Pacotes Android, Java e Google usados neste livro, listados com o capítulo em que aparecem pela primeira vez.

_Livro_Deitel_Android.indb 18_Livro_Deitel_Android.indb 18 11/07/12 10:1811/07/12 10:18

Page 19: Cap_01

Capítulo 1 Introdução ao Android 19

IDE EclipseO Eclipse é o ambiente de desenvolvimento integrado (IDE – Integrated Development En-vironment) recomendado para desenvolvimento com Android, embora os desenvolvedores também possam usar um editor de texto e ferramentas de linha de comando para criar apli-cativos Android. O Eclipse suporta muitas linguagens de programação, incluindo Java, C++, C, Python, Perl, Ruby on Rails e muito mais. A ampla maioria do desenvolvimento com Android é feita em Java. O IDE Eclipse inclui:

• Editor de código com suporte para sintaxe colorida e numeração de linha • Recuo (auto-indenting) e preenchimento automáticos (isto é, sugestão de tipo) • Depurador • Sistema de controle de versão • Suporte para refatoração

Você vai usar o Eclipse na Seção 1.11 para testar o aplicativo Doodlz. A partir do Capítulo 3, “Aplicativo Welcome”, você vai usar o Eclipse para construir aplicativos.

Plugin ADT para EclipseO Plugin ADT (Android Development Tools) para Eclipse – uma extensão para o IDE Eclipse – permite criar, executar e depurar aplicativos Android, exportá-los para dis-tribuição (por exemplo, carregá-los no Android Market) e muito mais. O ADT também contém uma ferramenta de projeto visual de interface gráfica do usuário. Os componen-tes da interface gráfica do usuário podem ser arrastados e soltos no lugar para formar in-terfaces, sem nenhuma codificação. Você vai aprender mais sobre o ADT no Capítulo 3, “Aplicativo Welcome”.

O emulador do AndroidO emulador do Android, incluído no SDK do Android, permite executar aplicativos Android em um ambiente simulado dentro do Windows, Mac OS X ou Linux. O emu-lador exibe uma janela de interface de usuário realista. Antes de executar um aplicativo no emulador, você precisa criar um AVD (Android Virtual Device, ou Dispositivo An-droid Virtual), o qual define as características do dispositivo em que você deseja fazer o teste, incluindo o hardware, a imagem do sistema, o tamanho da tela, o armazenamento de dados e muito mais. Se quiser testar seus aplicativos para vários dispositivos Android, você precisa criar AVDs separados para emular cada dispositivo exclusivo.

Usamos o emulador (não um dispositivo Android real) para obter a maioria das capturas de tela do Android para este livro. No emulador, você pode reproduzir a maioria dos gestos (Fig. 1.18) e controles (Fig. 1.19) do Android, usando o teclado e o mouse de seu computador. Os gestos com os dedos no emulador são um pouco limitados, pois seu computador provavelmente não é capaz simular todos os recursos de hardware do Android. Por exemplo, para testar aplicativos de GPS no emulador, você precisa criar arquivos que simulem leituras em um GPS. Além disso, embora seja possível simular mudanças de orientação (para o modo retrato ou paisagem), não há como simular lei-turas de acelerômetro em particular (o acelerômetro mede a orientação e a inclinação do dispositivo). Contudo, você pode carregar seu aplicativo (fazer upload) em um dis-positivo Android para testar esses recursos. Você verá como isso é feito no Capítulo 11, com o aplicativo Route Tracker. Você vai começar a criar AVDs e a usar o emulador para desenvolver aplicativos Android no aplicativo Welcome do Capítulo 3.

_Livro_Deitel_Android.indb 19_Livro_Deitel_Android.indb 19 11/07/12 10:1811/07/12 10:18

Page 20: Cap_01

20 Android para Programadores

1.10 Tecnologia de objetos: uma breve recapitulaçãoConstruir software de forma rápida, correta e econômica continua sendo um objetivo ilusório em uma época em que a demanda por software novo e mais poderoso está aumen-tando. Os objetos ou, mais precisamente – conforme veremos no Capítulo 3 –, as classes

Gesto com os dedos Ação do emulador

Toque rápido (tap) Clicar com o mouse uma vez. Apresentado no aplicativo Tip Calculator, no Capítulo 4.

Duplo toque rápido (double tap) Dar um clique duplo com o mouse. Apresentado no aplicativo Cannon Game, no Capítulo 7.

Pressionamento longo (long press) Clicar e manter o botão do mouse pressionado.Arrastamento (drag) Clicar, manter o botão do mouse pressionado e arrastar.

Apresentado no aplicativo Cannon Game, no Capítulo 7.Pressionamento forte (swipe) Clicar e manter o botão do mouse pressionado, mover o cursor

na direção do pressionamento e soltar o mouse. Apresentado no aplicativo Address Book, no Capítulo 10.

Movimento rápido (fling) Clicar e manter o botão do mouse pressionado, mover o cursor na direção do movimento e soltar rapidamente. Apresentado no aplicativo Address Book, no Capítulo 10.

Gesto de pinça (pinch) Manter a tecla Ctrl (Control) pressionada. Vão aparecer dois círculos que simulam os dois toques. Mova os círculos para a posição inicial, clique e mantenha o botão do mouse pressionado e arraste os círculos até a posição final. Apresentado no aplicativo Route Tracker, no Capítulo 11.

Fig. 1.18 | Gestos no emulador (developer.android.com/guide/developing/tools/emulator.html).

Controle Ação do emulador

Retornar EscBotão de chamada/discagem F3Câmera Ctrl-5_TECLADO NUMÉRICO, Ctrl-F3Botão de fim de chamada F4Home Botão HomeMenu (tecla programável esquerda) F2 ou botão Page UpBotão de energia F7Pesquisar F5* (tecla programável direita) Shift-F2 ou botão Page DownGirar para a esquerda 7_TECLADO NUMÉRICO, Ctrl-F11Girar para a direita 9_TECLADO NUMÉRICO, Ctrl-F12Ligar/desligar rede celular F8Botão de aumento de volume SINAL DE ADIÇÃO_TECLADO N UMÉRICO, Ctrl-F5Botão de diminuição de volume SINAL DE SUBTRAÇÃO_TECLADO NUMÉRICO, Ctrl-F6

Fig. 1.19 | Controles de hardware do Android no emulador (para ver mais controles, acesse developer.android.com/guide/developing/tools/emulator.html).

_Livro_Deitel_Android.indb 20_Livro_Deitel_Android.indb 20 11/07/12 10:1811/07/12 10:18

Page 21: Cap_01

Capítulo 1 Introdução ao Android 21

de onde os objetos vêm, são basicamente componentes de software reutilizáveis. Existem objetos de data, objetos de tempo, objetos de áudio, objetos de vídeo, objetos de automó-veis, objetos de pessoas etc. Praticamente qualquer substantivo pode ser representado de forma razoável como um objeto de software, em termos de atributos (por exemplo, nome, cor e tamanho) e comportamentos (por exemplo, cálculo, movimento e comunicação). Os desenvolvedores de software estão descobrindo que usar uma estratégia de projeto e implementação modular e orientada a objetos pode tornar os grupos de desenvolvimento de software muito mais produtivos do que era possível com técnicas anteriormente po-pulares, como a “programação estruturada” – frequentemente, os programas orientados a objetos são mais fáceis de entender, corrigir e modificar.

O automóvel como um objetoPara ajudá-lo a entender os objetos e seu conteúdo, vamos começar com uma analogia simples. Suponha que você queira dirigir um carro e fazê-lo ir mais rápido pressionando o pedal do acelerador. O que precisa acontecer antes que você possa fazer isso? Bem, an-tes que você possa dirigir um carro, alguém tem de projetá-lo. Normalmente, um carro começa com desenhos de engenharia, semelhantes às plantas baixas que descrevem o projeto de uma casa. Esses desenhos incluem o projeto de um pedal acelerador. O pedal esconde do motorista os mecanismos complexos que fazem o carro ir mais rápido, assim como o pedal do freio esconde os mecanismos que diminuem a velocidade do carro e o volante “esconde” os mecanismos que fazem o carro desviar. Isso permite que pessoas com pouco ou nenhum conhecimento do funcionamento de motores, freios e mecanis-mos de direção dirijam um carro facilmente.

Assim como não se pode fazer comida na cozinha de uma planta baixa, tampouco é possível dirigir os desenhos de engenharia de um carro. Antes que você possa dirigir um carro, ele precisa ser construído a partir dos desenhos de engenharia que o descrevem. Um carro pronto tem um pedal acelerador real para fazer o carro ir mais rápido, mas mesmo isso não é suficiente – o carro não acelera sozinho (espera-se!), de modo que o motorista precisa pressionar o pedal para acelerá-lo.

Métodos e classesUsemos nosso exemplo do carro para introduzir alguns conceitos importantes de pro-gramação orientada a objetos. Executar uma tarefa em um programa exige um método. O método contém as instruções do programa que realmente executam suas tarefas. O método oculta essas instruções de seu usuário, assim como o pedal acelerador de um carro oculta do motorista os mecanismos que fazem o carro ir mais rápido. Uma unidade de programa, chamada classe, contém os métodos que executam as tarefas da classe. Por exemplo, uma classe que represente uma conta bancária poderia conter um método para depositar dinheiro em uma conta, outro para sacar dinheiro de uma conta e um terceiro para informar o saldo da conta. Uma classe é conceitualmente semelhante aos desenhos de engenharia de um carro, os quais contêm o projeto de um pedal acelerador, volante etc.

InstanciaçãoAssim como alguém precisa construir um carro a partir de seus desenhos de engenharia antes que você possa dirigi-lo, é preciso construir um objeto de uma classe antes que um programa possa executar as tarefas que os métodos da classe definem. O processo de fazer isso é chamado de instanciação. Um objeto, então, é uma instância de sua classe.

_Livro_Deitel_Android.indb 21_Livro_Deitel_Android.indb 21 11/07/12 10:1811/07/12 10:18

Page 22: Cap_01

22 Android para Programadores

ReutilizaçãoAssim como os desenhos de engenharia de um carro podem ser reutilizados muitas vezes para se construir muitos carros, você pode reutilizar uma classe muitas vezes para construir muitos objetos. A reutilização de classes já existentes ao se construir novas classes e progra-mas economiza tempo e trabalho. A reutilização também o ajuda a construir sistemas mais confiáveis e eficientes, pois as classes e componentes já existentes frequentemente passaram por extensivos testes, depuração e otimização de desempenho. Assim como a noção de partes intercambiáveis foi fundamental para a Revolução Industrial, as classes reutilizáveis são fundamentais para a revolução na área de software estimulada pela tecnologia de objetos.

Mensagens e chamadas de métodoQuando você dirige um carro, pressionar o acelerador envia uma mensagem para o carro executar uma tarefa – ou seja, ir mais rápido. Da mesma forma, você envia mensagens para um objeto. Cada mensagem é uma chamada de método que diz a um método do objeto para que execute sua tarefa. Por exemplo, um programa poderia chamar um método deposi-tar de um objeto de conta bancária em particular para que ele aumentasse o saldo da conta.

Atributos e variáveis de instânciaUm carro, além de ter recursos para cumprir tarefas, também tem atributos, como cor, número de portas, capacidade de combustível no tanque, velocidade atual e registro do total de quilômetros rodados (isto é, a leitura de seu odômetro). Assim como seus recur-sos, os atributos do carro são representados como parte de seu projeto nos diagramas de engenharia (os quais, por exemplo, incluem um odômetro e um medidor de combustí-vel). Quando você dirige um carro, esses atributos são transportados junto com o veículo. Todo carro mantém seus próprios atributos. Por exemplo, cada carro sabe a quantidade de combustível existente no tanque, mas não o quanto existe nos tanques de outros carros.

Da mesma forma, um objeto tem atributos que carrega consigo quando usado em um programa. Esses atributos são especificados como parte da classe do objeto. Por exem-plo, um objeto de conta bancária tem um atributo de saldo que representa a quantidade de dinheiro existente na conta. Cada objeto de conta bancária sabe o saldo da conta que representa, mas não os saldos das outras contas bancárias. Os atributos são especificados pelas variáveis de instância da classe.

EncapsulamentoAs classes encapsulam (isto é, empacotam) atributos e métodos nos objetos – os atri-butos e métodos de um objeto estão intimamente relacionados. Os objetos podem se comunicar entre si, mas normalmente não podem saber como outros objetos são imple-mentados – os detalhes da implementação ficam ocultos dentro dos próprios objetos. Essa ocultação de informações é fundamental para a boa engenharia de software.

HerançaUma nova classe de objetos pode ser criada rápida e convenientemente por meio de herança – a nova classe absorve as características de outra já existente, possivelmente personalizando-as e adicionando suas próprias características exclusivas. Em nossa analo-gia automobilística, um “conversível” certamente é um objeto da classe mais geral “auto-móvel”, mas mais especificamente, o teto pode ser levantado ou abaixado.

_Livro_Deitel_Android.indb 22_Livro_Deitel_Android.indb 22 11/07/12 10:1811/07/12 10:18

Page 23: Cap_01

Capítulo 1 Introdução ao Android 23

Análise e projeto orientados a objetosComo você vai criar o código de seus programas? Talvez, como muitos programadores, você simplesmente ligue o computador e comece a digitar. Essa estratégia pode funcionar para programas pequenos, mas e se você fosse solicitado a criar um sistema de software para controlar milhares de caixas eletrônicos para um grande banco? Ou então, suponha que você fosse solicitado a trabalhar em uma equipe com 1.000 desenvolvedores de soft-ware para construir o próximo sistema de controle de tráfego aéreo dos Estados Unidos. Para projetos tão grandes e complexos, você não deve simplesmente sentar-se e começar a escrever programas.

Para criar as melhores soluções, você deve seguir um processo de análise detalhado para determinar os requisitos de seu projeto (isto é, definir o que o sistema deve fazer) e desenvolver um projeto que os satisfaça (isto é, decidir como o sistema deve fazer isso). De maneira ideal, você passaria por esse processo e examinaria o projeto cuidadosamente (e teria seu projeto examinado por outros profissionais de software), antes de escrever qualquer código. Se esse processo envolve analisar e projetar seu sistema do ponto de vista orientado a objetos, ele é denominado processo de análise e projeto orientados a objetos (OOAD – Object-Oriented Analysis and Design). Linguagens como Java são orientadas a objetos. Programar em uma linguagem assim, o que é chamado de pro-gramação orientada a objetos (OOP), permite implementar um projeto orientado a objetos como um sistema funcional.

1.11 Teste do aplicativo Doodlz em um AVDNesta seção, você vai executar e interagir com seu primeiro aplicativo Android. O apli-cativo Doodlz permite que o usuário “pinte” na tela usando diferentes tamanhos e cores de pincel. Você vai construir esse aplicativo no Capítulo 9. Os passos a seguir mostram como importar o projeto do aplicativo para o Eclipse e como testar o aplicativo no AVD (Dispositivo Android Virtual) que você configurou na seção “Antes de começar”, após o Prefácio. Posteriormente nesta seção, vamos discutir também como se executa o aplicati-vo em um dispositivo Android real.

As capturas de tela nos passos a seguir (e por todo este livro) foram obtidas em um computador com Windows 7, Java SE 6, Eclipse 3.6.1, Android 2.2/2.3/3.0 e o Plugin ADT para Eclipse.

1. Verificando sua configuração. Confirme se você configurou seu computador cor-retamente para desenvolver aplicativos Android, lendo a seção “Antes de começar”.

2. Abrindo o Eclipse. Para iniciar o Eclipse, abra a pasta que contém o Eclipse em seu sistema e dê um clique duplo no ícone Eclipse ( ). Se essa é a primeira vez que você abre o Eclipse, a guia Welcome (Fig. 1.20) vai se abrir. Clique no botão Workbench para fechar essa guia e trocar para o modo de exibição de desenvolvimen-to de programas – formalmente, ele é chamado de perspectiva Java no Eclipse.

3. Abrindo a caixa de diálogo Import. Selecione File > Import… para abrir a caixa de diálogo Import (Fig. 1.21).

4. Importando o projeto do aplicativo Doodlz. Na caixa de diálogo Import, ex-panda o nó General e selecione Existing Projects into Workspace; em seguida, cli-que em Next > para ir ao passo Import Projects (Fig. 1.22). Certifique-se de que Select root directory esteja selecionado e, em seguida, clique no botão Browse…

_Livro_Deitel_Android.indb 23_Livro_Deitel_Android.indb 23 11/07/12 10:1811/07/12 10:18

Page 24: Cap_01

24 Android para Programadores

Na caixa de diálogo Browse For Folder (Fig. 1.23), localize a pasta Doodlz na pasta de exemplos do livro, selecione-a e clique em OK. Clique em Finish a fim de im-portar o projeto para o Eclipse. Agora o projeto aparece na janela Package Explorer (Fig. 1.24), no lado esquerdo da janela do Eclipse.

5. Ativando o aplicativo Doodlz. No Eclipse, selecione o projeto Doodlz na janela Package Explorer (Fig. 1.24) e, em seguida, selecione Run As > Android Application no menu suspenso do botão Run As ( ), na barra de ferramentas do IDE (Fig. 1.25).

WorkbenchslairotuTselpmaSweN s’tahWweivrevO

Fig. 1.20 | Guia Welcome to Eclipse no Eclipse.

Fig. 1.21 | Caixa de diálogo Import.

_Livro_Deitel_Android.indb 24_Livro_Deitel_Android.indb 24 11/07/12 10:1811/07/12 10:18

Page 25: Cap_01

Capítulo 1 Introdução ao Android 25

Isso executa o aplicativo Doodlz no AVD (Dispositivo Virtual Android) NexusS (Fig. 1.26) criado na seção “Antes de começar”. Se preferir testar o aplicativo em um AVD diferente, selecione Window > Android SDK and AVD Manager e, em seguida, selecione o AVD desejado e clique em Start…. Se vários AVDs estiverem em execução quando você ativar um aplicativo, a caixa de diálogo Android Device Chooser vai aparecer para permitir a escolha do AVD para executar o aplicativo. Discutiremos a caixa de diálogo Android Device Chooser posteriormente nesta seção.

Fig. 1.22 | Passo Import Projects da caixa de diálogo Import.

Fig. 1.23 | Caixa de diálogo Browser For Folder.

Fig. 1.24 | Janela Package Explorer no Eclipse.

_Livro_Deitel_Android.indb 25_Livro_Deitel_Android.indb 25 11/07/12 10:1811/07/12 10:18

Page 26: Cap_01

26 Android para Programadores

6. Explorando o AVD. O lado esquerdo do AVD mostra o aplicativo em execução. O lado direito (Fig. 1.27) contém vários botões que simulam os botões físicos e de tela de um dispositivo Android real e um teclado que simula o teclado físico ou de tela do dispositivo. Os botões físicos são os botões reais de um dispositivo. Os botões de tela são aqueles que aparecem na tela de toque do dispositivo. Os botões do AVD são usados para interagir com os aplicativos e com o sistema operacional Android do AVD. Quando o aplicativo é instalado em um dispositivo Android, você pode criar uma nova pintura arrastando seu dedo em qualquer lugar na tela de desenho. No AVD, você “toca” na tela usando o mouse.

Run AsBotão

Fig. 1.25 | Ativando o aplicativo Doodlz.

Fig. 1.26 | AVD (Dispositivo Android Virtual) com o aplicativo Doodlz em execução.

_Livro_Deitel_Android.indb 26_Livro_Deitel_Android.indb 26 11/07/12 10:1811/07/12 10:18

Page 27: Cap_01

Capítulo 1 Introdução ao Android 27

Botão Home (início)

Botão Volume Down(diminuir volume)

Botão Start Call(iniciar chamada)

Botão Menu

Teclado

Botão Camera(câmera)

Botão Power(ligar/desligar)Botão Volume Up(aumentar volume)Botão End Call(finalizar chamada)Botão Back (voltar)

Botão Search(pesquisar)

Botões denavegação e botãode seleção – Select –(central)

Fig. 1.27 | AVD (Dispositivo Android Virtual) com o aplicativo Doodlz em execução.

7. Exibindo as opções do aplicativo. Para exibir as opções do aplicativo, toque no botão Menu ( ) – em alguns dispositivos reais, esse botão aparece como barras horizontais paralelas ( ). Agora o aplicativo aparece como mostrado na Figura 1.28. As opções incluem Color, Line Width, Erase, Clear e Save Image. Tocar em Co-

lor exibe uma interface para mudar a cor da linha. Tocar em Line Width exibe uma interface para mudar a espessura da linha que vai ser desenhada. Tocar em Erase configura a cor de desenho como branca para que, quando você desenhar sobre áreas coloridas, a cor seja apagada. Tocar em Clear apaga o desenho inteiro. Tocar em Save Image salva a imagem na galeria (Gallery) de imagens do dispositivo. Você vai explorar cada uma dessas opções em breve.

8. Mudando a cor do pincel para vermelha. Para mudar a cor do pincel, primei-ramente toque no item Color do menu a fim de exibir a interface para alterar a cor (Fig. 1.29(a)). As cores são definidas no esquema de cores RGBA, no qual os componentes vermelho, verde, azul e alfa são especificados por valores inteiros no intervalo 0 a 255. A interface consiste nas barras de escolha (SeekBars) Red, Green,

Blue e Alpha, que permitem selecionar a quantidade de vermelho, verde, azul e transparência da cor de desenho. Você arrasta as barras de escolha para mudar a cor. Quando você faz isso, o aplicativo exibe a nova cor. Selecione uma cor vermelha agora, arrastando a barra de escolha Red para a direita, como na Figura 1.29(a). Toque no botão Done para voltar à área de desenho. Arraste seu “dedo” (isto é, o mouse) pela tela para desenhar as pétalas da flor (Fig. 1.29(b)).

9. Mudando a cor do pincel para verde-escuro. Mude a cor do desenho novamente, tocando no botão Menu ( ) do AVD e, então, tocando em Color. Selecione um tom escuro de verde arrastando a barra de escolha Green para a direita e certificando-se de que as barras de escolha Red e Blue estejam na extremidade esquerda (Fig. 1.30(a)).

_Livro_Deitel_Android.indb 27_Livro_Deitel_Android.indb 27 11/07/12 10:1811/07/12 10:18

Page 28: Cap_01

28 Android para Programadores

10. Mudando a largura da linha. Para mudar a largura da linha, toque no botão Menu ( ) e, em seguida, toque em Line Width. Arraste a barra de escolha da largura de linha para a direita, a fim de tornar a linha mais grossa (Fig. 1.30(b)). Toque no botão Done a fim de voltar à área de desenho. Desenhe o caule e as folhas da flor. Repita os passos 9 e 10 para uma cor verde mais clara e uma linha mais fina e, em seguida, desenhe a grama. (Fig. 1.31).

Área dedesenho

Opções de menu doaplicativo Doodlz

Fig. 1.28 | Opções de menu do aplicativo Doodlz.

b) Desenhando as pétalas da flor em vermelho

Botão Done

Barras de escolhapara mudar a cor

Cor atual (vermelha)

a) Selecionando a cor vermelha como a cor do desenho

Fig. 1.29 | Mudando a cor do desenho para vermelha e desenhando pétalas de flor.

_Livro_Deitel_Android.indb 28_Livro_Deitel_Android.indb 28 11/07/12 10:1811/07/12 10:18

Page 29: Cap_01

Capítulo 1 Introdução ao Android 29

11. Finalizando o desenho. Use as instruções dos passos 9 e 10 a fim de mudar a cor do desenho para azul (Fig. 1.32(a)) e selecione uma linha mais estreita (Fig. 1.32(b)). Volte para a área de desenho e desenhe os pingos de chuva (Fig. 1.33).

a) Selecionando verde-escuro como a cor do desenho b) Selecionando uma linha mais grossa

Barra de pesquisapara controlar alargura da linha

Exibe a linha nacor de desenho

(verde) ea largura delinha atuais

Fig. 1.30 | Mudando a cor e a largura da linha.

Desenhando o caule, as folhas e a grama

Fig. 1.31 | Desenhando o caule e a grama nas novas cor e largura de linha.

_Livro_Deitel_Android.indb 29_Livro_Deitel_Android.indb 29 11/07/12 10:1811/07/12 10:18

Page 30: Cap_01

30 Android para Programadores

12. Salvando a imagem. Se quiser, você pode salvar a imagem na galeria tocando no botão Menu ( ) e, em seguida, tocando em Save Image. Então, você pode ver essa e outras imagens armazenadas no dispositivo abrindo o aplicativo Gallery.

13. Retornando à tela inicial. Você pode voltar à tela inicial do AVD clicando no botão da casa ( ) no AVD.

a) Selecionando azul como a cor do desenho b) Selecionando uma linha mais fina

Fig. 1.32 | Mudando a cor e a largura da linha.

c)

Fig. 1.33 | Desenhando a chuva nas novas cor e largura de linha.

_Livro_Deitel_Android.indb 30_Livro_Deitel_Android.indb 30 11/07/12 10:1811/07/12 10:18

Page 31: Cap_01

Capítulo 1 Introdução ao Android 31

Executando o aplicativo Doodlz em um dispositivo AndroidCaso você possua um dispositivo Android, você pode executar um aplicativo nele facil-mente para propósitos de teste.

1. Primeiramente, você deve habilitar a depuração no dispositivo. Para isso, acesse o aplicativo Settings do dispositivo e, em seguida, selecione Applications > Develop-

ment e certifique-se de que USB debugging esteja marcado. 2. Em seguida, conecte o dispositivo em seu computador por meio de um cabo USB

– normalmente, ele já vem com o dispositivo quando você o adquire. 3. No Eclipse, selecione o projeto Doodlz na janela Package Explorer e, em seguida,

selecione Run As > Android Application no menu suspenso do botão Run As ( ), na barra de ferramentas do IDE (Fig. 1.25).

Se você não tiver nenhum AVD aberto, mas tiver um dispositivo Android co-nectado, o IDE vai instalar o aplicativo em seu dispositivo e executá-lo automatica-mente. Caso você tenha um ou mais AVDs abertos e/ou dispositivos conectados, a caixa de diálogo Android Device Chooser (Fig. 1.34) vai aparecer para que o AVD ou dispositivo no qual o aplicativo que vai ser instalado e executado possa ser seleciona-do. Neste caso, primeiramente iniciamos dois AVDs e conectamos um dispositivo real, de modo que existem três “dispositivos” nos quais poderíamos executar o aplica-tivo. Configuramos vários AVDs para que pudéssemos simular dispositivos Android reais com diferentes versões do sistema operacional Android e diferentes tamanhos de tela.

Na seção Choose a running Android device da Figura 1.34, a caixa de diálogo mostra que temos um dispositivo real conectado no computador (representado pela segunda linha na lista de dispositivos) e três AVDs. Cada AVD tem um nome (AVD Name) que escolhemos (NexusS e MotorolaXoom). Selecione o dispositivo ou AVD que você deseja usar e, em seguida, clique em OK para instalar e executar o aplicativo nesse dispositivo

Fig. 1.34 | Caixa de diálogo Android Device Chooser.

_Livro_Deitel_Android.indb 31_Livro_Deitel_Android.indb 31 11/07/12 10:1811/07/12 10:18

Page 32: Cap_01

32 Android para Programadores

ou AVD. Caso você tenha definido outros AVDs e eles não estejam sendo executados no momento, pode usar a metade inferior dessa caixa de diálogo para selecionar e ativar um desses AVDs.

Ao construir aplicativos para distribuição no Android Market, você deve testá--los no máximo de dispositivos reais que puder. Lembre-se de que alguns recursos podem ser testados somente em dispositivos reais. Caso você não tenha muitos dis-positivos reais disponíveis, cogite criar AVDs que simulem os vários dispositivos nos quais gostaria de executar seu aplicativo. Ao configurar cada AVD para simular um dispositivo real específico, pesquise as especificações do dispositivo real online e con-figure o AVD de modo correspondente. Além disso, você pode modificar o arquivo config.ini do AVD, conforme descrito na seção Setting hardware emulation options, no endereço

developer.android.com/guide/developing/tools/avd.html

Esse arquivo contém opções que não podem ser configuradas por meio do Plugin ADT no Eclipse. Modificando-se essas opções é possível fazê-las corresponder mais pre-cisamente à configuração de hardware de um dispositivo real.

1.12 Recursos da DeitelO site www.deitel.com fornece mais de 100 Resource Centers sobre vários assuntos, in-cluindo linguagens de programação, desenvolvimento de software, Web 2.0, comércio eletrônico e projetos de código-fonte aberto. Os Resource Centers evoluem da pesquisa que fazemos para apoiar nossas publicações e empreendimentos comerciais. Encontra-mos muitos recursos excepcionais online, incluindo tutoriais, documentação, down-loads de software, artigos, blogs, podcasts, vídeos, exemplos de código, livros, e-books e muito mais – a maior parte, de graça. Anunciamos nossos Resource Centers mais recentes em nosso boletim, o Deitel®Buzz Online, no Facebook e no Twitter. A Figura 1.35 fornece uma lista dos recursos da Deitel que podem ajudá-lo nos primeiros passos do desenvolvimento de aplicativos Android.

Recurso para Android da Deitel URL

Página deste livro www.deitel.com/books/AndroidFP/

Android Resource Center www.deitel.com/android/

Android Best Practices Resource Center www.deitel.com/androidbestpractices/

Java Resource Center www.deitel.com/java/

Eclipse Resource Center www.deitel.com/Eclipse/

SQLite 3 Resource Center www.deitel.com/SQLite3/

Deitel Resource Centers homepage www.deitel.com/ResourceCenters.html

Deitel on Facebook www.deitel.com/DeitelFan/

Deitel no Twitter @deitel

Boletim por email Deitel® Buzz Online www.deitel.com/newsletter/subscribe.html

Fig. 1.35 | Recursos para Android da Deitel.

_Livro_Deitel_Android.indb 32_Livro_Deitel_Android.indb 32 11/07/12 10:1811/07/12 10:18

Page 33: Cap_01

Capítulo 1 Introdução ao Android 33

1.13 Recursos para desenvolvimento com AndroidA Figura 1.36 é uma lista de recursos para desenvolvimento com Android. A Figura 1.37 lista vários vídeos para desenvolvedores Android disponíveis no endereço developer.an-droid.com. Para recursos adicionais, visite o Android Resource Center, em www.deitel.com/android.

Dicas e recursos para desenvolvimento com Android URL

Canal no YouTube para desenvolvedores de Android

www.youtube.com/user/androiddevelopers

Exemplos de aplicativos Android do Google

code.google.com/p/apps-for-android/

Artigo da O’Reilly, “Ten Tips for Android Application Development”

answers.oreilly.com/topic/862-ten-tips-for-android-application-development/

Site Bright Hub™ para dicas e guias práticos sobre programação com Android

www.brighthub.com/mobile/google-android.aspx

O artigo, “10 User Experience Tips for Successful Android Apps”

www.androidtapp.com/10-user-experience-tips-for-successful-android-apps/

Dicas rápidas para desenvolvimento com Android

www.droidnova.com/

O tutorial “Working with XML on Android: Build Java applications for mobile devices”, de Michael Galpin, arquiteto de software da eBay

www.ibm.com/developerworks/opensource/library/x-android/index.html

O blog Android Developers android-developers.blogspot.com/

O Sprint Application Developers Program

developer.sprint.com/site/global/develop/mobile_platforms/android/android.jsp

O site para desenvolvedor de T-Mobile Android

developer.t-mobile.com/site/global/resources/partner_hubs/android/p_android.jsp

Developer Center do HTC para desenvolvimento com Android e Windows Mobile

developer.htc.com/

O site da Motorola para desenvolvimento com Android

developer.motorola.com/

Fig. 1.36 | Dicas e recursos para desenvolvimento com Android.

Vídeo URL

Androidology, Part 1 of 3: Architecture Overview developer.android.com/videos/index.html#v=QBGfUs9mQYY

Androidology, Part 2 of 3: Application Lifecycle developer.android.com/videos/index.html#v=fL6gSd4ugSI

Androidology, Part 3 of 3: APIs developer.android.com/videos/index.html#v=MPukbH6D-lY

Fig. 1.37 | Vídeos para desenvolvedor de Android. (continua)

_Livro_Deitel_Android.indb 33_Livro_Deitel_Android.indb 33 11/07/12 10:1811/07/12 10:18

Page 34: Cap_01

34 Android para Programadores

1.14 Para finalizarEste capítulo apresentou uma breve história do Android e examinou sua funcionalida-de. Discutiu recursos do sistema operacional Android 2.2, 2.3 e 3.0. Forneceu links para parte da documentação online importante e para grupos de discussão e fóruns que você pode usar para se conectar à comunidade de desenvolvedores. Discutiu o Android Market e forneceu links para alguns sites de análise e recomendação de aplicativos co-nhecidos. Você aprendeu sobre os gestos no Android e como fazer cada um deles em um dispositivo Android e no emulador. Conheceu os pacotes Java, Android e Google que permitem usar as funcionalidades de hardware e software necessárias para construir seus aplicativos Android. Você vai usar muitos desses pacotes neste livro. Você viu também a programação em Java e o SDK do Android e passou por uma recapitulação rápida sobre os conceitos básicos da tecnologia de objetos, incluindo classes, objetos, atributos e com-portamentos. Por fim, testou o aplicativo Doodlz no emulador do Android.

No Capítulo 2, vamos discutir o lado comercial do desenvolvimento de aplicativos Android. Você aprenderá a preparar seus aplicativos para enviar ao Android Market e verá dicas para determinar o preço e comercializar seu aplicativo. Verá também como usar os recursos do Android Market para monitorar as vendas de aplicativo, os pagamen-tos e muito mais.

Vídeo URL

Android Developer Soapbox: Easy for Java Developers, Build Desktop Widgets

developer.android.com/videos/index.html#v=FTAxE6SIWeI

A Beginner’s Guide to Android developer.android.com/videos/index.html#v=yqCj83leYRE

The World of List View developer.android.com/videos/index.html#v=wDBM6wVEO70

Android UI Design Patterns developer.android.com/videos/index.html#v=M1ZBjlCRfz0

Writing Zippy Android Apps developer.android.com/videos/index.html#v=c4znvD-7VDA

Casting a Wide Net for All Android Devices developer.android.com/videos/index.html#v=zNmohaZYvPw

Building Push Applications for Android developer.android.com/videos/index.html#v=PLM4LajwDVc

Fig. 1.37 | Vídeos para desenvolvedor de Android.

_Livro_Deitel_Android.indb 34_Livro_Deitel_Android.indb 34 11/07/12 10:1811/07/12 10:18