Android (operacijski sustav)

Izvor: Wikipedija
Skoči na: orijentacija, traži
Android
Android robot.svg
Tvrtka/
razvijatelj:
Google
Posljednja stabilna verzija: Za pametne telefone:
4.4.2 KitKat
Za tablet računala:
4.4.2 KitKat / 10. prosinac 2013.
Tip jezgre: Linux kernel
Pretpostavljeno korisničko sučelje: Android AOSP
Licenca: Apache License 2.0 Linux kernel patches under GNU GPL v2

Google 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[uredi VE | uredi]

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.

Značajke[uredi VE | uredi]

Android platforma je prilagođena za uporabu na uređajima s većim zaslonima poput pametnih telefona koji koriste 2D grafičku knjižnicu ili 3D grafičku knjižnicu temeljenu na OpenGL ES 2.0 specifikacijama. Za pohranu podataka koristi se SQLite relacijaski DBMS (sustav za upravljanje bazom podataka, eng. Database Managment System) napisan u C programskom jeziku. Karakteristike ovog softvera jesu njegova knjižnica koja u svega 275 kB implementira većinu SQL standarda. U odnosnu na druge sustave za upravljanje bazama, SQLite nije zasebni proces već je sastavni dio aplikacije koja pristupa bazi podataka. [16] Za povezivanje s drugim uređajima koriste se GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, WiFi (nije moguće povezivanje preko proxy poslužitelja i preko Ad hoc bežičnih mreža), LTE, NFC i WiMAX. Bluetooth podržava sučelje za upravljanje drugim uređajima (primjerice televizija, radio) te prijenos audio zapisa s jednog uređaja na drugi. Od Android verzije 3.0 postoji podrška za spajanje uređaja za upravljanje (tipkovnica, miš, igraće palice), dok na prijašnjim verzijama podrška je bila napravljena od samih proizvođača takvih uređaja. Za prijenos poruka koriste se SMS i MMS servisi s podržanim prikazom razgovora. Android je do verzije 2.3 podržavao 26 različitih jezika, izlaskom Gingerbreada ta brojka se udvostručuje i danas je podržano čak 57 različitih jezika.[1] Internet preglednik je temeljen na WebKit-ovom engine-u uparenom s Googleovim Chrome V8 JavaScript engine. Uređaj s instaliranim Android Froyo sustavom kao i oni noviji imaju mogućnost tetheringa, odnosno korištenje uređaja kao žične (putem USB kabela) ili bežične pristupne točke za pristupanje internetu. Prije verzije 2.2 ta mogućnost je postojala samo kroz korištenje neslužbenih aplikacija ili ukoliko je proizvođač uređaja omogućio tu funkcionalnost.

Iako je većina aplikacija pisana u Java programskom jeziku, na Android uređajima ne postoji Java Virtual Machine pa tako nije moguće izvršavati Java byte kod. Za pokretanje Java aplikacija, Android koristi Dalvik virtualni stroj.

Android platforma nudi reproduciranje sljedećih audio formata: .3gp, .mp3, .mp4, .m4a, .mid, .aac, .ogg, .wav, .xmf, .mxmf, rtttl, .rtx, .ota, .imy, a .flac je podržan samo na Androidu 3.1 i višim verzijama.

Podržani slikovni formati: .jpg, .gif, .png, .bmp.

Podržani video formati: .3gp, .mp4 te .webm za Android 2.3.3 i kasnije verzije.

Ugrađena je podrška i za RTP/RTSP12 streaming, HTML progresivni download (HTML5 <video> oznaka), Adobe Flash Streaming i HTTP Dynamic Streaming podržani su kroz Flash plugin. Postoje planovi za izradu Sliverlight dodatka koji bi omogućio Microsoft Smooth Streaming.

Video pozivi nisu podržani osim kroz posebne prilagodbe pojedinih uređaja koji imaju mogućnost videopoziva putem UMTS-a ili IP-a. Google Talk je dostupan na Android 2.3.4 verziji.

Od podrške za dodatne hardvere, Android ima ugrađenu podršku za ekran osjetljiv na dodir, GPS, akcelerometar, žiroskop, magnetometre, igraće palice, senzore osjetljive na dodir i blizinu, termometar i grafičku 3D akceleraciju. Također postoji podrška za multi-touch.

Podrška za glasovnu pretragu postoji od prvih verzija Android sustava, dok se mogućnost pisanja, pozivanja i navigacije putem glasa pojavljuje od verzije 2.2. Android nema ugrađenu mogućnost snimanja trenutnog stanja ekrana.

Arhitektura[2][uredi VE | uredi]

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.



Vidi još[uredi VE | uredi]

Vanjske poveznice[uredi VE | uredi]

Izvori[uredi VE | uredi]