2013/10/23

Sistema eragilearen funtzionamenduaren arkitektura

Android App-en garapenean oso lagungarria da sistema eragilearen arkitektura eta funtzionamendua ezagutzea eta ulertzea. Programatzailearen lana errazteko Android geruza ezberdinetan banatzen da. Modu honetan goialdeko geruzetatik abiatuz eta liburutegien erabilerari esker behealdeko geruzetara iritsi gaitezke, maila baxuan programatzea eragotziz.

Androiden arkitektura Pila arkitektura da ( Ikus I. Ilustrazioa), hau da, geruza bakoitzak bere azpiko geruzako elementuak erabiltzen ditu bere funtzioak betetzeko.Azter ditzagun banan-bana geruza bakoitzaren ezaugarriak:

I. Ilustrazioa: Android arkitekturaren geruzak



Linux Kernela

Androiden nukleoa gailu mugikorren hardware-era egokitutako Linux kernel bat da. Nukleoak abstrakzio geruza bezala lan egiten du, hardware-a eta gainerako geruzen artean trasnparentzia gehituz. Programatzaileak ez du zuzenean geruza honekin lan egiten, baizik eta goragoko geruzetan aurki daitezkeen liburutegiak erabiltzen ditu hardware-arekin elkarreragiteko. Honek gailu mugikor bakoitzaren hardware ezaugarriak ezagutzea ekiditen du.

Aipatutakoaz aparte, kernelaren funtzioan baitan daude gailuaren baliabideen  (energia, memoria, e.a.) eta sistema eragile beraren elementuen kudeaketa (prozesuak, networking-a, e.a.) baita ere.

Liburutegiak

 Geruza honetan gailu mugikorren ekoizleek euren hardware-aren liburutegiak instalatzen dituzte gailuetan bertan. Liburutegi hauek normalean C edo C++ lengoaian idatzirik daude eta maiztasun batekin errepikatzen diren atazen erabilpena errazten dute.

Liburutegi ohikoenak (Ikus III. irudia) honako hauek dira:

  • OpenGl: grafikoen motorra.
  • Multimedia liburutegiak: audio, irudi eta bideo formatuak.
  • Webkit: nabegatzailea.
  • SSL: komunikazioen zifraturako.
  • FreeType: testu iturriak.
  • SQLite: datu baseak.

Exekuziorako ingurunea

Berez exekuziorako ingurunea ez da hurrengo geruzako elementu bakarra, maila hau Javako liburutegi arruntenek eta androiden berezko beste batzuk ere osatzen dute.

Geruza honetako osagairik azpimarragarriena Dalvik-en makina birtuala da. App-ak javan idazten diren arren, konpilazio garaian ez da .jar fitxategi bat sortzen, baizik eta Dalvik-erentzat espreski diseinaturiko .dex fitxategia.

Dalvik Javaren makina birtualaren bariazio bat da eta helburu bera du: aplikazioa exekutatuko duen makinarekiko independientea izango den bytecode sortzea, baina kontuan izanik exekuzio ingurunea eta hardwarea (memoria, prozesadorea eta biltegiratzea) askotaz ere ezaugarri baxuagokoak izango direla.

Dalvik Javako class-eak interpretatzeko gai da eta .dex artxiboa sortzeko bi konpilazio fase burutzen ditu II. ilustrazioa ikus daitekeen moduan.

II. Ilustrazioa: Dalvik makinaren konpilazio prozesua

Dalvik erabiltzearen ondorioz sortutako App-en tamainua asko optimizatzen da.


Aplikazioen framework-a

Geruza hau App-ek erabiltzen dituzten Java class-e eta zerbitzuez osatzen da. Geruza honetako osagai gehienak Dalvik-en bitartez behealdeko geruzetara hel daitezkeen java liburutegiak dira. III. Ilustrazioan ikus daitekeen moduan geruza hau edota android framework-a elementu ezberdinetan banatzen da:

III. Ilustrazioa: Android arkitekturaren zehaztasunak 

  • Activity manager: Activity-en FIFO pilaz eta euren bizi zikloaren kudeaketaz arduratzen da.
  • Windows manager: Erabiltzailearen interfaze grafikoa edota pantaila pintatzeko prest uztea du helburu nagusia.
  • Content provider: Aplikazioen datuen elkartrukaketa encapsulatzeaz arduratzen da.
  • Views: Erabiltzailearen interfaze grafikoa osatuko duten elementuak eskeintzen ditu: testuak, irudiak, botoiak,...
  • Notification manager: Erabiltzaileari jakinarazpenak bistaratzea du helburu (egoera barrarekin elkarreraginez, jakinarazpen objektuak sortuz, led-en antzeko hardware-ekin jolastuz hala badagokio e.a.)
  • Package manager: App paketeen, hau da, .apk fitxategien instalatzea eta euren biltegiratzea kontrolatzeaz arduratzen da.
  • Telephony manager: Deiak, SMS, MMS eta antzekoen kudeaketaz arduratzen da.
  • Resource manager: App-aren iturburu kodetik at geratzen diren baina aplikazioaren parte diren elementuen kudeaketa burutzen du, adibidez string kateen bidez hizkuntza ezberdinek izan dezaketen tratamenduarena.
  • Location manager: GPS, mapak eta sare erabilgarrien kudeaketa burutzen du.
  • Sensor manager: gailu mugikorrean aurki daitezkeen sentsoreak manipulatzen ditu: azelerometroa, giroskopioa, gertutasun sentsorea, argitasun sentsorea, presio sentsorea,...
  • Kamara: Liburutegi hauen bitartez gailuek integratzen dituzten kamarak erabil ditzakegu argazkiak edota bideoak ateratzeko.
  • Multimedia: Audioa, bideoa eta irudiak erreproduzitzeaz eta bistaratzeaz arduratzen da.

Aplikazioak edo App-ak

Goiko geruza honetan interfaze grafikoa duten eta ez duten aplikazio guztiak aurkitzen dira, bai gailu mugikorren ekoizleek instalaturikoak baita erabiltzaileak egin dituenak ere.

Azpimarratzekoa Home edo Launcher aplikazioa,  hala nola honen bitartez bistaratzen baititugu mahaigain ezberdinak eta gainerako app-en zerrendak.