Android (operacijski sustav)

Izvor: Wikipedija
Android
Tvrtka/razvijatelj:Google
Open Handset Alliance
Posljednja stabilna inačica:Android 14 / 4. listopada 2023.
Upravitelj paketa:APK (pomoću Google Playa)
Podržane platforme:ARM64 (prijašnje verzije su podržavale i ARMv7, x86, x86-64 i RISC-V)
Tip jezgre: Linux kernel
Korisničko sučelje:Grafičko
Licencija:Apache License 2.0
GNU GPL v2
Radno stanje:U aktivnom razvoju

Android 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 | uredi kôd]

Android Inc. osnovali su 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 preference i lokaciju. Tvrtka je isprva namjeravala razviti napredni operacijski sustav za digitalne kamere, no ubrzo su uvidjeli da je to tržište premalo.[8] Pet mjeseci kasnije promijenili su cilj i oglašavali Android kao suparnika operacijskim sustavima Symbian i Windows Mobile.[9] Nakon dvije godine gotovo tajnog rada (jedino što je bilo poznato bilo je da se radi o softveru za mobitele),[nedostaje izvor] 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.[10]

U studenome 2007. godine osnovan 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 kôda baziranu na Linux kernelu – Android. Ovo je prvo javno predstavljanje Androida kao operacijskog sustava, a prvi komercijalni uređaj u koji je bio ugrađen 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 zaštićenog imena "Android" ako Google ne certificira uređaj kao kompatibilan prema Compatibility Definition Documentu (CDD-u). Također, uređaji moraju zadovoljavati kriterije iz ovog dokumenta kako bi dobili pristup aplikacijama zatvorenog koda poput aplikacije Trgovina Play. 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 kôda jesu inačice 3.0, 3.1 i 3.2 kôdnog imena Honeycomb, kako ne bi došlo do instaliranja istih na mobilni uređaj, iz razloga što je ta inačica namijenjena uporabi na tablet računalima.

Značajke[uredi | uredi kôd]

Android platforma prilagođena je 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 SQLite relacijska baza podataka, napisana u programskom jeziku C. 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. Za povezivanje s drugim uređajima primjenjuju se GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, WiFi, 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 inačice 3.0 postoji podrška za spajanje uređaja za upravljanje (tipkovnica, miš, igraće palice), dok su u prijašnjim inačicama podršku morali implementirati sami proizvođači takvih uređaja. Za prijenos poruka upotrebljavaju se SMS i MMS servisi s podržanim prikazom razgovora. Android je do inačice 2.3 podržavao 26 različitih jezika, izlaskom Gingerbreada ta brojka se udvostručuje i danas je podržano više od 100 različitih jezika.[11][12] Internetski preglednik je temeljen na WebKit-u uparenom s Google Chromeovim V8 JavaScript engine. Uređaj s instaliranim sustavom Android Froyo, 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 inačice 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 programskom jeziku Java, na Android uređajima ne postoji Java Virtual Machine pa tako nije moguće izvršavati Java byte kod. Za pokretanje Java aplikacija, Android je do inačice 4.4 rabio virtualni stroj Dalvik. U inačici 5.0, Dalvik je zamijenjen Android Runtimeom (ART-om).[13]

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 inačicama.

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

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

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 inačici 2.3.4.

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 inačica Android sustava, dok se mogućnost pisanja, pozivanja i navigacije putem glasa pojavljuje od inačice 2.2.

Arhitektura[14][uredi | uredi kôd]

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 namijenjena 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 | uredi kôd]

Izvori[uredi | uredi kôd]

  1. Reardon, Marguerite. 5. studenoga 2007. Google unveils cell phone software and alliance. CNET (engleski). Pristupljeno 31. ožujka 2018.
  2. German, Kent. 2. kolovoza 2011. A brief history of Android phones. CNET (engleski). Pristupljeno 31. ožujka 2018.
  3. Schmidt, Cory. 24. lipnja 2016. What is Android? Here is a complete guide for beginners. AndroidPIT (engleski). Pristupljeno 31. ožujka 2018.
  4. Content License. Android Open Source Project (engleski). Pristupljeno 31. ožujka 2018.
  5. Poeter, Damon. 3. ožujka 2014. Android Tablet Sales Overtake Apple's iPad in 2013. PCMag.com (engleski). Pristupljeno 31. ožujka 2018.
  6. Number of available applications in the Google Play Store from December 2009 to December 2017. Statista (engleski). Prosinac 2017. Pristupljeno 31. ožujka 2018.
  7. Williams, Brett. 3. travnja 2017. Android unseats Microsoft as the world's most popular way to get online. MAshable (engleski). Pristupljeno 31. ožujka 2018.
  8. Alabaster, Jay. 16. travnja 2013. Android founder: We aimed to make a camera OS. PCWorld (engleski). Pristupljeno 18. ožujka 2019.
  9. Welch, Chris. 16. travnja 2013. Before it took over smartphones, Android was originally destined for cameras. The Verge (engleski). Pristupljeno 18. ožujka 2019.
  10. A complete history of Android - Techradar
  11. Android 2.3 Platform - Locales. Inačica izvorne stranice arhivirana 9. studenoga 2011. Pristupljeno 5. listopada 2011.
  12. Nougat. Android (engleski). Pristupljeno 18. ožujka 2019.
  13. Bilić, Stjepan. 16. listopada 2014. Google predstavio Android 5.0 - Lollipop. Bug.hr. Inačica izvorne stranice arhivirana 18. ožujka 2019. Pristupljeno 18. ožujka 2019.
  14. What is Android

Vanjske poveznice[uredi | uredi kôd]