Android (operacijski sustav)

Izvor: Wikipedija
Skoči na: orijentacija, traži
Android
Android robot.svg
Android logo (2014).svg
Tvrtka/
razvijatelj:
Google
Open Handset Alliance
Posljednja stabilna verzija: Android 8.1 "Oreo" / 5. prosinca 2017.
Posljednje nestabilno izdanje: Android P / 7. ožujka 2018.
Upravitelj paketa: APK (pomoću Google Playa)
Podržane platforme: 32-bitni i 64-bitni ARM, x86, MIPS, MIPS64
Tip jezgre: Linux kernel
Pretpostavljeno korisničko sučelje: Grafičko
Licenca: Apache License 2.0
GNU GPL v2
Radno stanje: U aktivnom razvoju

Android prvi je otvoreni operacijski sustav za mobilne uređaje, kao što su pametni telefoni i tablet računala, američke tvrtke Google Inc. temeljen na jezgri Linux i drugom softveru otvorenog kôda. Nadalje, Google je razvio i Android TV za pametne televizore, Android Auto za automobile i Wear OS za pametne satove.

Android je isprva razvijala tvrtka Android Inc. koju je Google kupio 2005. godine. Android je prvi puta predstavljen javnosti 2007. godine,[1] a prvi uređaji temeljeni na Androidu pojavili su se u rujnu 2008. godine.[2] Temeljni softverski kôd Androida poznat je kao Android Open Source Project (AOSP) i dostupan je pod licencom Apache.[3][4]

Android je povezan s paketom vlasničkog softvera koji razvija Google, što uključuje aplikacije za servise kao što je Gmail i tražilica Google, te trgovinu aplikacija i platformu za distribuciju digitalnog sadržaja Google Play. Proizvođači uređaja temeljenih na Androidu licenciraju taj softver prema Googleovim pravilima i uvjetima. Drugi operacijski sustavi temeljeni na AOSP-u, kao što je Amazonov Fire OS, koriste vlastite servise kao zamjenu za Googleove.

Android je najprodavaniji mobilni operacijski sustav za pametne telefone od 2011. i za tablete od 2013. godine.[5] Prema stanju u svibnju 2017. godine, Android ima više od 2 milijarde mjesečno aktivnih korisnika, više od bilo kojeg drugog operacijskog sustava, dok trgovina Play sadrži više od 3,5 milijuna aplikacija.[6][7]

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.[8]

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 dopuštena uporaba Android zaštićenog imena ako 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 rabe 2D grafičku knjižnicu ili 3D grafičku knjižnicu temeljenu na OpenGL ES 2.0 specifikacijama. Za pohranu podataka upotrebljava se se SQLite relacijska baza podataka, napisana 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 primjenjuju 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 upotrebljavaju 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.[9] 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 uporaba 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 uporabu neslužbenih aplikacija ili ako 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 rabi 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[10][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 primjenjivani za radno okružje (framework), većina aplikacija pisana je u Java programskom jeziku rabeći Android Software Development Kit (SDK). Postoji mogućnost pisanja aplikacija i u C/C++ programskom jeziku, no tada se upotrebljava Android Native Code Development Kit (NDK) (androidov razvijateljski kit u izvornom kodu). Ovakvim postupkom omogućuje se bolje raspolaganje resursima i uporaba 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 (ako je moguća) te za visoko optimiziranu 3D softversku rasterizaciju
  • SGL – 2D knjižnica upotrebljavana 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 Runtime 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 upotrebljavani 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), uporaba podataka od više različitih aplikacija, dohvaćanje i uporaba trenutne lokacije korisnika, prikaz obavijesti te baza pogleda i objekata koji se mogu upotrebljavati 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]

Izvori[uredi VE | uredi]

  1. Reardon, Marguerite (5. studenog 2007.). Google unveils cell phone software and alliance (engleski). CNET, preuzeto 31. ožujka 2018.
  2. German, Kent (2. kolovoza 2011.). A brief history of Android phones (engleski). CNET, preuzeto 31. ožujka 2018.
  3. Schmidt, Cory (24. lipnja 2016.). What is Android? Here is a complete guide for beginners (engleski). AndroidPIT, preuzeto 31. ožujka 2018.
  4. Content License (engleski). Android Open Source Project, preuzeto 31. ožujka 2018.
  5. Poeter, Damon (3. ožujka 2014.). Android Tablet Sales Overtake Apple's iPad in 2013 (engleski). PCMag.com, preuzeto 31. ožujka 2018.
  6. Number of available applications in the Google Play Store from December 2009 to December 2017 (engleski). Statista (prosinac 2017.), preuzeto 31. ožujka 2018.
  7. Williams, Brett (3. travnja 2017.). Android unseats Microsoft as the world's most popular way to get online (engleski). MAshable, preuzeto 31. ožujka 2018.
  8. A complete history of Android - Techradar
  9. Android 2.3 Platform - Locales.
  10. What is Android.

Vanjske poveznice[uredi VE | uredi]