Você está na página 1de 41

Mag.

Iranc|sco Marnnez
Andro|d
Introducc|n

MSc. lranclsco Marunez
fomaru[unlcauca.edu.co
Mag. Iranc|sco Marnnez
Andro|d: u no es .
una lmplemenLacln !ava ML
arLe de Llnux hone SLandards lorum u CMA
SlmplemenLe una capa de apllcacln (como ulC)
un Lelefono mvll
La respuesLa de Coogle a lhone
Mag. Iranc|sco Marnnez
ju es Andro|d?
laLaforma open source de Coogle para
desarrollo de apllcaclones mvlles.
lnLroduce nuevos paradlgmas en el
dlseno del framework para el desarrollo
de apllcaclones.
1be ftst ttoly opeo ooJ comptebeoslve ploqotm fot moblle
Jevlces, oll of tbe sofwote to too o moblle pbooe bot wltboot
tbe ptoptletoty obstocles tbot bove bloJeteJ moblle looovouoo.
(bup.//qooqlebloq.bloqspot.com/2007/11/wbetes-my-
qpbooe.btml)
Mag. Iranc|sco Marnnez
Caracter|sncas de Andro|d
SoporLada en el slsLema operauvo Llnux para la gesun de
memorla, dlsposluvos y procesos.
SoporLada en la mayorla de Als !ava SL para el desarrollo de
apllcaclones (excepLo AW1, Swlng).
Las llbrerlas de Androld abarcan aspecLos relaclonados con
Lelefonla, vldeo, grcos, ul y oLros aspecLos del dlsposluvo.
Cfrece una opumlzacln de la !vM convenclonal para
dlsposluvos llmlLados, conoclda como ualvlk vM.
ulsenado para sausfacer las necesldades de los operadores
mvlles, fabrlcanLes de dlsposluvos y desarrolladores de
apllcaclones.
Llcencla: Apache Llcense 2.0
Mag. Iranc|sco Marnnez
Un poco de h|stor|a
lragmenLacln: a nlvel de SC para dlsposluvos mvlles: Symblan,
Wlndows Moblle, Moblle Llnux, lphone .
Coogle adqulrl Androld lnc. en 2003 con el nlmo de lnlclar el
desarrollo de una plaLaforma ablerLa que combauera la guerra de
SCs.
Ln 2007 un grupo de llderes de la lndusLrla se une a la lnlclauva,
formando la Cpen PandseL Alllance (MoLorola, Samsung, Sony
Lrlcsson, 1oshlba, lnLel, vodafone, Coogle, enLre oLros).
Ln novlembre del mlsmo ano, se llbera la prlmera versln del Suk.
1-Moblle lanza el prlmer smarLphone basado en esLa plaLaforma en
Sepuembre de 2008 (1-Moblle C1).
Mag. Iranc|sco Marnnez
Un poco de h|stor|a
Andro|d 1.S - Cupcake Andro|d 1.6 - Donut Andro|d 2.0.1 - Lc|a|r Andro|d 2.2 - Iroyo
Andro|d 2.3 -
G|ngerbread
Andro|d 3.0 -
noneycomb
Andro|d 4.0 -
IceCream Sandw|ch
Andro|d 4.1, 4.2 -
Ie||y 8ean
Mag. Iranc|sco Marnnez
Andro|d - D|spos|nvos
labrlcanLes de Lelefonos Androld:
hup://www.androphones.com
Mag. Iranc|sco Marnnez
Class le
Da|v|k V|rtua| Mach|ne
versln de la !vM opumlzada para dlsposluvos llmlLados.
asos de opumlzacln
1. Comblnacln de varlos [ava class les en un archlvo e[ecuLable .dex.
Class le
Class le
.dex le
~ 1]2 .[ar le
Mag. Iranc|sco Marnnez
Da|v|k V|rtua| Mach|ne
2. Cpumlzacln del mecanlsmo de recoleccln de basura (CC).

3. Lnsambla[e de cdlgo -> reglsLros como unldad prlmordlal. no se
puede e[ecuLar byLecodes [ava dlrecLamenLe -> conversln a .dex
les

4. uso lnLenslvo de xML para la denlcln de layouL grco. 1odos
los archlvos son compllados a formaLo blnarlo denLro del
dlsposluvo.
Mag. Iranc|sco Marnnez
Da|v|k V|rtua| Mach|ne
Lscrlba la apllcacln en
!ava
Complle en !ava
Se Lransforma a ualvlk byLecode
Llnux CS
Se carga en ualvlk vM
Mag. Iranc|sco Marnnez
Arqu|tectura de |a p|ataforma Andro|d
Mag. Iranc|sco Marnnez
Arqu|tectura de |a p|ataforma Andro|d
L|nux kerne|: SC base, gesun de memorla, procesos,
neLworklng y oLros servlclos.
L|brer|as nanvas: llbrerlas comparudas escrlLas en C, C+
+, complladas para el hw especlco del dlsposluvo. LnLre
esLas se lncluye:
CesLor de navegacln: slmllar a vlsLa o Complz, pero ms
slmple.
Cesun de grcos 2u y 3u.
Medla codecs (AAC, AvC, M3, MLC-4)
SCL uaLabase: lncluye una versln llvlana de SCLlLe, usado en
llrefox y lphone.
8rowser englne: uso de WebklL, usada en Coogle Chrome,
Apple Safarl, lphone, 8lackberry (6, 7) y la plaLaforma S60 de
nokla.
Mag. Iranc|sco Marnnez
Arqu|tectura de |a p|ataforma Andro|d
Andro|d runnme: lncluye la mqulna vlrLual (ualvlk vM)
y llbrerlas !ava.
Iramework de ap||cac|ones: proporclona los bloques de
alLo nlvel para el desarrollo de apllcaclones (prelnsLalado
y exLenslble):
AcuvlLy manager: conLrola el clclo de vlda de las apllcaclones.
ConLenL provlder: encapsula los daLos que neceslLan ser
comparudos enLre las apllcaclones (e.[. conLacLos).
8esource Manager: gesuona los recursos de las apllcaclones
como Lal (e.[. lmagenes).
Locauon Manager: gesuona los aspecLos relaclonados con
locallzacln.
noucauon manager: gesuona los evenLos relaclonados con la
apllcacln (e.[. arrlbo de mensa[es, alerLas)
Mag. Iranc|sco Marnnez
Arqu|tectura de |a p|ataforma Andro|d
App||canons and w|dgets: capa superlor donde
reslden las apllcaclones y wldgeLs desarrollados.
lncluye apllcaclones esLndar prelnsLaladas en el
Lelefono:
hone ulaler
Lmall
ConLacLs
Web browser
Androld markeL
Mag. Iranc|sco Marnnez
Ap||cac|ones Andro|d: Componentes fundamenta|es
V|stas
V|stas
roveedores de
Conten|do
Adm|n|strador

de

Nonhcac|ones
Adm|n|strador
de
kecursos
Adm|n|strador

de

Acnv|dades
V|stas
Mag. Iranc|sco Marnnez
Ap||cac|ones Andro|d: Componentes fundamenta|es
Content rov|ders
acceder daLos de
oLras apllcaclones
(e.[. conLacLos).
kesource Manager,
proporclona acceso a
recursos (e.[. sLrlngs,
lmgenes, archlvos layouL)
Nonhcanon Manager
despllegue de alerLas en la
barra de esLado
Acnv|ty Manager gesuona el
clclo de vlda de las
apllcaclones y provee una
plla de navegacln.
V|ews
llsLas, Lex boxes,
boLones, embedded
web browser
Mag. Iranc|sco Marnnez
Andro|d: Anatom|a de una ap||cac|n
Acnv|nes
Serv|ces
Content
rov|ders
Intents
8roadcast
kece|vers
Nonhcanons
W|dgets
Mag. Iranc|sco Marnnez
Andro|d: Anatom|a de una ap||cac|n
Content prov|der
admlnlsLracln de
daLos para la
apllcacln
(comparudos con
oLras apllcaclones)
Serv|ces
Se e[ecuLan en
background (no uenen
lnLerface grca)
Intents
Lspeclca cualquler
accln denLro de la
apllcacln
Acnv|ty
Capa de presenLacln de
la apllcacln.
Mag. Iranc|sco Marnnez
C|c|o de v|da
Ll esLado de cada acuvldad es deLermlnado por su
poslcln en un sLack de Acuvldades.
Mag. Iranc|sco Marnnez
C|c|o de v|da
onCreate(): la acuvldad lnlcla. Se reallzan procesos de lnclallzacln
onStart(): una acuvldad esL a un punLo de ser desplegada al usuarlo.
onkesume(): se lnvoca cuando la acuvldad esL llsLa para lnLeracLuar con
el usuarlo.
onause(): la acuvldad esL punLo de lr a background (oLra acuvldad ha
sldo lanzada).
Mag. Iranc|sco Marnnez
C|c|o de v|da
onStop(): la acuvldad ya no es vlslble al usuarlo y no ser usada duranLe
algun uempo.
onkestart(): la acuvldad es redesplegada desde un esLado SLop.
onDestroy(): se lnvoca [usLo anLes de que la acuvldad sea desLrulda
onSaveInstanceState(): guardar el esLado de una acuvldad (e.[. poslcln
del cursor en un campo de LexLo). Mane[ado por Androld.
onkestoreInstanceState(): la acuvldad es relnlclallzada desde un esLado
guardado prevlamenLe por onSavelnsLanceSLaLe. Mane[ado por Androld.
Mag. Iranc|sco Marnnez
C|c|o de v|da
In|c|o
Acnv|dad
onCreate()
onStart()
onkesume()
Acnv|dad
e[ecutndose
onIreeze()
onause()
onStop()
onDestroy()
Se |n|c|a nueva acnv|dad
Acnv|dad no v|s|b|e
Acnv|dad cance|ada
roceso cance|ado
onkestart()
Acnv|dad a
foreground
Acnv|dad a
foreground
Ctras ap||cac|ones
requ|eren memor|a
Usuar|o regresa a |a
Acnv|dad
Mag. Iranc|sco Marnnez
C|c|o de v|da
Mag. Iranc|sco Marnnez
C|c|o de v|da
Mag. Iranc|sco Marnnez
Lstructura de| cd|go
code
lmages
les
ul layouLs
consLanLs
AuLogeneraLed
resource llsL
Mag. Iranc|sco Marnnez
Lstructura de| cd|go
Andro|dMan|fest.xm|: archlvo xml descrlpLor de la apllcacln
(e.[. acuvldades, servlclos proporclonados, permlsos).
src]: cdlgo fuenLe !ava de la apllcacln.
res]: conuene recursos asoclados a la apllcacln como lconos,
Cul layouLs.
assets]: conuene oLros archlvos esLucos que se desea
empaqueLar con la apllcacln.
Mag. Iranc|sco Marnnez
Lstructura de| cd|go
Sobre |os recursos .
k.[ava: conuene una serle de consLanLes que hacen
referencla a recursos locallzados en el dlrecLorlo /res
(slmllar a las .properues [ava). Cesuonado por Androld.
Ll dlrecLorlo res:
res]drawab|e]: lmgenes (nC, !LC, eLc).
res]|ayout: especlcaclones sobre ul layouLs denldas en xML.
res]raw: archlvos de propslLo general (e.[. un archlvo CSv).
res]va|ues: cadenas, consLanLes.
res]xm|: oLros archlvos xML de propslLo general.
Mag. Iranc|sco Marnnez
Lstructura de| cd|go
Una vez comp||ado .

b|n]c|asses]: clases !ava complladas
b|n]c|asses.dex: e[ecuLable creado a parur de las clases
complladas.
b|n]appname.apk: e[ecuLable de la apllcacln(appname
corresponde al nombre de la apllcacln).

Ll archlvo apk es un archlvo Zl que conuene el archlvo dex, la
versln compllada de los recursos (resources.arsc), recursos no
compllados (/res/raw) y el descrlpLor (AndroldManlfesL.xml).
Mag. Iranc|sco Marnnez
Lstructura de| cd|go
CLher appllcauons
Pas llfe-cycle
screen
App Lo handle conLenL
8ackground app
Llke muslc player
vlews
manlfesL
AcuvlLy
lnLenLs
Servlce
noucauons
ConLenLrovlders
Mag. Iranc|sco Marnnez
Lntorno de desarro||o Andro|d
Androld Suk lncluye varlas herramlenLas uules para
desarrollo de apllcaclones.
8reve revlsln:
hup://developer.androld.com/gulde/developlng/Lools/lndex.hLml

Las ms lmporLanLes:
V|rtua| Dev|ce Manager: crea y gesuona Androld vlrLual uevlces
(Avu).
Andro|d Lmu|ator: lmplemenLacln de una mqulna vlrLual
Androld.
Mag. Iranc|sco Marnnez
Lntorno de desarro||o Andro|d
Da|v|k Dev|ce Mon|tor|ng Serv|ce (DDMS): conLrol y monlLoreo
con propslLos de debugglng.
Andro|d Asset ackag|ng 1oo| (AA1): consLruye los archlvos
Androld para dlsLrlbucln (.apk)
Andro|d Debug 8r|dge (AD8): apllcacln C/S que enlaza a un
emulador que se esL e[ecuLando.
AD1 |ug|n (Lc||pse): lncorpora la mayorla de las herramlenLas
mosLradas en el luL.
Mag. Iranc|sco Marnnez
V|rtua| Dev|ce Manager
Cesuonar dlsposluvos vlrLuales
como lnsLanclas del emulador
en la mqulna local.
Los Avu (Androld vlrLual
u e v l c e s ) e m u l a n l a s
caracLerlsucas hardware y
s owa r e de dl f er enL es
dlsposluvos.
Mag. Iranc|sco Marnnez
L| Lmu|ador Andro|d
8asado en una Lecnologla de
emul acl n de procesadores
conoclda como CLMu (emulacln
de un SC sobre oLro).
CLMu permlLe emulacln a nlvel
de Cu.
Androld -> procesador basado en
A8M (Advanced 8lSC Machlne).
ulsposluvos como lod, nlnLendo
uS, Cameboy Advance usan esLa
arqul LecLura (aprox. 30. 000
LranslsLores vs. 3.2 mlllones del
enuum clslco).
Mag. Iranc|sco Marnnez
Da|v|k Debug Mon|tor Serv|ce (DDMS)
ermlLe observar el comporLamlenLo de la apllcacln
y su lnLeraccln por deba[o de la supercle.
PerramlenLa de debugglng para: lnLerrogar procesos
acuvos, comporLamlenLo del heap, Lhreads,
exploracln del slsLema de archlvos.
Acceso slmpllcado a capLuras de panLalla y logs
generados por LogCat.
lmplemenLado como una perspecuva cuando esL
lnLegrado con Lcllpse.
Mag. Iranc|sco Marnnez
Andro|d Debug 8r|dge (AD8)
laclllLa la conexln con Lmuladores o dlsposluvos
Androld.
Como un canal de comunlcacln enLre el
hardware de la mqulna local y el emulador/
dlsposluvo Androld, permlLe:
lnsLalacln de apllcaclones
Cesun de archlvos (lecLura/escrlLura)
L[ecucln de comandos sobre el dlsposluvo ob[euvo
(e.[. consulLa a bases de daLos SCLlLe).
Mag. Iranc|sco Marnnez
Andro|d Iava ackages
andro|d.app: lmplemenLa el modelo de apllcacln de
Androld (clases relaclonadas con acuvldades, conLroles,
dllogos, alerLas).
andro|d.b|uetooth: funclonalldad 8lueLooLh.
andro|d.content: lmplemenLa los concepLos de
proveedores de conLenldos.
andro|d.content.pm: gesLor de paqueLes (paqueLes y
apllcaclones lnsLaladas, servlclos, permlsos, eLc).
andro|d.content.res: gesun de recursos
andro|d.database: lmplemenLa la ldea de una base de
daLos absLracLa.
Mag. Iranc|sco Marnnez
Andro|d Iava ackages
andro|d.database.sq||te: lmplemenLa los concepLos del
paqueLe androld.daLabase usando SCLlLe como base de daLos
nslca.
andro|d.gesture: gesun de gesLures denldos por usuarlo.
andro|d.graph|cs: gesun de grcos (Canvas, 8lLmap,
Camera, Color).
andro|d.graph|cs.drawab|e: proLocolos para dlbu[o y mane[o
de lmgenes en background.
andro|d.graph|cs.drawab|e.shapes: lmplemenLa formas
(ArcShape, CvalShape, 8ecLShape, eLc).
andro|d.hardware: gesun del hw de la cmara del
dlsposluvo.
Mag. Iranc|sco Marnnez
Andro|d Iava ackages
andro|d.|ocanon: soporLe para apllcaclones L8S.
andro|d.med|a: reproduccln de audlo y vldeo (soporLe para
sLreamlng).
andro|d.net: Lraba[o en red a Lraves de sockeLs (soporLe para
P11S).
andro|d.net.w|h: gesun de conecuvldad Wlll.
andro|d.os: servlclos del slsLema operauvo (L[. Archlvos, baLerla,
poLencla.).
andro|d.sax: lmplemenLacln sencllla de Slmple Al for xML.
andro|d.speech: reconoclmlenLo de voz (1.3 o superlor).
andro|d.speech.us: soporLe para LexL Lo speech.
andro|d.te|ephony: servlclos relaclonados con la red de Lelefonla
mvll (locallzacln de celda, numero Lelefnlco, nombre del
operador, serlales de ldenucacln ).
Mag. Iranc|sco Marnnez
Andro|d Iava ackages
andro|d.text: procesamlenLo de LexLo.
andro|d.webk|t: clases que represenLan funclonalldades
del navegador Web.
com.goog|e.andro|d.maps: clases para Lraba[ar con
Coogle Maps.
Andro|d Iava AI -> ms de 40 paqueLes y 700 clases!
Mag. Iranc|sco Marnnez
A|gunos recursos
Sluo oclal: hup://www.androld.com
Androld ueveloper slLe:
hup://developer.androld.com/lndex.hLml
Comunldad de desarrollo: hup://www.anddev.org/
Mag. Iranc|sco Marnnez
;Grac|as!
jreguntas?
MSc. lranclsco Marunez
fomaru[unlcauca.edu.co

Você também pode gostar