Você está na página 1de 71

Android : Desenvolvimento de aplicaes mveis

Max Bonbhel Consultor Senior de Software nstrutor de !ava " Android

$or %ue &

AGENDA

A;enda
(nde encontrar o Android& )uem usa o Android*& + ,a-out. Menu. Alertas e /otificaes Atividades Arma1enamento de Dados $rovedores de Conte2do Multim3dia 45udio e 63deo7 Servios ,ocali1a8o e Mapas Servios 9eb. :M,. Computa8o em nuvem Se;urana e $ermisses

0ecursos e Assets

'

ONDE ENCONTRAR O ANDROID ?


=st> em todos os lu;ares ?
<

(nde encontrar Android &



@

Celulares /etBooA 0 M BlacABerr- $la-BooA tablet Bablet $C Carros Smart B6 =m resumo Cem %uase todos os lu;ares

QUEM USA O ANDROID?


Bodo mundo?
D

)uem usa o Android&

)uem usa Android &


$ro;ramadoresG =mpres>rios envolvidos com alta tecnolo;iaG Bodo mundo?

O QUE O ANDROID NO
Android vs $hone Duas plataformas. # conceitos

( %ue Android n8o M


+ma ferramenta para construir robKs humanides
4Cpelo menos n8o por en%uanto7 +ma implementa8o de !ava M= As aplicaes Android n8o s8o executadas na m>%uina virtual

+m elemento do ,inux $hone Standard Lorum 4,i$S7 ou do (pen Mobile Alliance 4(MA7
Assim como no ,inux. o Android executa um Aernel de cdi;o aberto. e vai alMm das preocupaes de padroni1a8o do ,i$S e da (MAN

A camada de aplica8o simples 4como + ) ou SDJ7


S( Android O S( subPacente Q A$ s Q Aplicaes 4nativas e terceiros7N

+m celular
$lataforma de 0eferRncia para os fabricantesN /8o de UM s telefone Android mais DOS telefones AndroidN

+ma resposta para o i$hone 4NNN BomNNN /8o tenho certe1a?7


IJ

$hone O +m fabricante . +m S( 4fechado7. +m hardware?

O QUE ANDROID REALMENTE


+ma plataforma aberta para desenvolvimento mvel

II

( %ue Android M realmente


+m sistema operacional ,inux de cdi;o aberto fornecendo uma interface com hardware de baixo n3vel:
Sest8o de memria Controle do processador

Bibliotecas openTsource para desenvolvimento de aplicativos


S),ite. 9ebUit. (penS, +m ;erenciador de m3dias

+m motor em tempo de execu8o para aplicativos Android. incluindo:


A M>%uina 6irtual DalviA As bibliotecas de base

+m LrameworA %ue mostra os servios do sistema


I#

9indow Mana;er 4Serenciador de !anelas7 ,ocation Mana;er 4Serenciador de ;eoTlocali1a8o7 Content Mana;er 4Serenciador de conte2do7

SDK ANDROID
Com a caixa de ferramentas M poss3vel criar aplicativos %ue ser8o inclu3dos no telefone. como aplicaes nativas do AndroidN A 6M DalviA n8o M uma !6M. tal como !ava M=N Lacilidade para escrever aplicaes em CV e CQQ para DalviAN
I'

( SDU Android

I<

( SDU Android
Sem custos de licena 4desenvolvimento. distribui8o7 /enhum processo de aprova8o de aplicativos de terceiros ( acesso direto ao hardware
9iTLi. redes SSM. =DS=. e 'S SMS

A$ s completas para servios de locali1a8o. como o S$SN Controle total de e%uipamentos de multim3dia
,eitura e ;rava8o de v3deo e >udio AcelerKmetro B2ssola

Controle de sensores
Motor ;r>fico
I@

Sr>ficos #D Sr>ficos 'D com o (penS, =S #NJ

DESENVOLVEDORES: POR ONDE COMEAR?


$or toda a plataforma

ID

$or onde comear


S( suportados
Microsoft 9indows 4:$ ou superior7 Mac (S : IJN<NF ou superior 4somente processador ntel7

,inux

Ambiente de Desenvolvimento
SDU Android 4http:""developerNandroidNcom"sdA"indexNhtml7 !DU@ ou D 4http:""sunNPavaNcom"Pavase"downloads"indexNPsp7 =clipse 'N< ou 'N@ 4Salileo de preferRncia7 ( plu;in =clipse ADB 4Android Developer Bool7

( plu;in ADB n8o M obri;atrio. mas facilita muito o desenvolvimento


IE

Declarando um la-out =strutura do ar%uivo de ,a-out Bipos de ,a-out

INTERFACE USURIO (LAYOUT)


IF

Declarando um la-out
Duas maneiras de declarar um ,a-out
(p8o VI: Declare os elementos da interface do usu>rio em um ar%uivo :M, 4f>cil de or;ani1ar. visuali1ar. etcNNN7N Altamente Recomendado
( Android fornece um vocabul>rio bastante simplificado de elementos :M, correspondentes Ws classes e subclasses do tipo 6iewN

(p8o V#: nstanciar os elementos do la-out em tempo de execu8o 4no cdi;o !ava7
( aplicativo pode ;erar obPetos do tipo 6iew 46is8o7 ou 6iewSroup 4Srupo de vises7 e. assim. manipular suas propriedades por pro;rama8o no cdi;o !avaN

BambMm M poss3vel utili1ar as duas opes Puntas


+sando a declara8o de mMtodo para os elementos da interface do usu>rio por padr8o e. em se;uida. usar o cdi;o !ava para modificar as propriedades em tempo de execu8oN

IH

=strutura do ar%uivo de ,a-out


Cada ar%uivo pode conter apenas um elemento rai1 4root7 para ser um obPeto do tipo 6iew 4por exemplo. um bot8o7 ou tipo 6iewSroup 4por exemplo. um ,a-out ,inear7N +ma ve1 %ue o elemento rai1 4root7 M definido. M poss3vel adicionar mais elementos filhos para ;radualmente construir seu la-outN
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" tt!:""sc emas.android.com"a!#"res"android" android:layout$%idt ="fill$!arent" android:layout$ eig t="fill$!arent" android:orientation="vertical" > <&ext'ie% android:id="()id"text" android:layout$%idt ="%ra!$content" android:layout$ eig t="%ra!$content" android:text="*l+, eu sou um &ext'ie%" "> <-utton android:id="()id".utton" android:layout$%idt ="%ra!$content" android:layout$ eig t="%ra!$content" android:text="*l+, eu sou um .ot/o" "> <"LinearLayout>

#J

=strutura do ar%uivo de ,a-out


Cada ar%uivo de la-out ser> compilado em um recurso do obPeto ViewN ( recurso est> dispon3vel no cdi;o do aplicativo ;erado atravMs do Activity.onCreate ()
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(0.layout.main$layout); }
#I

Bipos de ,a-out
Bodos os tipos de la-out s8o subclasses da classe 6iewSroup
,inear,a-out
Alinha ou empilha todos os elementos filhos em uma dire8o 4hori1ontal ou vertical7N A distXncia entre os elementos respeita a ;ravidade 4alinhado W direita. centro ou es%uerda7N

0elative,a-out
Cada elemento filho pode ter a sua prpria posi8o em rela8o ao pai ou outros elementos filhosN Se. por exemplo. o primeiro elemento filho est> centrali1ado. em se;uida. todos os outros elementos cuPas posies n8o foram especificados ser8o alinhados ao centro tambMmN

Bable,a-out
##

(s elementos filho s8o posicionados em linhas 4Bable0ow7 e colunasN Cada linha pode ter 1ero ou mais cMlulasN

Bipos de ,a-out
Lrame,a-out
Lrame,a-out M o mais simples dos obPetos tipo la-outN Y apenas um espao va1io na tela onde vocR pode preencher com um 2nico obPetoN =x: uma ima;em de fundoN Bodos os elementos filhos s8o automaticamente colocados no topo es%uerdo da telaN

#'

INTERFACE USURIO (MENU)


Bipos de menus Menu de Contexto Menu de (pes Sub Menus

#<

Menu de Contexto 4Context Menu7


Bipos de menu
Context Menu :
,ista flutuante de itens no menu %ue aparece %uando vocR pressiona por um lon;o tempo em uma 6iewN /8o suporta 3cones 4apenas texto7N (s itens podem ser adicionados atravMs de: adicionar cdi;o !ava. mMtodo add 47. ou via :M, 4recomendado7N
"" 1o.rescreva este m2todo da classe 3ctivity de forma a criar itens de menu. (*verride !u.lic void on4reate4ontext5enu6 4ontext5enu menu, "" * menu de 4ontexto a construir 'ie% vie%, "" 3 'ie% !ela 7ual o menu de 4ontexto ser+ constru8do 4ontext5enu9nfo menu9nfo: ; su!er.on4reate4ontext5enu6menu, vie%, menu9nfo:< menu.set=eader&itle6"5enu de 4ontexto":< menu.add60, 5enu.>901& , 5enu.?*?@, "menu A1":< menu.add60, 5enu.>901& ) 1, 5enu.?*?@, "menu AB":< menu.add60, 5enu.>901& ) B, 5enu.?*?@, "menu AC":< menu.add60, 5enu.>901& ) C, 5enu.?*?@, "menu AD":< E #@

Menu de Contexto 4Context Menu7

#D

Menu de (pes 4(ptions7


(ptions Menu :
Aparece %uando vocR pressiona o bot8o ZMenuZ do aparelhoN As opes de menu s8o ;eralmente o lu;ar para incluir as funcionalidades b>sicas e itens de nave;a8oN Suporta muitos 3conesN Apenas os seis 4D7 primeiros itens s8o exibidos por padr8oN Cli%ue em ZMaisZ para ver o resto %ue faltaN

/* Cria os tens de menu sem icones */ public boolean onCreateOptionsMenu(Menu menu) { // O mtodo add() usado neste exemplo pede quatro argumentos: // groupId itemId order e title! menu!add(" M#$%&$#'&()M# " *$o+o ,ogo*)menu!add(" M#$%&.%I/ " *sair*)return true0
#E

Sub menus 4Sub Menu7


SubMenu :
$ermite or;ani1ar os itens em ;ruposN /8o suporta sub menus aninhadosN
public boolean onCreateOptionsMenu(Menu menu) { boolean result 1 super!onCreateOptionsMenu(menu)// Cria submenu *2ile* 3ubMenu 4ileMenu 1 menu!add3ubMenu(*2ile*)4ileMenu!add(*$o+o*)4ileMenu!add(*)brir arqui+o*)4ileMenu!add(*2ec5ar*)4ileMenu!add(*2ec5ar tudo*)// Cria submenu *#dit* 3ubMenu editMenu 1 menu!add3ubMenu(*#dit*)editMenu!add(*6es4a7er*)editMenu!add(*8e4a7er*)editMenu!add(*Cortar*)return result0
#F

AlertDialo; $ro;ressDialo;

INTERFACE USURIO (DIALOG)


#H

Caixa de Di>lo;o 4AlertDialo;7


A AlertDialo; M uma extens8o da classe Dialo;N Muitas ve1es. M constitu3do por:
B3tulo Mensa;em Botes I. # ou '
)lert6ialog!9uilder builder 1 ne: )lert6ialog!9uilder(t5is)builder!setMessage(*;oc< tem certe7a que quer sair =*)!setCancelable(4alse) !set>ositi+e9utton(*3im* ne: 6ialogInter4ace!OnClic?@istener() { public +oid onClic?(6ialogInter4ace dialog int id) { MA)cti+itA!t5is!4inis5()0 0) !set$egati+e9utton(*$Bo* ne: 6ialogInter4ace!OnClic?@istener() { public +oid onClic?(6ialogInter4ace dialog int id) { dialog!cancel()0 0))lert6ialog alert 1 builder!create()-

'J

Caixa de Di>lo;o 4$ro;ressDialo;7


+m ProgressDialog M uma extens8o da classe AlertDialogN 6ocR pode combinar os botesN Como um bot8o Cancelar para abortarN

>rogress6ialog progress6ialogprogress6ialog 1 ne: >rogress6ialog(meuContexto)progress6ialog!set>rogress3tAle( >rogress6ialog!3/C@#&DO8IEO$/)@)progress6ialog!setMessage(*Carregando!!!*)progress6ialog!setCancelable(4alse)'I

Boast notification Status bar notification Alarm mana;er

INTERFACE USURIO (NOTIFICAO)


'#

+ma Toast notification uma mensa;em %ue aparece lo;o em primeiro plano na telaN Y compar>vel a um mini pop-upN /8o re%uer nenhuma a8o do usu>rioN =ventualmente M clicar e desaparece ;radualmenteN

/otifica8o 4Boast notification7

''

/oast!ma?e/ext( get)pplicationContext() // Contexto 8!string!toast&message // Obter o texto a exibir /oast!@#$(/D&@O$()!s5o:()- //#xibir a mensagem s5o:()

/otifica8o 4Status Bar /otification7


Y executada fre%uentemente em trRs etapas e em plano de fundo: =tapa VI : Status Bar /otification acrescenta uns pe%uenos 3cones 4com ou sem mensa;em7 W barra de status do SistemaN =tapa V# : )uando o usu>rio clica no 3cone ou mensa;em. o detalhe da notifica8o M exibidoN =tapa V' : )uando o usu>rio clica no detalhe. a a8o definida 4;eralmente um Activit-7 M desencadeadaN $odeTse associar um som. uma vibra8o ou %ual%uer outra op8o oferecida pelo aparelho utili1adoN

'<

/otifica8o 4Alarm Mana;er7


A classe AlarmMana;er permite o acesso aos servios de ;est8o dos alertasN Y poss3vel pro;ramar o tempo e a fre%uRncia de envio de alertasN $odeTse tambMm especificar o componente de destino para ser implementado. se for o casoN

'@

( %ue M uma atividade & Declara8o de Atividade no ar%uivo de manifesto Atividade e Aplica8o ( ciclo de vida de uma Atividade

ACTIVITY

'D

Activit- 4( %ue M &7


Activit- 4atividade7 representa uma tela 4semelhante a Lorm7 pode apresentar um pedido para o usu>rioN $ara aplicaes mais complexas. haver8o. portanto. ActivitiesN =x: +ma aplica8o para o envio de SMS apresentar>:
Atividade de uma lista de contatos Atividade para escrever uma mensa;em +ma Atividade para listar as mensa;ens anti;as. etcN

Atividade versus 6iew


As views s8o componentes ;r>ficos %ue permitem a intera8o do usu>rio e da atividadeN

Atividade versus Aplica8o


+ma Aplica8o consiste em uma ou mais atividades

/o caso de v>rias atividades. uma delas ser> marcada para ser apresentada primeiro para o usu>rio ao iniciar o aplicativoN
'E

Activit- 4Declara8o no ar%uivo Manifest7


Cada activit- deve ser declarada no ar%uivo de Manifest Caso contr>rio. um erro ser> exibido 4Activity Not oun!7
F=xml +ersion1*G!"* encoding1*ut4HI*=J Fmani4est ! ! ! J Fapplication ! ! ! J Facti+itA android:name1*com!pro,ect!MA)cti+itA* android:icon1*Kdra:able/small&pic!png* android:label1*Kstring/4renetic@abel* ! ! ! J F/acti+itAJ ! ! F/applicationJ F/mani4estJ
'F

Atividade 4Ciclo de 6ida7


=xistem %uatro estados poss3veis do ciclo de vida de uma Atividade:
Ati !": %uando a atividade est> em primeiro plano M vis3vel. recebe o foco na entrada do usu>rioN P!#"!$!: )uando a atividade n8o M mais o foco. mas ainda M vis3vel na telaN =ste M o caso %uando. outra atividade transparente ou %ue n8o ocupa toda a tela se torna ativaN P!%!$!: )uando uma atividade P> n8o M vis3vel na telaN =la permanece na memria e mantMm todas as informaes do estadoN =sta atividade M suscet3vel de ser encerrada pelo sistema para libera8o de recursosN I&!ti ! : +ma atividade est> inativa ou morta antes de ser lanadaN (s inativos de atividade s8o removidos da pilhaN

A pilha de atividades M ;erenciada pelo sistemaN


+ma atividade recMmTlanada M automaticamente colocada no topo da pilhaN
'H

Atividade 4Ciclo de 6ida7

<J

APLICAO E RECURSOS
( %ue s8o recursos& =xternali1a8o de recursos $adr8o vsN 0ecursos alternativos (nde colocar os meus recursos &
<I

0ecursos 4( %ue s8o&7


Bodos os dados est>ticos %ue podem ser externali1ados do cdi;o !ava
,eiautes Strin;s 4Cadeia de caracteres7 ma;ens 63deo e audio etcNNN

<#

0ecursos 4=xternali1a8o7
$ermite manter os recursos fora do cdi;o !avaN $ermite fornecer recursos alternativos de acordo com o usu>rio ou e%uipamentos utili1ados:
Sest8o de m2ltiplos idiomas Sest8o de diferentes tamanhos de tela

Y ainda mais importante. dada a prolifera8o de dispositivos %ue suportam o AndroidN


<'

$ara todos os tipos de recursos. M poss3vel especificar um padr8o e diversas alternativas para a mesma aplica8oN
(s recursos alternativos ser8o utili1ados independentemente da confi;ura8o do aparelho. ou %uando n8o houver recursos alternativos para uma determinada confi;ura8oN (s recursos alternativos ser8o utili1ados para casos espec3ficos e predeterminadosNN
Duas configuraes utilizando os recursos padro Duas configuraes das quais uma utiliza os recursos alternativos

0ecursos 4Alternativa7

<<

0esources 4res"7
Cada tipo de recurso deve ser colocado em uma subpasta da pasta res =x :
Meupro,eto/ src/ Min5a)ti+idade!,a+a res/ dra:able/ icon!png laAout/ main!xml in4o!xml +alues/ strings!xml

<@

Sistema de arma1enamento de dados $referRncias 4Shared$references7 Arma1enamento interno Arma1enamento externo Base de dados

ARMA'ENAMENTO DE DADOS

<D

Dados 4Sistema de Arma1enamento7


A plataforma Android oferece diferentes formas de arma1enar dados de uma aplica8o. conforme a necessidadeN =xemplos:
(s dados devem ser privativos para uma aplica8oG (s dados devem ser acessados por outras aplicaesG ( tamanho dos dados a serem arma1enados. etcC
<E

Dados 4$referRncias7
Dados (%i)iti *" s8o ;uardados no formato de chaveOvalorN A classe "#are!Preferences fornece ferramentas para arma1enar e recuperar informaes no formato chaveOvalorN $odemos usar a classe "#are!Preferences para arma1enar dados de tipo primitivo. exemplo$
boolean. float. int. lon; e strin;

(s dados s8o persistidos atravMs das sesses de usu>rio. e ficam dispon3veis mesmo com o aplicativo fechadoN
<F

Dados 4Arma1enamento nterno7


$ermite arma1enar dados privados diretamente na memria do telefoneN (s ar%uivos arma1enados no telefone podem ser utili1ados apenas pela "#! !(+i,!-.*/ )uando o aplicativo M desinstalado. os ar%uivos arma1enados s8o automaticamente exclu3dosN
3tring 2I@#$)M# 1 *ola&arqui+o*3tring string 1 *Oi mundo L*2ileOutput3tream 4os 1 open2ileOutput(2I@#$)M# Context!MO6#&>8I;)/#)4os!:rite(string!get9Ates())4os!close()-

<H

Dados 4Arma1enamento externo7


$ermite arma1enar dados p2blicos em espaos compartilhadosN Bodos os telefones Android suportam esse modo de arma1enamento compartilhado atravMs de:
=ntrada +SB Cart8o de memria Sistema de ar%uivos internoN

@J

Ar%uivos arma1enados dessa forma s8o acess3veis a todos 4hardware. software. utilit>rios7 e podem ser modificados pelo usu>rio. por exemplo. durante a transferRncia para seu computadorN

Dados 4Banco de dados7


$ermite arma1enar dados em de forma estruturada de banco de dados privadoN ( padr8o Android vem com o suporte completo ao banco de dados S),ite 4na ,*&0i1#%!-.* '2%*7
T S),ite M e%uipado tambMm para administrar as consultas S), transacionaisN

Bodos os bancos criados e arma1enados ser8o acess3veis a todas as aplicaes ()!" &.* 0*%! $! !(+i,!-.*)N
@I

Dados 4Banco de dados7


pri+ate static 4inal 3tring 6)/)9)3#&$)M# 1 *meu69!db*pri+ate static 4inal 3tring 6)/)9)3#&/)9@#&$)M# 1 *>)I3*pri+ate static 4inal 3tring 6)/)9)3#&C8#)/#&/)9@# 1 *create table * M 6)/)9)3#&/)9@#&$)M# M * (&id integer primarA ?eA autoincrement * M * countrA&name text not null * M * capital&citA text not null)*// )bre uma no+a conexBo 3.@ite6atabase neste conexto da aplicaNBo // Cria um arqui+o de base de dados se ainda nBo existir! 3.@ite6atabase mA69 1 openOrCreate6atabase(6)/)9)3#&$)M# Context!MO6#&>8I;)/# null)// Cria a tabela mA69!exec3.@(6)/)9)3#&C8#)/#&/)9@#)-

111111111111111111111111111111111111111111111111111111111111 3.@ite6atabase mA69 1 openOrCreate6atabase(6)/)9)3#&$)M# Context!MO6#&>8I;)/# null)// Insere uma no+a lin5a na base de dados! Content;alues ne:8o: 1 ne: Content;alues()ne:8o:!put(*countrA&name* *9rasil*)ne:8o:!put(*capital&citA* *9raslia*)mA69!insert(6)/)9)3#&/)9@#&$)M# null ne:8o:)@#

$lataforma Android para >udio e v3deo 0eprodu8o de >udio e v3deo Lormatos de m3dias suportados

M3DIA(UDIO E V3DEO)

@'

M3dia 45udio e 63deo7


Android oferece uma plataforma completa para codificar"decodificar v>rios tipos de m3diasN ( mesmo mecanismo de acesso %ue M utili1ado por todos os outros recursosN =le facilita a inte;ra8o de ima;ens. v3deos e m2sicas em aplicaes terceirasN
@<

M3dia 4,eitura de 5udio e 63deo7


A leitura de m3dias pode ocorrer de diversas fontes:
( diretrio de recursos: "res"raw
Media>laAer mp 1 ne: Media>laAer()Media>laAer mp 1 Media>laAer!create(context 8!ra:!sound&4ile&G)mp!start()-

( sistema de ar%uivos: ,ocal 4$AB[7 ou 0ede4+0,7


Media>laAer mp 1 ne: Media>laAer()mp!set6ata3ource(>)/D&/O&2I@#)mp!prepare()mp!start()@@

M3dia 4Lormatos suportados7


5udio
AAC ,C",B$. [=TAACvI 4AACQ7. [=TAACv# 4enhanced AACQ7. AM0T/B. AM0T9B. M$'. M D . (;; 6orbis. $CM"9A6=

63deo
[N#D'. [N#D< A6C. M$=ST< S$

@D

)ual M o servio& Servios locais Servios remotos

SERVIOS EM SEGUNDO PLANO


@E

Servios 4( %ue M&7


Al;umas aplicaes precisam continuar executando em se;undo plano. sem a interven8o do usu>rioN =stes processos de fundo continuam funcionando mesmo %uando o telefone est> ocupado com outras tarefas ou atividadesN

@F

Servios 4,ocais e 0emotos7


Servios ,ocais
/8o s8o acess3veis a partir de outras aplicaesN =xecutam no mesmo processo %ue a aplica8o executaN

Servios 0emotos
S8o acess3veis a outras aplicaes Dispon3veis a outras aplicaes por meio do A D, 4Android nterface Definition ,an;ua;e7N
@H

Servios de ;eolocali1a8o Simula8o dos dados de ;eolocali1a8o Soo;le Maps 4biblioteca externa7

GEOLOCALI'AO E MAPAS

DJ

Seolocali1a8o e Mapas

4Servios7

As principais tMcnicas utili1adas pelo Android para determinar a posi8o atual de um dispositivo s8o as se;uintes:
,ocation Mana;er : Lornecimento de ;anchos 4pontos de entrada7 aos servios de ;eolocali1a8o com os obPetivos de:
(bter sua posi8o atual Monitorar movimentos durante um per3odo determinado Salvar ou excluir os dados de locali1a8o periodicamente atravMs do LocationProvider =xecutar alertas de proximidade ao se aproximar de uma 1ona espec3fica

DI

,ocation $roviders : Cada \Lornecedor de $osi8o]* representa uma tecnolo;ia de locali1a8o da posi8o do aparelhoN

Seolocali1a8o e Mapas
posi8o7

4Simulando uma

+tili1ar o DDMS 4DalviA Debu; Monitor Service7 do =clipse na perspectiva DDMS para :
=nviar manualmente os dados de locali1a8o 4lon;itude"latitude7 do %ocationProvi!er

+tili1ar um ar%uivo S$: 4S$S =xchan;e Lormat7 %ue descreve a rota W ^simular_N S$: M um ar%uivo :M, respons>vel pela comunica8o dos dados S$S +tili1ar o ar%uivo U,M %ue descreve os pontos de referRncia para a se%uRncia de leituraN +tili1ar ^S=(_ em linha de comandoN Acess3vel atravMs do console emulador do Android. %ue permite a simula8o de posiesN
D#

Seolocali1a8o e Mapas

4Soo;le Map7

Baseado na classe : ,*)/1**1+2/!&$%*i$/)!("/M!(Vi24 $ermite adicionar os recursos oferecidos pelo Soo;le Maps diretamente em sua aplica8oN =xibe um mapa com os dados obtidos a partir do Soo;le MapsN Controle do `oom 4controles de toques na tela) Lornece todos os elementos de interface ;r>fica necess>rios ao usu>rio para controle dos mapasN Cadastro de aceita8o de uso 4licena7 . necess>ria para utili1a8o dos do Soo;le MapsN

D'

[ttpClient A$ nvocation st-les 4in [ttpClient A$ 7 Lormato de 0esposta

5E6 SERVICE E NUVEM

D<

9eb services 4[ttpClient A$ 7


Baseado no Apache [BB$ pacAa;e Lornece uma interface para um client [BB$ Suporte multitarefa Suporte ao modo S3ncrono e Ass3ncrono
public abstract [ttp0esponse execute 4[ttp+ri0e%uest re%uest7

0esponse Lormats
:M, !S(/ 0SS. Atom

:M, $arsin;
SA: D(M $ullTparser
D@

9eb services 4[ttpClient A$ 7


C7$i1* $2 E82)(+* 9 S:&,%*&* DttpClient 5ttpclient 1 ne: 6e4aultDttpClient()// >repara o ob,eto request Dttp(et 5ttpget 1 ne: Dttp(et(url)// #xecuta o request Dttp8esponse responsetrA { response 1 5ttpclient!execute(5ttpget)// Obtem o response entitA Dttp#ntitA entitA 1 response!get#ntitA()i4 (entitA L1 null) { // %ma simples resposta de leitura O3O$ Input3tream instream 1 entitA!getContent()result 1 con+ert3tream/o3tring(instream)DD

9eb services 4[ttpClient A$ 7


C7$i1* $2 E82)(+* 9 A"":&,%*&* DttpClient 5ttpclient 1 ne: 6e4aultDttpClient()// >repara o ob,eto request Dttp(et 5ttpget 1 ne: Dttp(et(url)trA { 0es!onse=andler<1tring> m0es!onse=andler = ne% -asic0es!onse=andler6:< result = tt!client.execute6 tt!get, m0es!onse=andler:<

DE

(s princ3pios de se;urana do Android As permisses

SEGURANA E PERMISS;ES

DF

Se;urana e permisses
( padr8o M nenhum aplicativo M autori1ado a executar operaes %ue ter8o efeito ne;ativo sobre outras aplicaes. ou sistema operacional. ou alterar a experiRncia do usu>rioN Cada aplicativo M executado em um processo exclusivo para ele e fechadoN
=le n8o pode interferir com outras aplicaes. a menos %ue sePa expressamente autori1ada a utili1ar os recursos n8o previstos por padr8oN =: : Serenciar SMS
Fmani4est xmlns:android1*5ttp://sc5emas!android!com/ap?/res/android* pac?age1*com!android!app!mAapp* J FusesHpermission android:name1*android!permission!8#C#I;#&3M3* /J F/mani4estJ
DH

2radutores
A traduo deste material foi realizada de forma colaborativa e voluntria pela equipe do DFJ ! """#df$u%#or%& em 'aio de (0))# Daniel de*liveira Daniel +ield Francisco 'arcio da ,ilva -ete 'artins .ufino 'arcos Aires /atali ,ilverio 0atric1 /ascimento ,ilvani /eri
70

R2&<&,i! L21!+
$artes desta apresenta8o s8o modificaes baseadas nos trabalhos compartilhados por: $roPeto de Cdi;o Aberto Android
a http:""codeN;oo;leNcom"policiesNhtml

Bhe !ava $assion


a http:""wwwNPavapasionNcom

0eto Meier autor do livro \Android #] b Loram usados de acordo com os termos descritos na licena Creative Commons #N@ a http:""creativecommonsNor;"licenses"b-"#N@"

Você também pode gostar