SEMINARSKI RAD IZ ELEKTRONIKE
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ANDROIDSve je počelo u srpnju 2005. godine kada je Google kupio Android, Inc. malu kompaniju sa sjedištem u gradu Paolo Alto, USA. Suosnivači Android Inc. koji su otišli raditi u Google su: Andy Rubin (suosnivač Danger, Inc.), Rich Miner (suosnivač Wildfire communications, Inc.), Nick Sears (bivši potpredsjednik u T-Mobile) i Chris White (jedan od prvih inženjera WebTV-a). Malo se znalo o poslovima koje je obavljao Android, Inc. u to vrijeme, osim da su radili softver za mobilne telefone. Nakon kupnje Androida počele su glasine da Google planira ući u tržište mobilnih telefona, iako je bilo nejasno na koji način. U Googleu, tim predvođen Rubinom, razvio je operacijski sustav za mobilne telefone temeljen na Linuxu. Proizvođačima mobilnih telefona predstavljen je kao fleksibilan i lako nadogradiv sistem. Počele su se š iriti glasine da je Google već sklopio partnerstvo s nizom hardverskih i softverskih tvrtki. Nova nagađanja da ć e Google ući u svijet mobilnih telefona stigla su u prosincu 2006. godine. Izvještaji sa BBC-a i iz Wall Street Journala ukazivala su na to da je Google želi svoj pretraživač i aplikacije na mobilnim telefonima i naporno radi da bi to postigao. Poslije su se pojavile glasine da Google razvija svoj vlastiti uređaj. Nove prepostavke i š pekulacije su slijedile izvještaje da Google definira tehničke specifikacije, i pokazuje prototipove uređaja proizvođačima mobilnih telefona i mrežnih operatora. Pričalo se da je oko 30-ak prototipova bilo "pušteno u divljinu". U rujnu 2007. godine portal InformationWeek je prenio podatke iz studije koju je obavio Evalueserve i koji su pokazivali da je Google već ispunio nekoliko prijava za patente sa područja mobilne telefonije. 5. studenog 2007. osnovan je Open Handset Alliance. Uključivao je 34 kompanije, među kojima i sljedeće: Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel i NVIDIA. Zajednički cilj koji ih je ujedinio jest razvoj otvorenih standarda za mobilne uređaje. Na osnivanju su predstavili i svoj prvi proizvod: Android.
Android je prva besplatna, open source, i potuno prilagodljiva platforma za mobilne uređaje. Android sadrži operacijski sustav, međuopremu2 i ključne mobilne aplikacije. Također sadrži velik broj API-a3 koji omogućuje neovisnim proizvođačima izradu njihovih aplikacija [2]. 2.1. Projekt otvorenog koda OtvorenostAndroid je izgrađen tako da omogućava programerima stvaranje aplikacija koje u potpunosti koriste sve što uređaj nudi. Napravljen je da bude uistinu otvoren. Na primjer, aplikacija može pozvati jezgrene funkcije mobilnog telefona kao što su pozivanje, slanje tekstualnih poruka, korištenje kamere, dopuštajući programerima da stvore bogatije i složenije korisničke programe. Temeljen je na otvorenoj Linux jezgri. Štoviše, koristi vlastiti virtualni stroj koji je dizajniran da optimizira memorijske i hardverske resurse uređaja. Android se može proširivati i na taj način može prihvaćati najnovije tehnologije. Platforma će nastaviti rasti sve dok programerska zajednica radi zajedno, i razvija inovativne aplikacije za mobilne uređaje. Sve aplikacije su jednakeAndroid ne razlikuje jezgrene aplikacije i aplikacije neovisnih proizvođača što se tiče pristupa mogućnostima uređaja. I jedni i drugi imaju jednak pristup mogućnostima uređaja što dozvoljava korisnicima uporabu širokog pojasa aplikacija i usluga. Uređaje koji su izgrađeni na platformi Android, korisnici mogu u potpunosti prilagoditi svojim zahtjevima. Na primjer, mogu postaviti uređaj tako da koristi njihov omiljeni program za pregled slika za pregledavanje svih slika. Rušenje granica u stvaranju aplikacijaAndroid pomiče granice stvaranja novih i inovativnih aplikacija. Na primjer, programer može kombinirati informacije s weba sa podacima na uređaju pojedinog korisnika - kao š to su kontakti, kalendar ili zemljopisna lokacija. S Androidom, programer može napraviti aplikaciju koja omogućava korisnicima da vide lokaciju svojih prijatelja i da ih upozori kada su u blizini. Brzo i jednostavno razvijanje aplikacijaAndroid pruža pristup širokom rasponu korisnih biblioteka i alata koji se mogu koristiti za izradu bogatih aplikacija. Na primjer, Android omogućava programerima da koriste lokaciju mobilnog uređaja, dopuštaju uređajima međusobnu komunikaciju - što otvara mogućnosti izrade peer2peer aplikacija. Nadalje, Android uključuje čitavi skup alata koji su izrađeni usporedo sa platformom omogućavajući programerima stvaranje aplikacija visoke učinkovitosti.
DozvoleOd 21. listopada 2008., Android je dostupan pod otvorennim kodom (open source). Google je otvorio čitav izvorni kod, koji je prije bio nedostupan, pod licencom Apache. S licencom Apache, programeri mogu dodavati vlastita proširenja bez da ih daju zajednici. Dok se očekuje da Googleovi doprinosi platformi budu otvoreni, grane bi se mogle naglo razvijati koristeći razne licence. Android je bio kritiziran zato što nije bio u potpunosti otvoreni kod, iako je tako bilo najavljivano od strane Googlea. Neki dijelovi SDK su ostali zatvoreni i pretpostavljalo se da je to zbog toga da Google može kontrolirati platformu. Međutim, Google je nakon toga objavio vijest da će svi dijelovi operacijskog sustava biti otvoreni pod licencom Apache gdje je to moguće ili pod licencom GPL na drugim mjestima [1]. 2.2. Tehničke karakteristike
Mogućnosti platforme su:
AplikacijePlatforma Android dolazi s mnoštvom aplikacija napisanih koristeći Java programski jezik:
Aplikacijski okvirAndroidov okvir za aplikacije (application framework) je napravljen da bi omogućio korištenje bogatog skupa API-a neovisnim programerima. Androidove aplikacije se izvršavaju na Dalviku, vlastitom virtualnom stroju (VM). Dalvik VM izvršava izvršne datoteke dex, koje su tipično prevedene iz izvornog koda napisanog u Javi. Izvršni format dex ima sljedeće karakteristike:
Dalvik ima sljedeće karakteristike za vrijeme izvođenja:
Izvorne bibliotekePlatforma Android koristi mnoge izvorne biblioteke, uključujući:
Sustavni programiPlatforma Android:
Android podržava ispravljanje grešaka (debugging):
Platforma Android:
Svojstva podržanog prikaza su:
Podržane tipke (Supported keypads and buttons) su:
Podržani audio izlazi (Supported audio outputs) su:
Podržani hardver za notifikaciju (Supported notifications) je:
Podržane radio i telefonske mogućnosti (Supported radio and telephony features) su:
2.3. Razvoj aplikacija - Android SDK
Povijest razvoja do danasRane reakcije na razvoj aplikacija za Android platformu su bile mješovite. Prigovori su nastali zbog grešaka, nedostatka dokumentacije, neadekvatne Quality assurance (QA) infrastrukture, i nedostatka javnog sustava za prijavu grešaka („issue tracking"). Google je objavio issue tracker 18. siječnja 2008. U prosincu 2007, osnivač MergeLab mobile startupa Adama Macbeth je izjavio, "Funkcionalnost ne postoji, slabo je dokumentiran ili jednostavno ne radi ... Jasno je da nije spreman za premijeru.". I pored toga, aplikacije za Android počele su se pojavljivati već tjedan nakon što je platforma objavljena. Prva javno dostupna aplikacija je igra Snake [1]. Prvo izdanje Android Software Development Kita (SDK) je izdano 12. studenog 2007.15. srpnja 2008, Android Developer Challenge tim je slučajno poslao e-mail svim sudionicima Android Developer Challengea najavljujući da je novi SDK dostupan u "privatnom" download području. E-mail je bio namijenjen za pobjednike u prvom krugu Android Developer Challengea. Otkriće da je Google objavio novi SDK samo nekim programerima, a ne svima dovela je do frustracija u Androidovoj razvojnoj zajednici. 18. kolovoza 2008 Android 0.9 SDK beta je objavljen. Ovo izdanje pružilo je ažuriran i proširen API, poboljšane alate za razvoj i novi dizajn za početni zaslon. Detaljne upute za nadogradnju su bile dostupne onima koji rade s već ranijim izdanjima. 23. rujna 2008. objavljen je Android 1.0 SDK (Izdanje 1). Prema priloženim bilješkama, uključivao je "uglavnom ispravljene greške, iako su dodane neke manje novosti". Također je uključuivao nekoliko API promjena u odnosu na od 0.9 verziju. 9. ožujka 2009 Google je izdao verziju 1.1 za Android Dev Phone. Iako postoji nekoliko estetskih uređenja, nekoliko najvažnijih popravaka uključuju podršku za "pretraživanje glasom, aplikacije koje se naplaćuju, ispravke budilice, popravke kod slanja gmaila, ispravke obavještavanja o mailovima i intervala osvježavanja". Još jedno važno poboljšanje jest da Dev Phone sada može pristupati plaćenim aplikacijama i programeri ih sada mogu vidjeti na Google Marketu [1]. Razvoj Prvi
korak u programiranju za Android jest preuzimanje SDK (Software
development kit). Android
SDK uključuje sveobuhvatan skup razvojnih alata. Oni uključuju debugger,
biblioteke, emulator uređaja (temeljen na QEMU), dokumentaciju, primjere
kodova i tutoriale. Trenutno podržane platforme za razvoj su x86-bazirana
računala koja pokreću Linux (bilo koji modernu desktop Linux distribuciju),
Mac
OS
X 10.4.8 ili noviji, Windows
XP ili Vistu. Zahtjevi također uključuju Java Development Kit, Apache
Ant i Python 2.2 ili kasniji. Službeno podržano integrirano razvojno okruženje
(IDE) je Eclipse (3.2 ili noviji) koristeći android Development Tools
(ADT) Plugin, iako programeri mogu koristiti bilo koji uređivač teksta
za uređivanje Java i XML datoteka a zatim pomoću alata naredbenog retka
za stvaranje, izgradnju i debug Android aplikacija [1]. Osnove pisanja aplikacijaAplikacije za Android pisane su u programskom jeziku Java. Prevedeni Javin kod - zajedno sa svim podacima i datotekama resursa potrebnim za aplikaciju - je zapakiran s alatom aapt u Androidov paket, arhiv datoteku obilježenu sa sufiksom .apk. Ova datoteka služi za distribuiranje i instaliranje aplikacije na mobilnim uređajima. To je datoteka koju korisnici preuzimaju na njihovihe uređaje. Sav kod u jednoj datoteci .apk smatra se jednom aplikacijom. Na mnogo načina, svaka Androidova aplikacija živi u vlastitom svijetu:
Dozvole su postavljene tako da su datoteke aplikacije vidljive jedino samoj aplikaciji - iako također postoje načini za izvoziti ih u druge programe; Moguće je organizirati da dvije aplikacije dijele isti korisnički ID, u tom slučaju će oni biti u mogućnosti vidjeti datoteke jedna od druge. Zbog očuvanja resursa sustava, aplikacije s istim ID-om mogu se izvoditi u istom Linux procesu, dijeleći istu VM. Glavna značajka Androida jest da jedna aplikacija može koristiti elemente drugih aplikacija (pod uvjetom da one to dozvoljavaju). Na primjer, ako Vaša aplikacija treba prikazati listanje popisa slika i neki drugi program je razvio „klizač" (scroller) pogodan za to i učinio ga dostupnim drugima, možete radije pozvati taj scroller, nego razvijati svoj vlastiti. Vaša aplikacija ne uključuje kod ove druge aplikacije ili poveznicu do nje. Umjesto toga, jednostavno pokrene taj dio druge aplikacije kada se javi potreba. Da bi ovo funkcioniralo, sustav mora biti u stanju pokrenuti proces kada je bilo koji dio njega je potreban i inicijalizirati Javine objekte za taj dio. Dakle, za razliku od većine programa na drugim sustavima, aplikacije na Androidu nemaju jednu ulaznu točku za sve što je u aplikaciji (na primjer nema funkcije main()). Umjesto toga, one imaju esencijalne komponente koje sustav može inicijalizirati i pokrenuti po potrebi. Postoje četiri vrste komponenti koje ovdje nećemo opisivati. Razvoj u alatuAndroid Development Tools (ADT) dodatak za Eclipse dodaje moćne dodatke za integrirano razvojno okruženje Eclipse. To vam omogućava da kreirate i debuggirate Android aplikacije lakše i brže. Ako koristite Eclipse, ADT plugin vam pruža veliku pomoć u razvoju Android aplikacija:
Razvoj u drugim integriranim okolinama Preporučeni način za razvijanje Android aplikacije je korištenje Eclipsea s dodatkom Android Development Tools (ADT), sadržanim u SDK. ADT omogućuje uređivanje, razvoj i otklanjanje grešaka integrirane izravno u IDE. Međutim, ako bi radije razvijali vaše aplikacije u drugom IDE-u, kao što su IntelliJ, ili koristili Eclipse bez dodatka ADT, možete to učiniti. SDK pruža alate koji su vam potrebne za postavljanje, izgrađivanje i debuggiranje aplikacija [8]. Razvoj na uređajuPri izradi mobilnih aplikacija, bitno je testirati ih na stvarnim uređajima prije objavljivanja korisnicima. Iako razvojni programeri mogu koristiti regularne potrošačke uređaje kupljene u maloprodaji za testiranje i korištenje njihovih aplikacija, neki programeri mogu odlučiti ne koristiti maloprodajni uređaj, već preferiraju otključane uređaje. Na primjer: Android Dev Phone (trenutno nije dostupan u Hrvatskoj) je SIM-otključani i hardware-otključani uređaj koji je dizajniran za napredne programere. Također se u istu svrhu zna koristiti i T-Mobile G1 uređaj [9].
Organizacija kod razvoja Plan projekta (Project layout)Android platforma se sastoji od nekoliko projekata već u tijeku. Ovi projekti se mogu podijeliti u tri kategorije:
Uloge u projektu (Project roles)Projekt Android Open Source je ustrojen kako bi se osiguralo da:
Ljudi u okviru Android Open Source zajednice igraju različite uloge: Bilo tko (Anyone) Svatko tko je zainteresiran za upoznavanje i pridonošenje Androidu može koristiti resurse projekta Android Open Source. Svatko se može pridružiti mailing listi, postavljati pitanja, raditi zakrpe, izvještavati o bugovima, pregledavati dostavljene zakrpe, i koristiti alate.
Verifikatori (Verifiers) Verifiktori su odgovorni za testiranje zahtjeva za promjenu. Nakon što su pojedinci poslali značajnu količinu visokokvalitetnog koda projektu, Voditelj Projekta može pozvati ih da postanu Verifikatori.
Approvers Approvers su iskusni članovi ovog projekta koji su pokazali svoje vještine i napravili su značajan tehnički doprinos ovome projektu. U procesu pregleda koda, Approver odluči ž eli li uključiti ili isključiti promjenu. Voditelj Projekta izabire Approvere, a ponekad i promiče na ovu poziciju Verifikatore koji su pokazali svoju stručnost unutar određenog projekta.
Voditelji projekta Voditelj projekta za pojedinačni projekt je odgovoran za sljedeće:
Za postati Voditelj projekta za novi projekt, pojedinac mora demonstrirati radni kod koji implementira ideju za novi projekt, i mora imati mogućnosti da djeluje kao Voditelj projekta (opisane iznad). Novi projekti trebali bi biti u svezi s Androidom, biti razumne ekstenzije na platformu, implementirati drivere i pakete za podršku koji podržavaju Android na specifičnom hardveru, i tako dalje [11].
Jezgreni tehnički timJezgreni tehnički tim (Core Technical Team) recenzira i odobrava zahtjeve za postavljanje novih projekata, označava nove projekte kao dio osnovne platforme, a imenuje ili potvrđuje Voditelje projekata za te projekte. Core Technical Team je odgovoran za sljedeće:
Da bi postao član Core Technical Teama, pojedinac mora imati neke kombinacije ovih karakteristika:
2.4. Plasiranje aplikacija - Android MarketAndroid Market je dućan koji je razvio Google a Android uređaje, koja omogućava korisnicima pregledavanje i preuzimanje aplikacija neovisnih programera. Slična je dućanu App Store za iPhone. Android Market je najavljen 28. kolovoza 2008., a stavljen na raspolaganje korisnicima 22. listopada 2O08. Podrška za aplikacije koje se naplaćuju dodana je za korisnike u SAD-u i Velikoj Britaniji sredinom veljače 20O9. Korisnici u Velikoj Britaniji stekli su mogućnost kupovanja aplikacija koje se naplaćuju 13. ožujka 2009. Programeri aplikacija koje se naplaćuju primaju 70% cijene aplikacije, a preostalih 30% ide za "prijevoznike" (carriers). Prihod zarađen od Android Marketa plaća se programerima putem Google Checkout trgovačkih računa. Aplikacije koje se naplaćuju su trenutno dostupne samo korisnicima u sljedećim zemljama: Austrija, Njemačka, Velika Britanija, SAD. Google je objavio u, e-mailu programerima, da "će dodati podršku za krajnje korisnike za dodatne zemljame u narednim mjesecima". Za sada, samo programeri u SAD-u i Velikoj Britaniji mogu objavljivati aplikacije koje se naplaćuju. U e-mailu na programerima 2. travnja 2009. Google je napisao: "naporno radimo kako bi u narednim tjednima programerima u Njemačkoj, Austriji, Nizozemskoj, Francuskoj, Š panjolskoj omogućili aplikacije koje se naplaćuju. Nakon što trgovačka podrška za aplikacije koje se naplaćuju zaživi u tim zemljama, mi ćemo objaviti naše planove za pokretanje podrške za programere u dodatnim područjima." Zabranjene aplikacije31. ožujka 2009, Google je povukao sve "tether" aplikacije s Android Marketa. Google ih je kasnije vratio za sve korisnike Android Marketa, osim onih unutar T-Mobile SAD mreže:
"On Monday, several applications that enable tethering were removed from the Android Market catalog because they were in violation of T-Mobile's terms of service in the US. Based on Android's Developer Distribution Agreement (section 7.2), we remove applications from the Android Market catalog that violate the terms of service of a carrier or manufacturer.
We inadvertently unpublished the applications for all carriers, and today we have corrected the problem so that all Android Market users outside the T-Mobile US network will now have access to the applications. We have notified the affected developers." [12] IzdavanjePripremanje aplikacije prije izdavanja: Prije nego što odlučite izdati Vašu aplikaciju:
Prije nego napravite zadnje kompajliranje Vaše aplikacije:
Kompajlirajte Vašu aplikaciju... Nakon kompajliranja:
Izdavanje na Android MarketZa objaviti Vaše aplikacije na Android Market, najprije se morate registrirati pomoću svog Google računa i složiti se s uvjetima korištenja. Nakon š to ste registrirani, možete uploadati Vaše aplikacije na servis kad god želite, koliko god puta želite, a potom ih objaviti kad ste spremni. Nakon objave, korisnici mogu vidjeti Vaš program, skinuti ga i ocjeniti koristeći Market aplikaciju instaliranu na njihovom Android uređaju [14].
Android Developer ChallengeAndroid
Developer Challenge je natjecanje za najinovativniju aplikaciju za Android.
Prvo natjecanje (Android Developer Challenge 1) je započelo
početkom 2008.
godine. Google je ponudio nagrade vrijedne ukupno 10 milijuna dolara,
distribuirane između
dvije
faze natjecanja. U prvoj fazi prihvaćane
su
prijave od 2. siječnja
do
14. travanj 2008. 50 prijava koje su najviše
obećavale, objavljene
su 12. svibnja 2008., svaka je dobila 25000 dolara nagrade za financiranje
daljnjeg razvoja. Druga faza završila
je početkom rujna sa objavom deset timova koji su primili po 275.000
$ svaki,
a deset timova koji su dobili po 100.000
$ svaki.[1] 2.5. Uređaji koji koriste AndroidHTC Dream (također predstavljan kao T-Mobile G1, ili Era G1 u Poljskoj) je prvi telefon na tržištu koji koristi Android platformu. Telefon je dio otvorenog standarda Open Handset Alliancea. Izdan je u SAD-u 22. listopada 2008, u Velikoj Britaniji 30. listopada 2008, u Nizozemskoj i Češkoj 31. prosinca 2009., Poljskoj 23. veljače 2009, Australiji 5. Veljače, a bit će dostupan u drugim državama uključujući i Singapur, Francusku i Njemačku, tijekom 2009. Kineska tvrtka Qigi izdala je verziju svojih i6 Windows Mobile uređaja koji pokreću Android u prosincu 2008. Uređaj je proizveden od strane kineskog ODM TechFaith [1]. Nadolazeći uređaji
Kogan Technologies, Australski proizvođač tehnologije, najavio je Android kompatibilne uređaje: Kogan Agora i Kogan Agora Agora Pro. Uređaji su trebali biti objavljeni 29. siječnja 2009. Sredinom siječnja 2009, Kogan najavio da će izlazak Agora uređaja je kasniti neodređeno [1]. Nedavno su se pojavile i specifikacije nasljednika HTC-ovog mobitela G1 koji bi kao direktni konkurent iPhone uređaju bi mogao biti veoma zanimljiv. Međutim, najavljivan je već u siječnju 2009. - nije se još pojavio. Android
Dev Phone, spomenut ranije u tekstu (Razvoj na uređaju), trenutno nije
dostupan u Hrvatskoj. Zaključak
Android je definitivno projekt koji mnogo obećava. Iako osobno nemam previše vjere u uspjehe projekata otvorenog koda, vjerujem da bi Android mogao biti iznimka. Sigurno će unijeti promjene u svijetu mobilnih uređaja. Jedna od njegovih glavnih prednosti je dobra organizacija, koja ima potencijal da iskoristi svu moć i znanje zajednice otvorenog koda. Još jedna dobra stvar je uključenost velikog broja jakih kompanija u projekt, što omogućuje jako brzo širenje. Brzi razvoj, kao posljedica dobre organizacije, povlači za sobom unapređivanje svih aspekata projekta. Svatko može sudjelovati, š to ć e dodatno poticati inovacije i ubrzati razvoj. Svakodnevno se platforma tehnički usavršuje i unapređuje od strane neovisnih proizvođača. U Hrvatskoj će sve vezano uz Android vjerojatno kasniti, jer kao što je opće poznato, mi tehnološki zaostajemo za naprednim zemljama. Android je jako pozitivan pomak u svijetu mobilnih uređaja. Ima dobre š anse da ostvari uspjeh, ako ne i revoluciju. Što će se dogoditi - vrijeme će pokazati.
Literatura
[I] Wikipedia: Android (operating system), [2] Android Open Source Project, http://source.android.com/, ožujak 2009. [3] Android: What is Android?, http://www.android.com/about/, ožujak 2009. [4] Android developers: Dev Guide, What is Android?, http://developer.android.com/guide/basics/what-is-android.html, ožujak 2009. [5] Android Open Source Project: Release features - Android 1.0, http://source.android.com/release-features—android-1-0, ožujak 2009. [6] Android developers: Dev Guide, Application Fundamentals, http://developer. android. com/guide/topics/fundamentals. html, ožujak 2009. [7] Android developers: Dev Guide, Developing In Eclipse, with ADT, http://developer. android. com/guide/developing/eclipse-adt.html, ožujak 2009. [8] Android developers: Dev Guide, Developing In Other IDEs, http://developer. android. com/guide/developing/other-ide.html, ožujak 2009. [9] Android developers: Dev Guide, Developing on a Device, http://developer. android. com/guide/developing/device. html, ožujak 2009. [10] Android Open Source Project: Project layout, http://source.android.com/projects, ožujak 2009. [II] Android Open Source Project: Project roles, http://source.android.com/project, [12] Wikipedia: Android Market, http://en.wikipedia.org/wiki/Android Market, ožujak 2009. [13] Android developers: Dev Guide, Preparing to Publish: A Checklist, http://developer. android. com/guide/publishing/preparing. html, ožujak 2009. [14] Android developers: Dev Guide, Publishing Your Applications, http://developer. android. com/guide/publishing/publishing. html, ožujak 2009. |