Introdução ao Android

Propaganda
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
Download