ponedjeljak, 21. travnja 2014.

Android

Android robot.svgGoogle Android je prvi otvoreni operacijski sustav za mobilne uređaje (mobilni telefoni, tableti, netbook računala, Google TV) pokrenut od strane Google Inc. i vođen od strane Open Handset Alliance - grupe koja danas broji preko 80 tehnoloških kompanija između kojih se nalaze T-Mobile, HTC, Intel, Motorola, Qualcomm, i drugi, čiji je cilj ubrzati inovacije na području mobilnih operacijskih sustava, a samim time ponuditi krajnjim kupcima bogatije, jeftinije i bolje iskustvo korištenja.

Android je modularan i prilagodljiv pa tako postoje slučajevi njegovog prenošenja (portanja) na razne uređaje kao što su čitači elektronskih knjiga, mobilni telefoni, prijenosnici, te multimedijski playeri.


Povijest
Android Inc. su osnovali Andy Rubin, Rich Miner, Nick Sears i Chris White u listopadu 2003. godine kako bi razvijali programe za pametne mobilne uređaje koji bi uzimali u obzir korisničke postavke te njegovu lokaciju. Nakon dvije godine gotovo tajnog rada (jedino što je bilo poznato bilo je da se radi o softveru za mobitele), Google je odlučio kupiti Android te počinju spekulacije o ulasku Googlea na tržište pametnih telefona. Osnivači i ključni programeri, osnaženi Googleovim programerima, na tržište donose mobilnu platformu temeljenu na linuxovom kernelu koja bi trebala biti potpuno prilagodljiva zahtjevima korisnika.

U studenome 2007. godine osnovana je Open Handset Alliance (OHA) s ciljem stvaranja javnog standarda za mobilne uređaje. Glavni inicijator i ovoga puta bio je Google koji je okupio 34 tvrtke iz različitih domena mobilne industrije poput proizvođača mobilnih telefona, programera aplikacija, mobilnih operatera i sličnih.

Istoga dana, 5. studenog 2007. godine, OHA otkriva mobilnu platformu otvorenog koda baziranu na Linux kernelu – Android. Ovo je prvo javno predstavljanje Androida kao operativnog sustava, a prvi komercijalni uređaj u koji je bio ugrađen Android OS bio je T-Mobile G1, tajvanskog proizvođača pametnih telefona HTC (poznat i pod nazivom HTC Dream). Osnivanjem ovog saveza, Android je bačen u utrku s ostalim mobilnim platformama na tržištu: iOS (Apple), Windows Phone (Microsoft), Symbian (Nokia, Sony Ericsson), Palm (HP), Bada (Samsung).

