Universidad de Guadalajara Centro de Ciencias Exactas e Ingenierías Taller de sistemas operativos Profesor: José u!én "aldonado "ercado "iércoles de #:$$am % &&:$$ &&:$$ am ' (iernes de &$:$$am % &&:$$am &&:$$am )ecci*n +$, C'nt-ia Eli.a!et- Pére. Uri!e Tema: )istema )i stema operativo opera tivo /ndroid
/ndroid "odelo de desarrollo: Código Abierto 01cleo: Linux Tipo de n1cleo: Monolítico Plataformas soportadas: ARM, x86,4 MIPS,5
IBM PO!R6 "
)istema de gesti*n de pa2uetes: #oogle Pl$% ,
AP& "étodo de actuali.aci*n: #oogle Pl$% Idiomas: Multiling'e
L$ e(tructur$ del (i(te)$ o*er$ti+o Android (e co)*one de $*lic$cione( ue (e e-ecut$n en un .r$)e/or0 1$+$ de $*lic$cione( orient$d$( $ ob-eto( (obre el n2cleo de l$( bibliotec$( de 1$+$ en un$ )3uin$ +irtu$l $l+i0 con co)*il$ción en tie)*o de e-ecución L$( bibliotec$( e(crit$( en lengu$-e C inclu%en un $d)ini(tr$dor de inter.$ gr3.ic$ 7(ur.$ce )$n$ger, un .r$)e/or0 O*enCore, un$ b$(e de d$to( rel$cion$l S9Lite, un$ API gr3.ic$ O*en#L !S :; <, un )otor de renderi$do eb&it, un )otor gr3.ico S#L, SSL % un$ bibliotec$ e(t3nd$r de C Bionic !l (i(te)$ o*er$ti+o e(t3 co)*ue(to *or =: )illone( de líne$( de código, inclu%endo < )illone( de líne$( de >ML, :,8 )illone( de líne$( de lengu$-e C, :,= )illone( de líne$( de 1$+$ % =,"5 )illone( de líne$( de C?? 3istoria
!(te (i(te)$ o*er$ti+o e(t3 b$($do en Linux % l$ ide$ er$ tener un nue+o (o.t/$re *$r$ di(*o(iti+o( )ó+ile( con *$nt$ll$ t3ctil co)o (on lo(
[email protected]( inteligente( % l$( t$blet( !l (i(te)$ .ue de($rroll$do *or Android, Inc, ue #oogle re(*$ldó econó)ic$)ente en (u )o)ento % ue )3( t$rde co)*ró en el :;;5 L$ co)*$í$ origin$l er$ de P$lo Alto, C$li.orni$ 7.und$d$ en :;;< !ntre lo( co.und$dore( de Android ue (e .ueron $ tr$b$-$r $ #oogle e(t3n And% Rubin 7co.und$dor de $nger, Ric Miner 7co .und$dor de ild.ire Co))unic$tion(, Inc, Dic0 Se$r( 7$lgun$ +e EP en FMobile, % Cri( ite 7uien enc$beó el di(eo % el de($rrollo de l$ inter.$ en ebFE Android (e *re(entó en el :;;" -unto con l$ O*en G$nd(et Alli$nce, un con(orcio de co)*$í$( de $rd/$re, (o.t/$re % teleco)unic$cione(, con l$ intención de $+$n$r en lo( e(t3nd$re( de lo( (i(te)$( $bierto( !l *ri)er
[email protected] con Android .ue el GFC re$), ue e)*eó $ +ender(e en octubre del :;;8 H(te e( el *roducto *rinci*$l de l$ O*en G$nd(et Alli$nce Se e(ti)$ ue %$ l$( unid$de( tele.ónic$( con $lgun$ +er(ión de Android (u*er$n $ cu$luier otro (i(te)$ o*er$ti+o )ó+il de(de el :;=; $ tiene un$ in.luenci$ en el )erc$do ue e( de 4<6J en lo( !(t$do( Knido( % $ ni+el )undi$l %$ tiene el 5;J, )edido en el cu$rto tri)e(tre del :;== $ tiene *ue( )3( ue el doble ue el iOS de A**le !xi(te un$ gr$n co)unid$d de de($rroll$dore( ue e(criben $**( *$r$ extender $(í l$ .uncion$lid$d de e(to( di(*o(iti+o( A l$ .ec$ (e )encion$n )3( de = )illón de $*lic$cione( 7donde do( tercio( (on gr$tuit$( % ue *ueden con(eguir(e en #oogle Pl$%, l$ tiend$ +irtu$l de $*lic$cione( de Android G$% (in e)b$rgo, $ di.erenci$ de A**le, ue )$ntiene control .@rreo (obre (u tiend$ +irtu$l 7$ )eno( ue el u(u$rio $g$ jailbreak del (i(te)$, otr$( tiend$( +irtu$le( co)o l$ S$)(ung A**( C$be $cer @n.$(i( en ue Android e( de código $bierto en (u )$%orí$ 7t$l +e un *$r de *$rte( $2n (on *ro*iet$ri$( *or *$rte de #oogle % e(t3 b$-o l$ licenci$ A*$ce, ue e( libre % de código $bierto L$ e(tructur$ de Android (e co)*one de $**( ue (e e-ecut$n en un entorno de 1$+$ 7orient$do $ ob-eto( (obre un n2cleo de bibliotec$( de 1$+$ en un$ )3uin$ +irtu$l deno)in$d$ Dalvik , con co)*il$ción en tie)*o de e-ecución Co)*il$, *or l$ n$tur$le$ de 1$+$, $ un$ )3uin$ +irtu$l !l no)bre Android $cen $lu(ión $ l$ no+el$ de Pili* & ic0 ¿Sueñan los androides con ovejas eléctricas?, ue *o(terior)ente .ue $d$*t$d$ $l cine co)o Bl$de Runner !l no)bre del logoti*o e(
And%N
Por $lgun$ r$ón, l$( +er(ione( de Android reciben el no)bre de *o(tre( en ingl@( !n c$d$ +er(ión el *o(tre elegido e)*ie$ *or un$ letr$ di(tint$ (iguiendo un orden $l.$b@tico •
A A**le Pie 7+=;, F$rt$ de )$n$n$
•
B B$n$n$ Bre$d 7+==, P$n de *l3t$no
•
C Cu*c$0e 7+=5, P$nue
•
onut 7+=6, Ro(uill$
•
! Hcl$ir 7+:;+:=, P$(tel .r$nc@(
•
Q Qro%o 7+::, 7Abre+i$tur$ de .roen %ogurt ogur el$do
•
# #ingerbre$d 7+:<, P$n de -engibre
•
G Gone%co)b 7+<;+<=+<:, P$n$l de )iel
•
I Ice Cre$) S$nd/ic 7+4;, S3nd/ic de el$do
•
1 1ell% Be$n#u))% Be$r 7+4=+4:+4<,
•
& &it&$t 7+44
!l logoti*o de l$ *$l$br$ Android .ue di(e$do con l$ .uente roid, ec$ *or A(cender Cor*or$tion !l +erde e( el color del robot de Android ue di(tingue $l (i(te)$ o*er$ti+o !l color *rint e( PMS <"6C % color #BD en ex$deci)$l e( TA4C6<, co)o (e e(*ecí.ic$ en l$ Android Br$nd #uideline( L$ ti*ogr$.í$ de Android (e ll$)$ Dor$d, (olo u($do en el texto del logo P$r$ Ice Cre$) S$nd/ic (e introduce un$ ti*ogr$.í$ ll$)$d$ Roboto, ue, (eg2n lo( *ro*io( cre$dore(, e(t3 *en($d$ *$r$ $*ro+ec$r )e-or l$ legibilid$d en lo( di(*o(iti+o( de $lt$ re(olución )ituaci*n actual
!l (i(te)$ o*er$ti+o Android (e u($ en
[email protected]( inteligente(, orden$dore( *ort3tile(, netboo0(, t$blet$(, #oogle FE, relo-e( de *ul(er$, $uricul$re( % otro( di(*o(iti+o(
Android $ (ido di(e$do *$r$ *er)itir $ lo( u(u$rio( cre$r di(tint$( $*lic$cione( $*ro+ec$ndo l$( di(tint$( c$r$cterí(tic$( % utilid$de( de (u(
[email protected]( Por e-e)*lo, $l cre$r un$ utilid$d con Android, un u(u$rio *odr3 u($r l$ .unción de ll$)$d$ de (u
[email protected], o l$ .unción de )en($-erí$ de texto, l$ de l$ c3)$r$ de .oto(, etc L$ ide$ e( ue (e *ued$n cre$r todo ti*o de $*lic$cione( u($ndo tod$( l$( .uncione( del
[email protected] ue (e uier$, % co)bin3ndol$( co)o (e uier$ Ade)3(, Android o*ti)i$ lo(
recur(o( interno( del
[email protected] 7)e)ori$, $rd/$re, etc con el ob-eti+o de ue l$ $*lic$ción .uncione de l$ )e-or )$ner$ *o(ible Android *er)ite cre$r $*lic$cione( to)$ndo en con(ider$ción d$to( ue (e obtienen de )uco( lug$re( Por e-e)*lo, (i (e uiere el$bor$r un$ nue+$ $*lic$ción ue (ir+$ $ )odo de bibliotec$ )ó+il, Android no (ólo to)$r3 en cuent$ lo( no)bre( de lo( libro( ue %$ (e teng$n $l)$cen$do( en nue(tro
[email protected], (ino ue (e *odr3 recurrir $ un$ b$(e de d$to( ue (e encuentre en Internet *$r$ engro($r lo( .ondo( Pero e( )3(, no $r3 .$lt$ +i(it$r e(t$ b$(e de d$to( $ di$rio *$r$ +er (i (e $n $$dido nue+o( título(, Android (e enc$rg$r3 de detect$r lo( 2lti)o( título( % de $$dirlo( $uto)3tic$)ente $ l$ bibliotec$ Android $ (ido di(e$do *$r$ ue cre$r % lle+$r $ l$ *r3ctic$ nue+$( $*lic$cione( (e$ un$ t$re$ .3cil Por otr$ *$rte, el (i(te)$ o*er$ti+o e(t3 *en($do *$r$ ue tod$( l$( $*lic$cione( ue (e creen (e *ued$n utili$r con )uc$ .$cilid$d t$)bi@n e2uisitos de -ard4are
Lo( reui(ito( )íni)o( (on lo( (iguiente( •
Proce($dor $ =g
•
5=:)b de RAM
•
P$nt$ll$ de <5U
•
P$nt$ll$ t3ctil % )ultitouc o )ultit$ctil 7nece($rio *$r$ de(*l$$r ob-eto( en *$nt$ll$, $cti+$r el oo) % otr$( .uncione(
L$ *l$t$.or)$ de $rd/$re *rinci*$l de Android e( l$ $ruitectur$ ARM G$% (o*orte *$r$ x86 en el *ro%ecto Androidx86, % #oogle FE utili$ un$ +er(ión e(*eci$l de Android x86 ARM e( un$ $ruitectur$ RISC 7Reduced In(truction Set Co)*uterVOrden$dor con Con-unto Reducido
de In(truccione( de <: bit( de($rroll$d$ *or ARM Golding( Se ll$)ó Advanced RISC Machine, % $nterior)ente Acorn RISC Machine L$ $ruitectur$ ARM e( el con-unto de in(truccione( de <: bit( )3( $)*li$)ente utili$do en unid$de( *roducid$( (entajas ' desventajas del sistema operativo /ndroid (entajas
+esventajas
!l código de Android e( $bierto #oogle !l eco de tener +$ri$( $*lic$cione( liberó Android b$-o licenci$ A*$ce $biert$( $cen ue el con(u)o de l$ Cu$luier *er(on$ *uede re$li$r un$ b$terí$ $u)ente $*lic$ción *$r$ Android
!l (i(te)$ Android e( c$*$ de $cer .uncion$r $ l$ +e +$ri$( $*lic$cione( % $de)3( (e enc$rg$ de ge(tion$rl$(, de-$rl$( en )odo (u(*en(ión (i no (e utili$n e inclu(o cerr$rl$( (i lle+$n un *eriodo deter)in$do de in$cti+id$d
Android e(t3 tot$l)ente .r$g)ent$do *ro+oc$ndo *roble)$( de inco)*$tibilid$d con $lgun$( $*lic$cione( de l$ M$r0et ue .uncion$n en deter)in$d$( +er(ione( de Android
Android d$ co)*let$ libert$d $l *ro*iet$rio L$ Dece(id$d i)*erio($ de in(t$l$r de un ter)in$l $ in(t$l$r lo ue le +eng$ en $*lic$cione( extern$( *$r$ (olucion$r g$n$ *roble)$( de u(o nor)$l Android no e(t3 $*$drin$do *or ningun$ Android e( *oco intuiti+o, lo ue di.icult$ (u o*er$dor$, .$bric$nte o *ro+eedor )$ne-o F$)bi@n e(t3 el eco de ue e(te (i(te)$ no (ie)*re cierr$ tod$( (u( $*lic$cione( Android e( co)*let$)ente *er(on$li$ble t$nto *or u(u$rio( in(t$l$ndo .ondo( de *$nt$ll$, $ni)$cione(, /idget(, (0in( o te)$( co)o *$r$ .$bric$nte( con l$ *o(ibilid$d de cre$r (u( *ro*i$( c$*$( co)o MotoBlu o GFC Sen(e
Cu$ndo (e l$n$ un$ $ctu$li$ción de Android, el $cce(o de*ende del .$bric$nte, lo ue $ce ue un$ re(*ue(t$ *ued$ t$rd$r (e)$n$( e inclu(o )e(e( en $d$*t$r l$ nue+$ +er(ión $l )ó+il del u(u$rio
5icencias
Android tiene do( ti*o( de licenci$( l$( cu$le( (on 5a licencia /pac-e: 7A*$ce Licen(e o A*$ce So.t/$re Licen(e *$r$ +er(ione( $nteriore( $ :; e(
un$ licenci$ de (o.t/$re libre cre$d$ *or l$ A*$ce So.t/$re Qound$tion 7ASQ Co)o cu$luier otr$ de l$( licenci$( de (o.t/$re libre, l$ Licenci$ A*$ce *er)ite $l u(u$rio del (o.t/$re l$ libert$d de u($rlo *$r$ cu$luier *ro*ó(ito, di(tribuirlo, )odi.ic$rlo, % di(tribuir +er(ione( )odi.ic$d$( de e(e (o.t/$re L$ Licenci$ A*$ce no exige ue l$( obr$( deri+$d$( 7+er(ione( )odi.ic$d$( del (o.t/$re (e di(tribu%$n u($ndo l$ )i()$ licenci$, ni (iuier$ ue (e teng$n ue di(tribuir co)o (o.t/$re libreo*en (ource L$ Licenci$ A*$ce (ólo exige ue (e )$nteng$ un$ notici$ ue in.or)e $ lo( rece*tore( ue en l$ di(tribución (e $ u($do código con l$ Licenci$ A*$ce G0U GP5 L$ Licenci$ P2blic$ #ener$l de #DK o )3( conocid$ *or (u no)bre en ingl@( #DK #ener$l
Public Licen(e e( l$ licenci$ )3( $)*li$)ente u($d$ W=X en el )undo del (o.t/$re % g$r$nti$ $ lo( u(u$rio( .in$le( 7*er(on$(, org$ni$cione(, co)*$í$( l$ libert$d de u($r, e(tudi$r, co)*$rtir 7co*i$r % )odi.ic$r el (o.t/$re Su *ro*ó(ito e( decl$r$r ue el (o.t/$re cubierto *or e(t$ licenci$ e( (o.t/$re libre % *rotegerlo de intento( de $*ro*i$ción ue re(trin-$n e($( libert$de( $ lo( u(u$rio( 3erramientas para el desarrollo de aplicaciones
Android S& !l S& 7 So.t/$re e+elo*)ent &it de Android, inclu%e un con-unto de err$)ient$( de de($rrolloW5X L$( *l$t$.or)$( de de($rrollo (o*ort$d$( inclu%en Linux 7 cu$luier di(tribución )odern$ ,
M$c OS > =;4 o *o(terior, % indo/( >P o *o(terior L$ *l$t$.or)$ integr$l de de($rrollo 7I!, Integr$ted e+elo*)ent !n+iron)ent (o*ort$d$ o.ici$l)ente e( !cli*(e -unto con el co)*le)ento AF 7 Android e+elo*)ent Fool( *lugin D$ti+e e+elo*)ent &it e($rrollo D$ti+o !l D& *er)ite in(t$l$r bibliotec$( e(crit$( en C % otro( lengu$-e(, un$ +e co)*il$d$( *$r$ ARM o código x86 n$ti+o Lo( *rogr$)$( 1$+$ corriendo en l$ )3uin$ +irtu$l $l+i0 7 $l+i0 EM *ueden ll$)$r $ cl$(e( n$ti+$( *or )edio de l$ .unción S%(te)lo$dLibr$r%, ue .or)$ *$rte de l$( cl$(e( e(t3nd$r 1$+$ en Android A** In+entor *$r$ Android !( un entorno de de($rrollo +i(u$l eb, *$r$ *rogr$)$dore( no+$to(, b$($do en l$ bibliotec$ O*en Bloc0( 1$+$, del MIF G%*erDext Android Cre$tor G%*erDext Android Cre$tor 7GAC e( un (i(te)$ de de($rrollo de *rogr$)$( dirigido $ *rogr$)$dore( ue e)*ie$n, *er)iti@ndole( cre$r (u( *ro*i$( $*lic$cione( (in nece(it$r conoci)iento( de 1$+$ % del S& de Android !l *ro%ecto Si)*le !l ob-eti+o de Si)*le e( (er un lengu$-e .3cil de $*render *$r$ l$ *l$t$.or)$ Android Si)*le e( un di$lecto de BASIC *$r$ Android Sir+e t$nto *$r$ *rogr$)$dore( *ro.e(ion$le( co)o $.icion$do( *er)itiendo e(cribir r3*id$)ente $*lic$cione( ue utili$n lo( co)*onente( de Android /ppcelerator Titanium : e( un$ *l$t$.or)$ *$r$ de($rroll$r $*lic$cione( )ó+ile( % de e(critorio
utili$ndo tecnologí$( /eb Ktili$ el entorno de *rogr$)$ción !cli*(e % e(t3 b$($do en 1$+$Scri*t Im6genes del sistema operativo
eferencias: http://www.unocero.com/2013/09/23/la-historia-de-android/
http://www.informatica-hoy.com.ar/soluciones-moviles/Android-el-sistema-operativo-para-moviles-deGoole.php http://electronica.practicopedia.lainformacion.com/android/como-funciona-android-1!"#