1 Introdução ao Android 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 tecnologia 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 desenvolvimento 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. _Livro_Deitel_Android.indb 1 11/07/12 10:18 Android para Programadores Resumo 2 1.8 Pacotes 1.1 Introdução 1.2 Visão geral do Android 1.9 O SDK do Android 1.3 Android 2.2 (Froyo) 1.4 Android 2.3 (Gingerbread) 1.10 Tecnologia de objetos: uma rápida recapitulação 1.5 Android 3.0 (Honeycomb) 1.11 Teste do aplicativo Doodlz em um AVD 1.6 Android Ice Cream Sandwich 1.12 Recursos da Deitel 1.7 Baixando aplicativos do Android Market 1.14 Para finalizar 1.13 Recursos para desenvolvimento com Android 1.1 Introdução Bem-vindo ao desenvolvimento de aplicativos Android! Esperamos que você considere o trabalho com este livro uma experiência instrutiva, desafiadora, divertida e recompensadora. 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 tecnologia 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 Eclipse. 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 endereço www.bookman.com.br. A Figura 1.1 lista a documentação online importante sobre o Android. Título URL Android Developer Guide Using the Android Emulator Android Package Index Android Class Index User Interface Guidelines Data Backup developer.android.com/guide/index.html developer.android.com/guide/developing/devices/emulator.html developer.android.com/reference/packages.html developer.android.com/reference/classes.html developer.android.com/guide/practices/ui_guidelines/index.html developer.android.com/guide/topics/data/backup.html Fig. 1.1 | Documentação online importante para desenvolvedores Android. (continua) _Livro_Deitel_Android.indb 2 11/07/12 10:18 Capítulo 1 Introdução ao Android Título URL Security and Permissions developer.android.com/guide/topics/security/ security.html Managing Projects from Eclipse with ADT Debugging Tasks developer.android.com/guide/developing/projects/ projects-eclipse.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-distributionagreement.html 3 developer.android.com/guide/developing/debugtasks.html Fig. 1.1 | Documentação online importante para desenvolvedores Android. Leia a seção “Antes de começar” para obter informações sobre como baixar o software 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 market.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 publicaçã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 Android Discuss Assinatura Descrição Assine usando Google Groups: Um grupo de discussão geral sobre o Android, onde você pode obter respostas para suas perguntas sobre desenvolvimento de aplicativos. 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. android-discuss Assine via email: android-discuss-subscribe@ googlegroups.com Stack Overflow stackoverflow.com/questions/tagged/ android Fig. 1.2 | Grupos de discussão e fóruns sobre Android. (continua) _Livro_Deitel_Android.indb 3 11/07/12 10:18 4 Android para Programadores Título Assinatura Descrição Android Developers Assine usando Google Groups: 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. android-developers Assine via email: android-developerssubscribe@googlegroups. com Android Market Help Forum Android Forums www.google.com/support/ forum/p/Android+market www.androidforums.com/ Faça perguntas e encontre respostas a respeito do Android Market. 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. 1.2 Visão geral do Android A 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 aumentaram 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.openhandsetalliance.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 aberto Uma 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 aberto 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. _Livro_Deitel_Android.indb 4 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/. 11/07/12 10:18 Capítulo 1 Introdução ao Android Descrição URL Ampla lista de aplicativos de código-fonte aberto, organizada por categoria (por exemplo, games, utilitários etc.). Exemplos de aplicativos do Google para a plataforma Android. 30 exemplos de aplicativos demonstrando vários recursos do Android. Lista 12 aplicativos Android de código-fonte aberto. Fornece links para uma seleção de games Android de código-fonte aberto. en.wikipedia.org/wiki/ List_of_open_source_Android_applications 5 code.google.com/p/apps-for-android/ developer.android.com/resources/ browser.html?tag=sample www.techdrivein.com/2010/11/12-open-sourceandroid-applications.html www.techdrivein.com/2010/12/15-nice-andsimple-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 Philosophy and Goals Licenses FAQs source.android.com/source/download.html source.android.com/about/philosophy.html source.android.com/source/licenses.html source.android.com/faqs.html#aosp Fig. 1.4 | Recursos de código-fonte e documentação sobre o Android. Java Os 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, fornecer 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 experientes 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á disponí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 aplicativos 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 _Livro_Deitel_Android.indb 5 code.google.com/events/io/2010/. 11/07/12 10:18 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 multitouch Muitos 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 (alguns 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 incorporados Os 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 Android Cada 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. Tocar rapidamente na tela duas vezes. Tocar na tela e manter o dedo na posição. Tocar e arrastar o dedo pela tela. Tocar e mover rapidamente o dedo na tela, na direção do movimento desejado. Abrir um aplicativo, “pressionar” um botão ou um item de menu. Ampliar e então reduzir imagens, Google Maps e páginas Web. Abrir um menu de contexto ou pegar ícones de aplicativo ou objetos para mover arrastando. Mover objetos ou ícones, ou rolar precisamente uma página Web ou lista. Rolar por um ListView (por exemplo, Contatos) ou por um DatePicker ou um TimePicker (por exemplo, para selecionar datas e horas no Calendar). Ampliar e então reduzir a tela (por exemplo, ampliando texto e imagens). Toque duplo rápido (double tap) Pressionamento longo (long press) Arrastamento (drag) Movimento rápido (fling) Zoom de pinça (pinch zoom) Usando dois dedos, tocar na tela e juntá-los ou afastá-los. Fig. 1.5 | Gestos no Android. _Livro_Deitel_Android.indb 6 11/07/12 10:18 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 Android 2.3 (Gingerbread) e o Android 3.0 (Honeycomb). Recurso Descrição Memória e desempenho melhorados Os upgrades incluem: Descoberta automática Calendário Pesquisa com GAL (Global Address Lists) Senhas Limpeza Remota Contatos e contas • 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. 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. Os usuários podem sincronizar o Calendário do Exchange com o aplicativo Calendar. 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. 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. 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.] 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 11/07/12 10:18 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. 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. O dicionário mais sofisticado aprende a partir das palavras usadas pelo usuário e inclui os contatos do usuário nas grafias sugeridas. 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.] 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.** 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. 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. 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 à Internet Teclado virtual do Android Dicionário aprimorado Navegador Teclado para vários idiomas Framework de mídia Bluetooth Tethering e suporte para ponto de acesso Wi-Fi www.engadget.com/2010/05/13/android-2-2-froyo-toinclude-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 11/07/12 10:18 Capítulo 1 Introdução ao Android 9 Novos recursos para desenvolvedores no Android 2.2 O serviço Android Cloud to Device Messaging (C2DM) permite aos desenvolvedores de aplicativos enviar dados de seus servidores para seus aplicativos instalados em dispositivos 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 funcionalidade 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 complementares 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 localizações de apartamentos para alugar em determinada área. Usamos os Web services do WeatherBug no Capítulo 14. API Descrição Aplicativos em armazenamento externo Câmera e filmadora Os aplicativos podem ser armazenados em um dispositivo de memória externa, em vez de apenas na memória interna do dispositivo Android. 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. 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. Cria aplicativos de administrador para controlar recursos de segurança do dispositivo (por exemplo, força da senha). 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). 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. 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. Backup de dados Gerenciamento de política do dispositivo Imagens gráficas Framework de mídia Framework de interface do usuário Fig. 1.7 | APIs do Android 2.2 (developer.android.com/sdk/android-2.2-highlights.html). 5 _Livro_Deitel_Android.indb 9 code.google.com/android/c2dm/. 11/07/12 10:18 10 Android para Programadores Fonte de Web services Como é usada Google Maps Facebook Foursquare LinkedIn YouTube Twitter Groupon Netflix eBay Wikipedia PayPal Last.fm Amazon eCommerce Salesforce.com Serviços de mapas Rede social Check-in móvel Rede social para negócios Busca de vídeo Microblog Comércio social Aluguel de filmes Leilões pela Internet Enciclopédia colaborativa Pagamentos Rádio na Internet Compra de livros e muito mais Gerenciamento de relacionamento com o cliente (CRM) Telefonia pela Internet Busca Compartilhamento de fotos Avaliação de imóveis Busca Meteorologia Skype Microsoft Bing Flickr Zillow Yahoo Search WeatherBug Fig. 1.8 | Alguns Web services populares (www.programmableweb.com/apis/directory/ 1?sort=mashups). A Figura 1.9 lista diretórios onde você vai encontrar informações sobre muitos dos Web services mais populares. Diretório URL ProgrammableWeb Webmashup.com Webapi.org Google Code API Directory www.programmableweb.com APIfinder www.apifinder.com/ www.webmashup.com/ www.webapi.org/webapi-directory/ code.google.com/apis/gdata/docs/directory. html 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 refinamentos 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. _Livro_Deitel_Android.indb 10 11/07/12 10:18 Capítulo 1 Introdução ao Android 11 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. 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”. A comunicação em campo 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. 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. Os aplicativos podem acessar câmeras traseiras e frontais. 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. Os usuários podem acessar arquivos baixados a partir de email, do navegador etc., por intermédio do aplicativo Downloads. Atalho Manage Applications Comunicação em campo próximo Funcionalidade Copiar e Colar aprimorada Câmera Chamada pela Internet Aplicativo Downloads Fig. 1.10 | Recursos de usuário do Android 2.3 (developer.android.com/sdk/android-2.3-highlights.html). 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. _Livro_Deitel_Android.indb 11 11/07/12 10:18 12 Android para Programadores 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. 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. 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. Suporte interno para codificação AAC (Advanced Audio Coding – sucessora do MP3) e AMRWB (Adaptive MultiRate Wideband) para capturar áudio de alta qualidade. Suporte interno para compactação de vídeo aberta VP8, com o formato de contêiner aberto WebM. Use a API Camera aprimorada para acessar câmeras traseiras e frontais em um dispositivo, determinar seus recursos e abrir a câmera apropriada. API de comunicação em campo próximo API de efeitos de áudio Novos formatos de áudio Novos formatos de vídeo API Camera Fig. 1.11 | Recursos de desenvolvedor do Android 2.3 (developer.android.com/sdk/android-2.3-highlights.html). 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 teclado 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). Recurso Descrição Interface holográfica do usuário Tela inicial que pode ser personalizada Atraente interface de usuário de aparência tridimensional. 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 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. 11/07/12 10:18 Capítulo 1 Introdução ao Android 13 Recurso Descrição Teclado redesenhado Edição melhorada Permite mais precisão e eficiência na digitação. Com a nova interface do usuário, é mais fácil selecionar, copiar e colar texto. 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. 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. 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. Conecte seu dispositivo Android em um teclado usando USB ou Bluetooth. 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. Conecte uma rede Wi-Fi ou 3G em seu computador ou outros dispositivos usando seu dispositivo Android como modem. 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. 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. 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. 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. Veja álbuns no modo tela cheia, com imagens em miniatura para ver outras fotos do álbum. Barra de sistema Barra de ação Multitarefa melhorada Opções de conectividade Suporte para PTP (Photo Transfer Protocol) e MTP (Media Transfer Protocol) Tethering com Bluetooth Navegador Câmera Contatos Email Galeria 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 11/07/12 10:18 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. Adicione novos layouts e recursos de dispositivos de tela grande em seus aplicativos já existentes, projetados para dispositivos de tela pequena. 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. 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. Agora, cada aplicativo tem sua própria barra de ação persistente, fornecendo aos usuários opções de navegação etc. 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. Adicione ícones grandes e pequenos, títulos e flags de prioridade nas notificações de seus aplicativos, usando a classe builder. Permite aos usuários copiar e colar dados entre vários aplicativos. Use o framework DragEvent para adicionar recursos de arrastar e soltar em um aplicativo. Permite aos usuários selecionar múltiplos itens de uma lista ou grade. Permite aos usuários transferir quaisquer tipos de arquivos de mídia facilmente entre dispositivos e para um computador host. Execute o Android 3.x em arquiteturas de processador com um ou vários núcleos para melhorar o desempenho. 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. 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). Adição de layouts de dispositivos de tela grande nos aplicativos existentes Fragmentos de atividade Interface do usuário nova e atualizada e widgets da tela inicial Barra de ação Aprimoramentos para jogos Recursos de notificações adicionais Área de transferência Arrastar e soltar Seleção múltipla MTP/PTP (Media/Picture Transfer Protocol) Suporte para arquitetura de processador multinúcleo HLS (HTTP Live Streaming) Mecanismo gráfico Renderscript 3D 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 11/07/12 10:18 Capítulo 1 Introdução ao Android 15 Recurso Descrição Elementos gráficos bidimensionais com aceleração por hardware Novo framework de animação Bluetooth A2DP e HSP O novo renderizador OpenGL aumenta o desempenho de operações gráficas comuns. Framework DRM (Digital Rights Management) Novas políticas para aplicativos de administração de dispositivo Anima elementos ou objetos da interface do usuário facilmente. 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. API que permite gerenciar conteúdo protegido em seus aplicativos. 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). 1.6 Android Ice Cream Sandwich O 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 Android. Isso permite a incorporação de recursos do Honeycomb – como a interface holográ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 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. 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). 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. 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. Monitoramento da cabeça Operador de câmera virtual Framework Android@Home Fig. 1.14 | Alguns recursos do Android Ice Cream Sandwich. _Livro_Deitel_Android.indb 15 11/07/12 10:18 16 Android para Programadores 1.7 Baixando aplicativos do Android Market Quando 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 Market 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 consulte 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 rendimentos. 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, conhecida 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 Google Voice, Skype mobile™, Wi-Fi Locator, Easy Face Melter, Fingerprint Scanner, Fandango® Movies Mint.com Personal Finance, PayPal, Debt Payoff Planner NESoid, Droid Breakout, Raging Thunder 2 Lite, Whac ‘em! Enjoy Sudoku, Spin Cube Lite, Ultimate Simpson Puzzle Texas Hold’em Poker, Tarot Cards, Chessmaster™ City Mayor, LOL Libs, Paper Toss, SuperYatzy Free Edition Fast Food Calorie Counter, CardioTrainer, StopSmoking Zillow Real Estate, Epicurious Recipe App, Family Locator Pandora Radio, Shazam, Last.fm, iSyncr, Camera Illusion The Weather Channel, CNN, NYTimes, FeedR News Reader Adobe® Reader®, Documents To Go 2.0 Main App Google Sky Map, Dictionary.com, Wikidroid for Wikipedia Gluten Free, Amazon.com, Barcode Scanner, Pkt Auctions eBay Facebook®, Twitter for Android, MySpace, Bump, AIM NFL Mobile, Nascar Mobile, Google Scoreboard Pixel Zombies Live Wallpaper, Aquarium Live Wallpaper Compass, Droidlight LED Flashlight, AppAlarm Pro Google Earth, Yelp®, Urbanspoon, WHERE, XE Currency Screen Crack, Bubbles, CouponMap, SnowGlobe Translate Tool, Security Guarder, Car Locator Bluetooth Plugin Comunicação Entretenimento Finanças Jogos: aventura e ação Jogos: raciocínio Jogos: cartas e cassino Jogos: casual Saúde Estilo de vida Multimídia Notícias e clima Produtividade Referência Compras Social Esportes Temas Ferramentas Viagens Demo Bibliotecas de software Fig. 1.15 | Alguns aplicativos Android populares no Android Market. _Livro_Deitel_Android.indb 16 11/07/12 10:18 Capítulo 1 Nome URL AppBrain AndroidLib Android Tapp™ Appolicious™ AndroidZoom doubleTwist® mplayit™ www.appbrain.com/ Introdução ao Android 17 www.androlib.com/ www.androidtapp.com/ www.androidapps.com/ www.androidzoom.com/ www.doubletwist.com/apps/ mplayit.com/#homepage Fig. 1.16 | Sites de análise e recomendação de aplicativos Android. 1.8 Pacotes O Android usa um conjunto de pacotes, que são grupos nomeados de classes predefinidas 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. Pacote Descrição android.app Inclui classes de alto nível no modelo de aplicativos Android. (Aplicativo Tip Calculator do Capítulo 4.) Serviços de sistemas operacionais. (Aplicativo Tip Calculator do Capítulo 4.) Renderização e monitoramento de texto no dispositivo. (Aplicativo Tip Calculator do Capítulo 4.) Classes de interface do usuário para widgets. (Aplicativo Tip Calculator do Capítulo 4.) Classes de acesso à rede. (Aplicativo Favorite Twitter® Searches do Capítulo 5.) Classes de interface do usuário para layout e interações do usuário. (Aplicativo Favorite Twitter® Searches do Capítulo 5.) Streaming, serialização e acesso ao sistema de arquivo de recursos de entrada e saída. (Aplicativo Flag Quiz do Capítulo 6.) Classes utilitárias. (Aplicativo Favorite Twitter® Searches do Capítulo 5.) 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.) Classes para elementos somente para exibição (por exemplo, gradientes etc.). (Aplicativo Flag Quiz Game do Capítulo 6.) android.os android.text android.widget android.net android.view java.io java.util android.content.res android.graphics. drawable 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 11/07/12 10:18 18 Android para Programadores Pacote Descrição android.media Classes para manipular interfaces de áudio e vídeo. (Aplicativo Spotz Game do Capítulo 8.) Métodos utilitários e utilitários XML. (Aplicativo Cannon Game do Capítulo 7.) Acesso e publicação de dados em um dispositivo. (Aplicativo Doodlz do Capítulo 9.) Suporte para hardware de dispositivo. (Aplicativo Doodlz do Capítulo 9 e aplicativo Enhanced Slideshow do Capítulo 13.) Acesso a provedores de conteúdo Android. (Aplicativo Doodlz do Capítulo 9.) Manipulação de dados retornados pelo provedor de conteúdo. (Aplicativo Address Book do Capítulo 10.) Gerenciamento de banco de dados SQLite para bancos de dados privados. (Aplicativo Address Book do Capítulo 10.) Ferramentas gráficas usadas para desenhar na tela. (Aplicativo Route Tracker do Capítulo 11.) Serviços baseados em localização. (Aplicativo Route Tracker do Capítulo 11.) Usado no aplicativo Route Tracker do Capítulo 11. Usado no aplicativo Weather Viewer do Capítulo 14. 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.) Processamento de documentos XML. (Aplicativo Weather Viewer do Capítulo 14.) SAX API (Simple API for XML) para ler dados de documentos XML. (Aplicativo Weather Viewer do Capítulo 14.) Classes de reconhecimento de voz. (Aplicativo Pizza Ordering do Capítulo 15.) Classes de leitura de texto. (Aplicativo Pizza Ordering do Capítulo 15.) 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.) Ferramentas gráficas OpenGL. (Aplicativo 3D Art do Capítulo 18.) Buffers para manipular dados. (Aplicativo 3D Art do Capítulo 18.) APIs Khronos EGL para elementos gráficos em 3D. (Aplicativo 3D Art do Capítulo 18.) Interfaces Khronos OpenGL® ES. (Aplicativo 3D Art do Capítulo 18.) android.util android.content android.hardware android.provider android.database android.database.sqlite android.graphics android.location com.google.android.maps android.appwidget java.net javax.xml.parsers org.xml.sax android.speech android.speech.tts android.telephony android.opengl java.nio javax.microedition. khronos.egl javax.microedition. khronos.opengles Fig. 1.17 | Pacotes Android, Java e Google usados neste livro, listados com o capítulo em que aparecem pela primeira vez. 1.9 O SDK do Android O SDK (Software Development Kit) do Android fornece as ferramentas necessárias para construir aplicativos Android. Ele está disponível gratuitamente no site Android Developers. 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. _Livro_Deitel_Android.indb 18 11/07/12 10:18 Capítulo 1 Introdução ao Android 19 IDE Eclipse O Eclipse é o ambiente de desenvolvimento integrado (IDE – Integrated Development Environment) recomendado para desenvolvimento com Android, embora os desenvolvedores também possam usar um editor de texto e ferramentas de linha de comando para criar aplicativos 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 Eclipse O Plugin ADT (Android Development Tools) para Eclipse – uma extensão para o IDE Eclipse – permite criar, executar e depurar aplicativos Android, exportá-los para distribuiçã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 componentes da interface gráfica do usuário podem ser arrastados e soltos no lugar para formar interfaces, sem nenhuma codificação. Você vai aprender mais sobre o ADT no Capítulo 3, “Aplicativo Welcome”. O emulador do Android O 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 emulador 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 Android 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 leituras 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 dispositivo 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 11/07/12 10:18 20 Android para Programadores Gesto com os dedos Toque rápido (tap) Ação do emulador 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) Arrastamento (drag) Pressionamento forte (swipe) Movimento rápido (fling) Gesto de pinça (pinch) Clicar e manter o botão do mouse pressionado. Clicar, manter o botão do mouse pressionado e arrastar. Apresentado no aplicativo Cannon Game, no Capítulo 7. 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. 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. 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 Botão de chamada/discagem Câmera Botão de fim de chamada Home Menu (tecla programável esquerda) Botão de energia Pesquisar * (tecla programável direita) Girar para a esquerda Girar para a direita Ligar/desligar rede celular Botão de aumento de volume Botão de diminuição de volume Esc F3 Ctrl-5_TECLADO NUMÉRICO, Ctrl-F3 F4 Botão Home F2 ou botão Page Up F7 F5 Shift-F2 ou botão Page Down 7_TECLADO NUMÉRICO, Ctrl-F11 9_TECLADO NUMÉRICO, Ctrl-F12 F8 SINAL DE ADIÇÃO_TECLADO NUMÉRICO, Ctrl-F5 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). 1.10 Tecnologia de objetos: uma breve recapitulação Construir 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á aumentando. Os objetos ou, mais precisamente – conforme veremos no Capítulo 3 –, as classes _Livro_Deitel_Android.indb 20 11/07/12 10:18 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 populares, 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 objeto Para 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, antes 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 mecanismos 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 classes Usemos nosso exemplo do carro para introduzir alguns conceitos importantes de programaçã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ção Assim 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 11/07/12 10:18 22 Android para Programadores Reutilização Assim 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 programas 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étodo Quando 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 depositar de um objeto de conta bancária em particular para que ele aumentasse o saldo da conta. Atributos e variáveis de instância Um 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 recursos, 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 exemplo, 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. Encapsulamento As classes encapsulam (isto é, empacotam) atributos e métodos nos objetos – os atributos 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 implementados – 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ça Uma 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 analogia automobilística, um “conversível” certamente é um objeto da classe mais geral “automóvel”, mas mais especificamente, o teto pode ser levantado ou abaixado. _Livro_Deitel_Android.indb 22 11/07/12 10:18 Capítulo 1 Introdução ao Android 23 Análise e projeto orientados a objetos Como 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 software 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 programação orientada a objetos (OOP), permite implementar um projeto orientado a objetos como um sistema funcional. 1.11 Teste do aplicativo Doodlz em um AVD Nesta seção, você vai executar e interagir com seu primeiro aplicativo Android. O aplicativo 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 aplicativo 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 corretamente 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 desenvolvimento 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, expanda o nó General e selecione Existing Projects into Workspace; em seguida, clique 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 11/07/12 10:18 24 Android para Programadores Overview What ’ s New Sam p les Tut o rials Workbench Fig. 1.20 | Guia Welcome to Eclipse no Eclipse. Fig. 1.21 | Caixa de diálogo Import. 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 importar 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). _Livro_Deitel_Android.indb 24 11/07/12 10:18 Capítulo 1 Introdução ao Android 25 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. 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. _Livro_Deitel_Android.indb 25 11/07/12 10:18 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. Botão Run As 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 11/07/12 10:18 Capítulo 1 Introdução ao Android 27 Botão Camera (câmera) Botão Volume Down (diminuir volume) Botão Start Call (iniciar chamada) Botão Menu Botão Power (ligar/desligar) Botão Volume Up (aumentar volume) Botão End Call (finalizar chamada) Botão Back (voltar) Botão Home (início) Botão Search (pesquisar) Botões de navegação e botão de seleção – Select – (central) Teclado 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 Color 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, primeiramente 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 11/07/12 10:18 28 Android para Programadores Área de desenho Opções de menu do aplicativo Doodlz Fig. 1.28 | Opções de menu do aplicativo Doodlz. a) Selecionando a cor vermelha como a cor do desenho b) Desenhando as pétalas da flor em vermelho Barras de escolha para mudar a cor Cor atual (vermelha) Botão Done Fig. 1.29 | Mudando a cor do desenho para vermelha e desenhando pétalas de flor. 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). _Livro_Deitel_Android.indb 28 11/07/12 10:18 Capítulo 1 a) Selecionando verde-escuro como a cor do desenho Introdução ao Android 29 b) Selecionando uma linha mais grossa Exibe a linha na cor de desenho (verde) e a largura de linha atuais Barra de pesquisa para controlar a largura da linha 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. 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). _Livro_Deitel_Android.indb 29 11/07/12 10:18 30 Android para Programadores 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. 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. _Livro_Deitel_Android.indb 30 11/07/12 10:18 Capítulo 1 Introdução ao Android 31 Executando o aplicativo Doodlz em um dispositivo Android Caso você possua um dispositivo Android, você pode executar um aplicativo nele facilmente 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 > Development 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 conectado, o IDE vai instalar o aplicativo em seu dispositivo e executá-lo automaticamente. 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 selecionado. Neste caso, primeiramente iniciamos dois AVDs e conectamos um dispositivo real, de modo que existem três “dispositivos” nos quais poderíamos executar o aplicativo. 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 11/07/12 10:18 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 dispositivos 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 configure 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 precisamente à configuração de hardware de um dispositivo real. 1.12 Recursos da Deitel O site www.deitel.com fornece mais de 100 Resource Centers sobre vários assuntos, incluindo 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. Encontramos muitos recursos excepcionais online, incluindo tutoriais, documentação, downloads 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 Android Resource Center Android Best Practices Resource Center www.deitel.com/books/AndroidFP/ Java Resource Center Eclipse Resource Center SQLite 3 Resource Center Deitel Resource Centers homepage Deitel on Facebook Deitel no Twitter Boletim por email Deitel® Buzz Online www.deitel.com/java/ www.deitel.com/android/ www.deitel.com/ androidbestpractices/ www.deitel.com/Eclipse/ www.deitel.com/SQLite3/ www.deitel.com/ResourceCenters.html www.deitel.com/DeitelFan/ @deitel www.deitel.com/newsletter/ subscribe.html Fig. 1.35 | Recursos para Android da Deitel. _Livro_Deitel_Android.indb 32 11/07/12 10:18 Capítulo 1 Introdução ao Android 33 1.13 Recursos para desenvolvimento com Android A 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.android.com. Para recursos adicionais, visite o Android Resource Center, em www.deitel. com/android. Dicas e recursos para desenvolvimento com Android Canal no YouTube para desenvolvedores de Android Exemplos de aplicativos Android do Google Artigo da O’Reilly, “Ten Tips for Android Application Development” Site Bright Hub™ para dicas e guias práticos sobre programação com Android O artigo, “10 User Experience Tips for Successful Android Apps” Dicas rápidas para desenvolvimento com Android O tutorial “Working with XML on Android: Build Java applications for mobile devices”, de Michael Galpin, arquiteto de software da eBay O blog Android Developers O Sprint Application Developers Program O site para desenvolvedor de T-Mobile Android Developer Center do HTC para desenvolvimento com Android e Windows Mobile O site da Motorola para desenvolvimento com Android URL www.youtube.com/user/androiddevelopers code.google.com/p/apps-for-android/ answers.oreilly.com/topic/862-ten-tips-for-androidapplication-development/ www.brighthub.com/mobile/google-android.aspx www.androidtapp.com/10-user-experience-tips-forsuccessful-android-apps/ www.droidnova.com/ www.ibm.com/developerworks/opensource/library/xandroid/index.html android-developers.blogspot.com/ developer.sprint.com/site/global/develop/mobile_ platforms/android/android.jsp developer.t-mobile.com/site/global/resources/partner_ hubs/android/p_android.jsp developer.htc.com/ 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 11/07/12 10:18 34 Android para Programadores Vídeo URL Android Developer Soapbox: Easy for Java Developers, Build Desktop Widgets A Beginner’s Guide to Android developer.android.com/videos/index. html#v=FTAxE6SIWeI 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 developer.android.com/videos/index. html#v=yqCj83leYRE Fig. 1.37 | Vídeos para desenvolvedor de Android. 1.14 Para finalizar Este capítulo apresentou uma breve história do Android e examinou sua funcionalidade. 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 conhecidos. 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 comportamentos. 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 pagamentos e muito mais. _Livro_Deitel_Android.indb 34 11/07/12 10:18