Od samih početaka Android je zamišljen kao projekt otvorenog koda (open source project) te je od 21. listopada 2008. godine dostupan cjeloviti kôd pod Apache licencom. S druge strane, proizvođačima uređaja nije dozvoljeno korištenje Android zaštićenog imena ukoliko Google ne certificira uređaj kao kompatibilan prema Compatibility Definition Document (CDD). Također, uređaji moraju zadovoljavati kriterije iz ovog dokumenta kako bi dobili pristup aplikacijama zatvorenog koda poput Android Market aplikacije. Ona služi za pretraživanje i instalaciju aplikacija koje su na tržištu, a ne dolaze ugrađene u sami uređaj. Jedina iznimka od politike otvorenog koda jesu verzije 3.0, 3.1 i 3.2 kodnog imena [[ Honeycomb kako nebi došlo do instaliranja istih na mobilni uređaj, iz razloga što je ta verzija namjenjena uporabi na tablet računalima. Kôd verzija 3.x biti će dostupan nakon izlaska verzije Ice Cream Sandwich koja će biti mješavina trenutne verzije za mobilne uređaje (2.3 – Gingerbread) i Honeycomb verzije.

Arhitektura
Android je zasnovan na jezgri Linux 2.6 i napisanom u C/C++ programskom jeziku. Obzirom na otvorenost izvornog programskog koda, aplikacije putem middlewarea imaju mogućnost komuniciranja i pokretanja drugih aplikacija primjerice za ostvarivanje poziva, slanje SMS poruka, pokretanja kamere i slično. Iako su C i C++ programski jezici korišteni za radno okružje (framework), većina aplikacija pisana je u Java programskom jeziku koristeći Android Software Development Kit (SDK). Postoji mogućnost pisanja aplikacija i u C/C++ programskom jeziku, no tada se koristi Android Native Code Development Kit (NDK) (androidov razvijateljski kit u izvornom kodu). Ovakvim postupkom omogućuje se bolje raspolaganje resursima i korištenje knjižnica programa iz jezgre i radnog okružja. Ovakvim postupkom aplikacije se ubrzavaju i do 10 puta, no pisanje samog programa je puno složenije.

Arhitekturu Androida (slika) možemo promatrati kao jedan programski stog koji sadrži nekoliko razina.

Na dnu stoga nalazi se Linux 2.6 jezgra koji sadrži drivere od kojih su najvažniji driver za međuprocesnu komunikaciju (IPC - Inter-process communication) koji služi za izmjenu podataka između različitih procesa ili niti unutar istog procesa te driver za upravljanje napajanjem (Power Managment).

Iznad jezgre nalaze se knjižnice koje su pisane u C/C++ programskom jeziku:

Surface Manager – knjižnica koja nadzire iscrtavanje grafičkog sučelja
OpenGL | ES – knjižnica za skopovsko ubrzavanje 3D prikaza (ukoliko je moguća) te za visoko optimiziranu 3D softversku rasterizaciju
SGL – 2D knjižnica korištena za većinu aplikacija
Media Framework – knjižnica temeljena na OpenCORE koja podržava snimanje i reproduciranje poznatih audio/video formata
FreeType – knjižnica namjenjena iscrtavanju fontova
SSL (Secure Sockets Layer) - knjižnica za sigurnosnu komunikaciju putem interneta
SQLite – knjižnica za upravljanje bazama podataka dostupna svim aplikacijama
WebKit – engine za web preglednike
libc – sistemska C knjižnica prilagođena za ugradbene sustave zasnovane na Linux OS-u
Slijedi Android Rnuntime odnosno sloj koji služi pokretanju aplikacija. Sastoji se od dvije važne komponente. Prva su tzv. "Core libraries" odnosno knjižnice koje sadrže većinu jezgrenih knjižnica programskog jezika Java. Druga komponenta je Dalvik Virtual Machine koji pokreće aplikacije kao zasebne procese odnosno kao instance virtualnog stroja. DVM pretvara Java class datoteke u svoj vlastiti format (.dex), kako bi bile optimizirane za minimalni utrošak memorije.

Nakon knjižnica dolazi aplikacijski okvir (eng. Application Framework) koji se sastoji od mehanizama koji pomažu pisanje aplikacija. Applikacijski okvir dozvoljava upotrebu svih API-ja (Application Programming Interface) koji su korišteni za bazne aplikacije. Tako je omogućeno upravljanje programskim paketima, aktivnostima aplikacije (odnosi se na životni ciklus aplikacije), pozivima, prozorima, resursima (pohrana komponenti aplikacija koje nisu sami kôd, primjerice slike), korištenje podataka od više različitih aplikacija, dohvaćanje i korištenje trenutne lokacije korisnika, prikaz obavijesti te baza pogleda i objekata koji mogu biti korišteni za dizajn aplikacije.

Na vrhu se nalaze same aplikacije. Ovaj sloj je vidljiv krajnjem korisniku i sastoji se kako od osnovnih, ugrađenih aplikacija poput e-mail klijenta, SMS programa, kalendara, web preglednika pa sve do aplikacija koje se mogu naći na Android Marketu, kojih danas ima preko 250 000.

0 komentari:

Objavi komentar