Escolar Documentos
Profissional Documentos
Cultura Documentos
Android
Android
Verso 1.0.0
Sumrio
I
II Informaes Bsicas
IV
Android
18
1 Android
19
2 O que Android?
2.1 ANDROID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Opes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Arquitetura Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
20
20
21
.
.
.
.
.
.
.
.
.
24
24
25
27
28
29
32
33
33
34
.
.
.
.
.
35
35
36
36
36
37
38
38
40
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
CDTC
Brasil/DF
Parte I
CDTC
Brasil/DF
Contedo
O contedo dessa apostila fruto da compilao de diversos materiais livres publicados na internet, disponveis em diversos sites ou originalmente produzido no CDTC (http://www.cdtc.org.br.)
O formato original deste material bem como sua atualizao est disponvel dentro da licena
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seo de
mesmo nome, tendo inclusive uma verso traduzida (no oficial).
A reviso e alterao vem sendo realizada pelo CDTC (suporte@cdtc.org.br) desde outubro
de 2006. Crticas e sugestes construtivas sero bem-vindas a qualquer hora.
Autores
A autoria deste de responsabilidade de Edson Hungria Junior (hungria@cdtc.org.br) .
O texto original faz parte do projeto Centro de Difuso de Tecnologia e Conhecimento que
vm sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informao) em conjunto com
outros parceiros institucionais, e com as universidades federais brasileiras que tem produzido e
utilizado Software Livre apoiando inclusive a comunidade Free Software junto a outras entidades
no pas.
Informaes adicionais podem ser obtidas atravs do email ouvidoria@cdtc.org.br, ou da
home page da entidade, atravs da URL http://www.cdtc.org.br.
Garantias
O material contido nesta apostila isento de garantias e o seu uso de inteira responsabilidade do usurio/leitor. Os autores, bem como o ITI e seus parceiros, no se responsabilizam
direta ou indiretamente por qualquer prejuzo oriundo da utilizao do material aqui contido.
Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br) .
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOSTILA. A copy of the license is included in the section entitled GNU Free Documentation
License.
Parte II
Informaes Bsicas
CDTC
Brasil/DF
Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoo e o desenvolvimento de aes que incentivem a disseminao de solues que utilizem padres abertos e no proprietrios de tecnologia, em proveito do
desenvolvimento social, cultural, poltico, tecnolgico e econmico da sociedade brasileira.
Objetivo Especfico
Auxiliar o Governo Federal na implantao do plano nacional de software no-proprietrio e
de cdigo fonte aberto, identificando e mobilizando grupos de formadores de opinio dentre os
servidores pblicos e agentes polticos da Unio Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negcio da tecnologia da informao e de novos negcios
de comunicao com base em software no-proprietrio e de cdigo fonte aberto, oferecendo
treinamento especfico para tcnicos, profissionais de suporte e funcionrios pblicos usurios,
criando grupos de funcionrios pblicos que iro treinar outros funcionrios pblicos e atuar como
incentivadores e defensores dos produtos de software no proprietrios e cdigo fonte aberto, oferecendo contedo tcnico on-line para servios de suporte, ferramentas para desenvolvimento de
produtos de software no proprietrios e do seu cdigo fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educao, pesquisa, desenvolvimento e teste de produtos de software livre.
Guia do aluno
Neste guia, voc ter reunidas uma srie de informaes importantes para que voc comece
seu curso. So elas:
Licenas para cpia de material disponvel;
Os 10 mandamentos do aluno de Educao a Distncia;
Como participar dos foruns e da wikipdia;
Primeiros passos.
muito importante que voc entre em contato com TODAS estas informaes, seguindo o
roteiro acima.
Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br).
6
CDTC
Brasil/DF
dada permisso para copiar, distribuir e/ou modificar este documento sob os termos
da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior
pblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".
CDTC
Brasil/DF
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informao que
interesse ao grupo, favor post-la aqui.
Porm, se o que voc deseja resolver alguma dvida ou discutir algum tpico especfico do
curso. recomendado que voc faa uso do Frum de dvidas gerais que lhe d recursos mais
efetivos para esta prtica.
. O frum de dvidas gerais tem por objetivo disponibilizar um meio fcil, rpido e interativo
para solucionar suas dvidas e trocar experincias. As mensagens postadas nele so enviadas
a todos participantes do curso. Assim, fica muito mais fcil obter respostas, j que todos podem
ajudar.
Se voc receber uma mensagem com algum tpico que saiba responder, no se preocupe com a
formalizao ou a gramtica. Responda! E no se esquea de que antes de abrir um novo tpico
recomendvel ver se a sua pergunta j foi feita por outro participante.
A segunda forma se d pelas Wikis:
. Uma wiki uma pgina web que pode ser editada colaborativamente, ou seja, qualquer participante pode inserir, editar, apagar textos. As verses antigas vo sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
timo suporte a processos de aprendizagem colaborativa. A maior wiki na web o site "Wikipdia", uma experincia grandiosa de construo de uma enciclopdia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em portugus pelos links:
Pgina principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaborao com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem recomendvel que voc siga os seguintes passos:
Ler o Plano de Ensino e entender a que seu curso se dispe a ensinar;
Ler a Ambientao do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas bsicas do mesmo;
Entrar nas lies seguindo a seqncia descrita no Plano de Ensino;
Qualquer dvida, reporte ao Frum de Dvidas Gerais.
Perfil do Tutor
Segue-se uma descrio do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal um modelo de excelncia: consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas honesto, imparcial, amvel, positivo, respeitador, aceita as
idias dos estudantes, paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8
CDTC
Brasil/DF
A classificao por um tutor desta natureza proporciona o melhor feedback possvel, crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem. Este tutor
ou instrutor:
fornece explicaes claras acerca do que ele espera e do estilo de classificao que ir
utilizar;
gosta que lhe faam perguntas adicionais;
identifica as nossas falhas, mas corrige-as amavelmente, diz um estudante, e explica porque motivo a classificao foi ou no foi atribuda;
tece comentrios completos e construtivos, mas de forma agradvel (em contraste com um
reparo de um estudante: os comentrios deixam-nos com uma sensao de crtica, de
ameaa e de nervossismo)
d uma ajuda complementar para encorajar um estudante em dificuldade;
esclarece pontos que no foram entendidos, ou corretamente aprendidos anteriormente;
ajuda o estudante a alcanar os seus objetivos;
flexvel quando necessrio;
mostra um interesse genuno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
escreve todas as correes de forma legvel e com um nvel de pormenorizao adequado;
acima de tudo, devolve os trabalhos rapidamente;
Parte III
10
CDTC
Brasil/DF
INTRODUO
O propsito desta Licena deixar um manual, livro-texto ou outro documento escrito "livre"no
sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copi-lo ou redistribui-lo,
com ou sem modificaes, comercialmente ou no. Secundariamente, esta Licena mantm
para o autor e editor uma forma de ter crdito por seu trabalho, sem ser considerado responsvel
pelas modificaes feitas por terceiros.
Esta Licena um tipo de "copyleft"("direitos revertidos"), o que significa que derivaes do
documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licena Pblica Geral (GNU GPL), que um copyleft para software livre.
Ns fizemos esta Licena para que seja usada em manuais de software livre, por que software
livre precisa de documentao livre: um programa livre deve ser acompanhado de manuais que
provenham as mesmas liberdades que o software possui. Mas esta Licena no est restrita a
manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente
do assunto ou se ele publicado como um livro impresso. Ns recomendamos esta Licena principalmente para trabalhos cujo propsito seja de introduo ou referncia.
APLICABILIDADE E DEFINIES
Esta Licena se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo
detentor dos direitos autorais dizendo que ele pode ser distribudo sob os termos desta Licena.
O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do pblico um
11
CDTC
Brasil/DF
12
CDTC
Brasil/DF
13
CDTC
Brasil/DF
MODIFICAES
Voc pode copiar e distribuir uma Verso Modificada do Documento sob as condies das sees 2 e 3 acima, desde que voc publique a Verso Modificada estritamente sob esta Licena,
com a Verso Modificada tomando o papel do Documento, de forma a licenciar a distribuio
e modificao da Verso Modificada para quem quer que possua uma cpia da mesma. Alm
disso, voc precisa fazer o seguinte na verso modificada:
A. Usar na Pgina de Ttulo (e nas capas, se houver alguma) um ttulo distinto daquele do Documento, e daqueles de verses anteriores (que deveriam, se houvesse algum, estarem listados
na seo "Histrico do Documento"). Voc pode usar o mesmo ttulo de uma verso anterior se
o editor original daquela verso lhe der permisso;
B. Listar na Pgina de Ttulo, como autores, uma ou mais das pessoas ou entidades responsveis pela autoria das modificaes na Verso Modificada, conjuntamente com pelo menos cinco
dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que
cinco);
C. Colocar na Pgina de Ttulo o nome do editor da Verso Modificada, como o editor;
D. Preservar todas as notas de copyright do Documento;
E. Adicionar uma nota de copyright apropriada para suas prprias modificaes adjacente s
outras notas de copyright;
F. Incluir, imediatamente depois das notas de copyright, uma nota de licena dando ao pblico
o direito de usar a Verso Modificada sob os termos desta Licena, na forma mostrada no tpico
abaixo;
G. Preservar nessa nota de licena as listas completas das Sees Invariantes e os Textos de
Capa requeridos dados na nota de licena do Documento;
H. Incluir uma cpia inalterada desta Licena;
I. Preservar a seo entitulada "Histrico", e seu ttulo, e adicionar mesma um item dizendo
pelo menos o ttulo, ano, novos autores e editor da Verso Modificada como dados na Pgina de
Ttulo. Se no houver uma sesso denominada "Histrico"no Documento, criar uma dizendo o
ttulo, ano, autores, e editor do Documento como dados em sua Pgina de Ttulo, ento adicionar
um item descrevendo a Verso Modificada, tal como descrito na sentena anterior;
J. Preservar o endereo de rede, se algum, dado no Documento para acesso pblico a uma
cpia Transparente do Documento, e da mesma forma, as localizaes de rede dadas no Documento para as verses anteriores em que ele foi baseado. Elas podem ser colocadas na seo
"Histrico". Voc pode omitir uma localizao na rede para um trabalho que tenha sido publicado
pelo menos quatro anos antes do Documento, ou se o editor original da verso a que ela se refira
der sua permisso;
K. Em qualquer seo entitulada "Agradecimentos"ou "Dedicatrias", preservar o ttulo da
14
CDTC
Brasil/DF
seo e preservar a seo em toda substncia e fim de cada um dos agradecimentos de contribuidores e/ou dedicatrias dados;
L. Preservar todas as Sees Invariantes do Documento, inalteradas em seus textos ou em
seus ttulos. Nmeros de seo ou equivalentes no so considerados parte dos ttulos da seo;
M. Apagar qualquer seo entitulada "Endossos". Tal sesso no pode ser includa na Verso
Modificada;
N. No reentitular qualquer seo existente com o ttulo "Endossos"ou com qualquer outro
ttulo dado a uma Seo Invariante.
Se a Verso Modificada incluir novas sees iniciais ou apndices que se qualifiquem como
Sees Secundrias e no contenham nenhum material copiado do Documento, voc pode optar
por designar alguma ou todas aquelas sees como invariantes. Para fazer isso, adicione seus
ttulos lista de Sees Invariantes na nota de licena da Verso Modificada. Esses ttulos precisam ser diferentes de qualquer outro ttulo de seo.
Voc pode adicionar uma seo entitulada "Endossos", desde que ela no contenha qualquer coisa alm de endossos da sua Verso Modificada por vrias pessoas ou entidades - por
exemplo, declaraes de revisores ou de que o texto foi aprovado por uma organizao como a
definio oficial de um padro.
Voc pode adicionar uma passagem de at cinco palavras como um Texto de Capa da Frente
, e uma passagem de at 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos
de Capa na Verso Modificada. Somente uma passagem de Texto da Capa da Frente e uma de
Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.
Se o Documento j incluir um texto de capa para a mesma capa, adicionado previamente por
voc ou por acordo feito com alguma entidade para a qual voc esteja agindo, voc no pode
adicionar um outro; mas voc pode trocar o antigo, com permisso explcita do editor anterior que
adicionou a passagem antiga.
O(s) autor(es) e editor(es) do Documento no do permisso por esta Licena para que seus
nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer
Verso Modificada.
COMBINANDO DOCUMENTOS
Voc pode combinar o Documento com outros documentos publicados sob esta Licena, sob
os termos definidos na seo 4 acima para verses modificadas, desde que voc inclua na combinao todas as Sees Invariantes de todos os documentos originais, sem modificaes, e liste
todas elas como Sees Invariantes de seu trabalho combinado em sua nota de licena.
O trabalho combinado precisa conter apenas uma cpia desta Licena, e Sees Invariantes
Idnticas com multiplas ocorrncias podem ser substitudas por apenas uma cpia. Se houver
mltiplas Sees Invariantes com o mesmo nome mas com contedos distintos, faa o ttulo de
15
CDTC
Brasil/DF
cada seo nico adicionando ao final do mesmo, em parnteses, o nome do autor ou editor
origianl daquela seo, se for conhecido, ou um nmero que seja nico. Faa o mesmo ajuste
nos ttulos de seo na lista de Sees Invariantes nota de licena do trabalho combinado.
Na combinao, voc precisa combinar quaisquer sees entituladas "Histrico"dos diversos documentos originais, formando uma seo entitulada "Histrico"; da mesma forma combine
quaisquer sees entituladas "Agradecimentos", ou "Dedicatrias". Voc precisa apagar todas as
sees entituladas como "Endosso".
COLETNEAS DE DOCUMENTOS
Voc pode fazer uma coletnea consitindo do Documento e outros documentos publicados
sob esta Licena, e substituir as cpias individuais desta Licena nos vrios documentos com
uma nica cpia incluida na coletnea, desde que voc siga as regras desta Licena para cpia
exata de cada um dos Documentos em todos os outros aspectos.
Voc pode extrair um nico documento de tal coletnea, e distribu-lo individualmente sob
esta Licena, desde que voc insira uma cpia desta Licena no documento extrado, e siga esta
Licena em todos os outros aspectos relacionados cpia exata daquele documento.
TRADUO
Traduo considerada como um tipo de modificao, ento voc pode distribuir tradues
do Documento sob os termos da seo 4. A substituio de Sees Invariantes por tradues
requer uma permisso especial dos detentores do copyright das mesmas, mas voc pode incluir
tradues de algumas ou de todas as Sees Invariantes em adio s verses orignais dessas
Sees Invariantes. Voc pode incluir uma traduo desta Licena desde que voc tambm inclua a verso original em Ingls desta Licena. No caso de discordncia entre a traduo e a
16
CDTC
Brasil/DF
TRMINO
Voc no pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expressamente especificado sob esta Licena. Qualquer outra tentativa de copiar, modificar, sublicenciar, ou distribuir o Documento nula, e resultar automaticamente no trmino de seus direitos
sob esta Licena. Entretanto, terceiros que tenham recebido cpias, ou direitos de voc sob esta
Licena no tero suas licenas terminadas, tanto quanto esses terceiros permaneam em total
acordo com esta Licena.
17
CDTC
tal como a GNU General Public License, para permitir o seu uso em software livre.
18
Brasil/DF
Parte IV
Android
19
Captulo 1
Android
Figura 1 - Android
A plataforma Android um software para dispositivos mveis, incluindo um sistema operacional, middleware e aplicativos-chave. Os desenvolvedores podem criar aplicaes para a plataforma usando o Android SDK, sendo que as aplicaes so escritas utilizando a linguagem
de programao Java e executado no Dalvik, uma mquina virtual projetada para uso embutido
capaz de rodar em kernel Linux.
20
Captulo 2
O que Android?
2.1 ANDROID
Android um software feito para dispositivos mveis que inclui um sistema operacional, middleware e aplicativos. O SDK fornece as ferramentas e APIs necessrias para comear a desenvolver aplicaes na plataforma Android usando a linguagem de programao Java.
2.2 Opes:
Aplicativos Framework permitindo reutilizao e substituio de componentes;
Dalvik - mquina virtual otimizada para dispositivos mveis;
Navegador cdigo aberto integrado baseado no WebKit;
Grficos otimizados alimentado por bibliotecas grficas 2D; Grficos 3D baseados no OpenGL
ES 1.0;
SQLite para armazenamento de dados estruturados;
Mdia com suporte para udio, vdeo e imagens(MPEG4, H.264, MP3, AAC, AMR, JPG,
PNG, GIF);
Telefonia GSM (dependente de hardware);
Bluetooth, EDGE, 3G, e WiFi (dependente de hardware);
Cmera, GPS, bssola, e etc (dependente de hardware);
Ambiente de desenvolvimento incluindo um dispositivo emulador, ferramentas de depurao, memria, perfis de desempenho e um plugin para o IDE Eclipse.
21
CDTC
Brasil/DF
Aplicaes
Android ir navegar com um grupo de aplicaes, incluindo um cliente de email, programa
SMS, calendrio, mapas, navegador, contatos, etc. Todas aplicaes so escritas utilizando a
linguagem de programao Java.
Aplicaes Framework
Desenvolvedores tm pleno acesso aos mesmos framework APIs utilizados por aplicaes
complexas. A arquitetura da aplicao foi desenhada para simplificar a reutilizao de componentes, sendo que qualquer aplicativo pode publicar as suas funcionalidades e qualquer outra
aplicao poder fazer uso das mesmas(mesmo que sujeito a restries de segurana impostas pelo framework). Este mesmo mecanismo permite que componentes sejam substitudo pelo
usurio.
Todas aplicaes de baixo nvel so um conjunto de servios e de sistemas, incluindo:
Um rico e extensvel conjunto de Views que podem ser usadas para construir uma aplicao,
incluindo listas, grides, caixas de texto, botes e mesmo um navegador web;
22
CDTC
Brasil/DF
Content Providers aplicaes que permitam o acesso a dados de outros aplicativos (como
Contatos), ou para compartilhar seus prprios dados;
Resource Manager fornece acesso a recursos (no codificados) como grficos e arquivos
de layout;
Notification Manager permite que todas aplicaes exibam avisos personalizados na barra
de estado;
Activity Manager que gerencia o ciclo de vida das aplicaes;
Bibliotecas
Android inclui um conjunto de bibliotecas C / C + + usadas por diversos componentes do
sistema Android. Estas capacidades so expostas aos desenvolvedores por meio da aplicao
framework Android. Algumas das principais bibliotecas so listadas a seguir:
Sistema C library - Uma biblioteca derivada BSD que uma implementao do sistema do
padro C (libc), voltada para dispositivos baseados em Linux;
Media Libraries - baseado em PacketVideos OpenCORE, as bibliotecas suportam reproduo e gravao de muitos formatos populares de udio e vdeo incluindo MPEG4, H.264,
MP3, AAC, AMR, JPG e PNG;
Surface Manager - Controla o acesso exibio do subsistema e de camadas grficas 2D
e 3D de mltiplas aplicaes;
LibWebCore - Um navegador web moderno que torna poderosa a navegao com Android;
SGL - Grficos 2D de baixa camada;
3D Libraries - Uma implementao baseada em OpenGL ES 1,0 APIs: Bibliotecas usadas
em acelerao de hardware 3D (quando disponvel);
FreeType - Bitmaps e fontes vetoriais para renderizo;
SQLite - Leve e poderosa base de dados relacional disponvel para todas as aplicaes.
Android Runtime
Android inclui um grupo de bibliotecas que fornece a maioria das funcionalidades disponveis
nas principais bibliotecas da linguagem de programao Java.
Cada aplicao Android roda em seu prprio processo, com a sua prpria instncia da mquina virtual Dalvik. O Dalvik VM executa arquivos no Dalvik Executvel (.dex), que otimizado
para usar mnimo de memria. A Dalvik VM baseia-se em kernel Linux para subjacentes funcionalidade como o encadeamento e gesto de memria de baixo nvel.
23
CDTC
Brasil/DF
Linux Kernel
Android invoca Linux verso 2.6 para o sistema central de servios, tais como segurana,
gesto de memria, gesto de processos, rede e drivers. O kernel tambm atua como uma
camada de abstrao entre o hardware e o resto do software.
24
Captulo 3
CDTC
Brasil/DF
export PATH=${PATH}:<seu_sdk_dir>/tools
Em um computador Mac, procure em seu diretrio home pelo .bash_profile e proceda da
mesma forma para Linux. Voc pode criar o .bash_profile, se voc ainda no o configurou em
sua mquina.
No Windows, clique com boto direito em Meu Computador e selecione Propriedades. Sob
a guia Avanado, apertar o boto Variveis de Ambiente e na caixa de dilogo, que aparecer,
clique duplo no Caminho sob Variveis de Sistema. Adicione o caminho completo ao diretrio
tools/.
Adicionando tools para o seu PATH permite que voc execute Android Debug Bridge (adb)
e as outras linhas de comando tools, sem necessidade de fornecer o caminho completo para
o diretrio. Note que, se voc atualizar o seu SDK, voc deve se lembrar de atualizar suas
configuraes PATH para que aponte para o novo local, caso seja diferente.
26
CDTC
Brasil/DF
https://dl-ssl.google.com/android/eclipse/
Pressione OK.
5. Agora voc deve ver o novo site adicionado lista de pesquisa. Pressione Finish.
6. Na caixa de dilogo subseqente Search Results, marque a caixa de seleo Android
Plugin > Eclipse Integration > Android Development Tools e pressione Next.
7. Leia o acordo de licena e, em seguida, selecione Accept para aceitar os termos do
contrato de licena, se for o caso. Pressione Next.
8. Pressione Finish.
9. A ADT plugin no est assinado, voc pode aceitar a instalao mesmo assim, pressionando Install All.
10. Reinicie o Eclipse.
11. Aps o reincio, atualize suas preferncias do Eclipse para apontar para o diretrio SDK:
11.1 Selecione Window> Preferences... Para abrir o painel preferncias. (Mac OS X:
Eclipse> Preferences)
11.2 Selecione Android do painel esquerdo.
11.3 Para a localizao do SDK no painel principal, pressione Browse... E localize o diretrio SDK.
11.4 Pressione Apply e, em seguida, OK.
CDTC
Brasil/DF
CDTC
Brasil/DF
1. Selecione Run > Open Run Dialog ou Run > Open Debug Dialog conforme o caso;
2. Na lista de tipo de projeto esquerda, clique com boto direito do mouse em Application
Android e selecione New;
3. Digite um nome para a sua configurao;
4. No guia Android, navegue para o projeto e Activity a iniciar;
5. No guia Emulator, defina as propriedades desejadas tela e da rede, bem como quaisquer
outras opes do emulador de inicializao;
6. Voc pode definir opes adicionais no guia Common conforme desejado;
7. Pressione Apply para salvar a configurao de lanamento ou pressione Run ou Debug
(conforme o caso).
29
CDTC
Brasil/DF
CDTC
Brasil/DF
Voc pode, agora, mover a sua pasta para onde voc quiser desenvolv-la, mas lembre-se
que voc ter que usar o programa adb na pasta tools/ para enviar arquivos para o emulador,
assim voc ter o acesso entre a sua soluo e a pasta tools/.
Alm disso, voc deve evitar mover o diretrio do SDK, uma vez que mov-lo ir quebrar o link
dos scripts construdos.
CDTC
Brasil/DF
4. No emulador, abra a lista de aplicaes disponveis e role para baixo para selecionar e
iniciar a sua aplicao.
Nota: Quando voc instalar uma Activity pela primeira vez, voc pode ter que reiniciar o
emulador antes que ele aparea na aplicao de lanamento ou outras aplicaes podem chamlo. Isso ocorre porque o gestor de pacotes, normalmente, examina completamente apenas os xml
na inicializao do emulador.
32
CDTC
Brasil/DF
ADB Shell
Logcat - b rdio
33
CDTC
Brasil/DF
Executar adb
Android vem com uma ferramenta chamada adb que oferece vrias funcionalidades, incluindo
mover e sincronizar arquivos para o emulador, abertura de portas e executando um shell UNIX
no emulador. Veja usando adb para mais detalhes.
34
CDTC
Brasil/DF
Resposta(response)
(java.lang.String)
/work/device/out/linux-x86-debug/android/app/android_sdk.zip
(boolean) true
(boolean) false
Voc tambm pode executar cdigo arbitrrio quando no estiver em depurao, utilizando
uma pgina recados("scrapbook"). Verifique na documentao do Eclipse IDE.
35
Captulo 4
4.1 Activity
Ativities so as mais comuns dos quatro mdulos Android. Uma Activity normalmente uma
nica tela em sua aplicao. Cada Activity implementada como uma nica classe que estende a classe base Activity. Sua classe vai exibir uma interface de usurio composta de Views
e eventos a serem respondidos, sendo que a maioria das aplicaes consistem de mltiplas telas.
Por exemplo, um aplicativo de mensagem de texto pode ter uma tela que mostra uma lista de
contatos para enviar mensagens para uma segunda tela que grava a mensagem para o contato
escolhido e outras telas para rever as mensagens antigas ou mudar as configuraes. Cada uma
destas telas seriam implementadas como uma Activity. A mudana para uma outra tela ser realizada por um incio de uma nova Activity. Em alguns casos, uma Activity pode retornar um valor
para a Activity anterior. Por exemplo, uma Activity que permite ao usurio escolher uma foto que
seria retornada pelo mtodo chamador.
Quando uma nova tela abre, a anterior pausada e posta em uma pilha de histria. O usurio
pode navegar atravs das telas anteriormente abertas contidas na pilha de histria. Telas tambm
podem ser removidas da pilha de histria se necessrio. O Android retm pilha de histria para
cada aplicao lanada a partir da tela inicial.
36
CDTC
Brasil/DF
4.4 Service
Um Service um cdigo de longa vida e funciona sem uma interface grfica. Um bom exemplo
disto uma mdia tocando msicas de um lista. Numa aplicao de media player, provavelmente
37
CDTC
Brasil/DF
seriam uma ou mais Activities que permitiriam ao usurio escolher msicas e toc-las. No entanto, a msica reproduzida em si no deveria ser manuseada por uma Activity, pois o usurio
espera que a msica continue tocando mesmo aps navegar para uma nova tela.
Neste caso, o leitor de mdia em atividade pode iniciar um servio utilizando
Context.startService(), para executar em segundo plano a msica, sendo que o sistema ir manter
a reproduo da msica at que ela termine (Voc pode aprender mais sobre a prioridade dada
aos servios do sistema de leitura de uma aplicao Android em Android Application Lifecycle).
Note que voc pode conectar-se a um servio e inici-lo caso ainda no esteja executando com
o mtodo Context.bindService(). Quando conectado a um servio, voc pode comunicar-se com
ele atravs de uma interface exposta pelo servio da msica permitindo que voc possa pausar,
retroceder, etc.
38
Captulo 5
Ferramentas de Desenvolvimento e
Ciclo de Vida de uma Aplicao
5.1 Ferramentas de Desenvolvimento
O Android SDK inclui uma variedade de ferramentas personalizadas que podem ajud-lo a
desenvolver aplicaes mveis para plataforma Android. A mais importante delas a Android
Emulator e a Android Development Tools plugin para o Eclipse, mas a SDK tambm inclui
vrias outras ferramentas de depurao, empacotamento e instalao de suas aplicaes no
emulador.
Emulador Android
Um dispositivo mvel virtual que pode ser executado em seu computador. Voc pode usar o
emulador para desenhar, depurar e testar suas aplicaes em um ambiente Android de execuo
em tempo real.
39
CDTC
Brasil/DF
Sqlite3
Includo como uma convenincia, esta ferramenta permite-lhe acessar dados de arquivos SQLite criados e utilizados por aplicaes Android.
Traceview
Esta ferramenta produz anlise com visualizao grfica dos rastros de dados registrados que
voc pode gerar a partir de sua aplicao Android.
Mksdcard
Ajuda voc a criar um disco imagem que voc pode usar com o emulador, para simular a
presena de um carto externo de armazenamento (como um carto SD).
DX
A ferramenta dx reescreve bytecodes .class em bytecodes Android(armazenados em arquivos
.dex).
ActivityCreator
Um script que gera arquivos Ant que voc pode usar para compilar suas aplicaes Android.
Se voc estiver desenvolvendo no Eclipse com o ADT plugin, voc no precisar usar esse script.
40
CDTC
Brasil/DF
CDTC
Brasil/DF
usurio, eles esto geralmente fazendo coisas que importam para o usurio (como mp3
sendo tocadas em segundo plano, upload e download de dados pela rede), ento o sistema
ir sempre manter esses processos em execuo, a menos que no haja bastante Memria
para manter todos os processos visveis e de primeiro plano.
4. Um processo de segundo plano aquele que tem uma Activity que no est visvel para
o usurio (seu mtodo onStop() foi chamado). Estes processos no tm impacto direto sobre a experincia do usurio. O sistema pode matar esses processos a qualquer momento
para recuperar memria de um dos trs tipos de processos anteriores. Normalmente, existem muitos destes processos executando, ento eles so mantidos em uma lista LRU para
garantir que o processo mais recentemente visto pelo usurio seja o ltimo a ser morto
quando est baixa a memria.
5. Um processo vazio aquele que no possui qualquer componente de aplicao activo. A
nica razo para manter tal processo t-lo em cache(escondido), para melhorar o tempo
de inicializao na prxima vez que um componente da aplicao precisar ser executado.
Sendo assim, o sistema ir matar muitas vezes estes processos, a fim de manter o equilbrio
geral dos recursos do sistema.
42
CDTC
Brasil/DF
Rapidez
Uma aplicao Android deve ser rpida ou talvez seja mais correto dizer que ela deve ser eficiente. H uma tendncia no mundo da computao estes dias para supor que a Lei de Moore ir
resolver todos os nossos problemas eventualmente. Quando se trata de aplicaes embutidas,
no entanto, a Lei de Moore um pouco mais complicada.
A lei de Moore realmente no se aplica aos dispositivos mveis da mesma forma que as aplicaes para desktop e servidor. Ela realmente uma lei sobre transstor de densidade. Ou seja,
diz-se que voc tambm pode compactar mais circuitos em um determinado tamanho de chips
com o passar do tempo. Para aplicaes desktop e servidor, isto significa que voc pode empacotar mais "velocidade"em um chip de aproximadamente o mesmo tamanho, o que resultou no
aumento substancial do desempenho.
Para aplicaes embutidas, como telefones celulares, no entanto, a lei de Moore normalmente utilizada para fazer chips menores. Ou seja, a tendncia usar o aumento da densidade
para fazer o mesmo chip menor e consumindo menos energia, a fim de tornar telefones pequenos
e alongar a durao das baterias. Como resultado, dispositivos embutidos como telefones esto
aumentando em velocidade muito mais lenta do que sistemas de computador.
Por isso, to importante escrever cdigos cada vez mais eficientes: no se pode presumir
que telefones tero a mesma velocidade de desenvolvimento que servidores e desktops, mas de
uma maneira geral, escrever cdigos eficientes significa manter a alocao de memria em um
valor mnimo, evitando certas linguagens de programao e expresses que possam prejudicar
o desempenho. Em termos de orientao a objetos, a maior parte deste trabalho efetuado no
nvel dos mtodos.
Interativo
possvel escrever um cdigo de desempenho extremamente rpido e eficaz, porm ele
ter um terrvel defeito: a falta de interao com o usurio de forma satisfatria. Estes tipos de
aplicaes no so suficientemente interativas. Porm, as que so demasiadamente interativas
costumam ser lentas, pesadas, podendo congelar por perodos significativos ou demorar muito
para processar a entrada. Em termos Android, aplicaes que no so suficientemente interativas iro freqentemente fazer com que o sistema emita a temida mensagem "Not Responding
Application"(ANR).
Geralmente, isso acontece se sua aplicao no responder s informaes fornecidas pelo
usurio. Por exemplo, se a sua aplicao bloquear algumas operaes de entrada e sada
(freqentemente uma rede acesso), ento a aplicao principal (main thread) no ser capaz
de processar eventos recebidos do usurio. Depois de um tempo, o sistema ir concluir que a
sua aplicao est em espera e dar ao usurio a opo de mat-la.
Da mesma forma, se a sua aplicao gastar muito tempo construindo uma estrutura elaborada
na memria ou talvez computando os prximos passos em um jogo, ento, novamente o sistema
ir concluir que sua aplicao est em espera e dar ao usurio a opo de mat-la. sempre
importante para certificar-se de que estes clculos so eficientes utilizando as tcnicas acima,
mas mesmo os mais eficientes cdigos ainda levam tempo para serem executados.
43
CDTC
Brasil/DF
Em ambos os casos, a correo geralmente para criar uma pequena thread que faa a maior
parte dos seus trabalhos. Isto mantm a main thread(que dirige o loop da interface com usurio)
executando e impede que o sistema conclua que seu programa congelou.
Sem descontinuidade
Mesmo que a sua aplicao seja rpida e interativa, ela ainda pode irritar os usurios. Um
exemplo comum um processo de fundo (como um Android Service ou IntentReceiver) que
aparece numa interface grfica em resposta a algum evento. Isto pode parecer inofensivo e desenvolvedores, freqentemente, assumem que isto correto, porque eles passam a maior parte
do seu tempo testando e utilizando a sua prpria aplicao.
No entanto, o modelo de aplicao Android construdo explicitamente para permitir que os
usurios alternem fluentemente entre aplicaes. Isto significa que quando um processo, em
segundo plano, acende uma UI, o usurio poder ir para outra parte do sistema, fazendo outras
coisas tais como atender uma ligao. Imagine se o servio SMS abrir uma caixa de dilogo cada
vez que uma mensagem de texto entrar. Isso iria irritar os usurios e por isso que o padro
Android utilizar notificaes para tais eventos, dando mais controle ao usurio.
Esse apenas um exemplo, h muitos mais. Por exemplo, se uma Ativity no implementar
corretamente o onPause() e outros mtodos, isso vai resultar em perda de dados. Ou, se sua
aplicao expor dados destinados a serem utilizados por outras aplicaes, voc deve faz-lo
atravs de um ContentProvider, utilizando um banco de dados, por exemplo.
O que esses exemplos tm em comum que eles envolvem coperao entre o sistema e
outras aplicaes. O sistema Android foi concebido para tratar aplicaes como uma espcie de
federao de componentes vagamente acoplados, em vez de pedaos de cdigo acoplados. Isto
permite-lhe como o desenvolvedorvisualizar todo o sistema apenas como uma federao ainda
maior desses componentes. Isso permite-lhe integrar-se limpa e harmonicamente com outros
aplicativos, por isso voc deve projetar seu prprio cdigo para retornar o favor.
.dex extenso
Programas Android so compilados em arquivos .dex (Dalvik Executvel), que esto compactados em um nico arquivo .apk no dispositivo. Arquivos .dex podem ser criados por aplicaes
compiladas traduzidas automaticamente e escritas na linguagem de programao Java.
44
CDTC
Brasil/DF
Action
Uma descrio de algo que uma Intent de envio ir realizar. Uma ao uma String de
valor atribudo a um Intent. Strings de Action podem ser definidas pelo Android ou por uma
terceira parte desenvolvedora. Por exemplo, android.intent.action.VIEW para uma URL Web, ou
com.example.rumbler.SHAKE_PHONE para uma aplicao feita sob encomenda para vibrar o
telefone.
Activity
A nica tela de um aplicativo, com suporte cdigo Java, derivados da classe Activity.
adb
Android Debug Bridge, uma aplicao para depurador em linha de comando depurao
enviado juntamente com o SDK. Ele fornece ferramentas para navegar o dispositivo, copia ferramentas no dispositivo e encaminha portas para depurao.
Application
Uma coleo de uma ou mais atividades, servios, escutas e Intent receivers. Uma aplicao
tem uma nica manifestao e compilada em um nico arquivo .apk no dispositivo.
Content Provider
A classe construda sobre ContentProvider que manipula os contedos de consulta a strings
de um formato especfico para retornar dados em um formato tambm especfico.
Content URI
Um tipo de URI.
Dalvik
O nome da mquina virtual Android. O Dalvik VM apenas um interpretador que executa
arquivos no formato Dalvik Executvel (.dex), um formato que otimizado para o armazenamento
eficiente e mapeamento de memria em execuo. A mquina virtual de registo base, podendo
executar aulas compiladas por um compilador linguagem Java que foram transformadas em seu
formato nativo usando o incluiu "dx"ferramenta. O VM roda no topo do Posix compatvel com os
sistemas operacionais, que se baseiam sobre a funcionalidade subjacente (tais como o encadeamento e baixo nvel memria gesto). O Dalvik ncleo classe biblioteca destina - se a fornecer
uma base para o desenvolvimento familiarizado com os utilizados para programao com Java
Standard Edition, mas orientado especificamente para as necessidades de um pequeno dispositivo mvel.
45
CDTC
Brasil/DF
DDMS
Dalvik Debug Monitor Service, uma GUI para depurao de aplicao que vem junto com o
SDK. Fornece tela de captura, log dump e etcs. Veja usando o Dalvik Debug Monitor Server para
obter mais informaes sobre este programa.
Drawable
Um recurso visual compilado que pode ser utilizado como fundo, ttulo ou outra parte da tela.
compilado em uma subclasse android.graphics.drawable.
Intent
Uma classe Intent, que contm vrios campos descrevendo o que um chamador deveria fazer.
O chamador envia esta inteno para um "resolvedor de intenes"Android que olha atravs de
filtros a inteno de todas as aplicaes para encontrar a atividade(activity) mais adequada para
lidar com esta inteno(intent). Os campos das Intent incluem a ao desejada, uma categoria,
uma seqncia de dados, o tipo MIME dos dados, um tratamento classe e outras restries.
Intent Filter
Atividades e intenes receptores incluem um ou mais filtros em seus manifestos para descrever que tipo de intenes ou mensagens que eles podem manter ou desejam receber. Uma
inteno filtro enumera um conjunto de requisitos, tais como tipo de dados, a ao solicitada, e
URI formato, que as intenes ou mensagens devem cumprir. Para Atividades, android pesquisa
com a mais estreita correspondncia vlida entre as intenes e as atividades filtro. Para mensagens, android vai encaminhar uma mensagem para todos os receptores com correspondncia
inteno filtro.
Intent Receiver
Uma classe de aplicao que ouve mensagens difundidas pelo chamado de
Context.broadcastIntent().
Layout Resource
Um arquivo XML que descreve o layout de uma tecla Activity.
Manifesto
Um arquivo XML associado com cada aplicativo que descreve as diferentes activities, filtros
intent, servios e outros itens que ela expe.
46
CDTC
Brasil/DF
Query String
Um tipo de URI. Veja a entrada URI.
Resource
Um XML de usurio fornecido, bitmap ou outro arquivo, entrou em um processo de contruo
do aplicativo, que mais tarde podem ser carregados a partir de cdigo. Andrid pode aceitar recursos de vrios tipos. Aplicao-definidos recursos devem ser armazenados no /res subpastas.
Service
Uma classe que executada em segundo plano para executar vrias aes persistentes,
como a reproduo de msica ou atividade de monitoramento de rede.
Theme
Um conjunto de propriedades (texto tamanho, a cor, e assim por diante) empacotados juntos
para definir diferentes configuraes default display. Andride fornece alguns temas padres,
enumerados no R.style (comeando com "Theme_").
URIs
Andride usa strings URI tanto para solicitar dados (por exemplo, uma lista de contatos)
quanto para requerer aes (por exemplo, abrir uma pgina da Web em um navegador). Ambas
so string vlidas URI, mas tm valores diferentes. Todos os pedidos de dados devem comear
com a string "content:/ /". Strings de Ao so vlidas URIs que podem ser tratadas adequadamente por aplicaes no dispositivo. Por exemplo, uma URI comeando com "http:// "ser
manuseada pelo navegador.
5.5 Consideraes
O material foi editado e/ou traduzido por Edson de Hungria Junior,(hungria@cdtc.org.br)
Equipe CDTC. O contedo desse documento, incluindo imagens que foram editadas seguindo o
licena Creative Commons License 2.5, tendo como base a descrio da Open Handset Alliance
responsvel pelo desenvolvimento do Android respeitando os todos direitos dos autores devidos.
47