SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 4089 APLIKACIJA ZA BRZO DOGOVARANJE SASTANAKA PAMETNIM TELEFONIMA S OPERACIJSKIM SUSTAVOM ANDROID Filip Popić Zagreb, lipanj 2015. Sadržaj Uvod ...................................................................................................................................... 1 1. Operacijski sustav Android ........................................................................................... 2 1.1. Osnove i razvoj operacijskog sustava Android ..................................................... 2 1.2. Arhitektura operacijskog sustava Android ............................................................ 3 1.3. Struktura Android aplikacija ................................................................................. 6 1.3.1. Aktivnosti ...................................................................................................... 6 1.3.2. Usluge ............................................................................................................ 8 1.3.3. Primatelji namjera.......................................................................................... 9 1.3.4. Pružatelji sadržaja ........................................................................................ 10 1.3.5. Namjere ....................................................................................................... 10 1.4. Korisničko sučelje Android aplikacija ................................................................ 10 2. Vanjska komponenta za razmjenu poruka i informacija o prisutnosti ........................ 13 2.1. Osnove protokola XMPP ..................................................................................... 13 2.2. Opis javnog sučelja vanjske komponente ............................................................ 16 2.3. Ugradnja vanjske komponente ............................................................................ 17 3. Aplikacija za brzo dogovaranje sastanaka ................................................................... 19 3.1. Programsko ostvarenje ........................................................................................ 19 3.2. Podržane funkcionalnosti aplikacije .................................................................... 27 3.3. Testiranje aplikacije ............................................................................................. 30 Zaključak ............................................................................................................................. 32 Literatura ............................................................................................................................. 33 Sažetak ................................................................................................................................. 34 Summary .............................................................................................................................. 35 Skraćenice ............................................................................................................................ 36 Ključni pojmovi ................................................................................................................... 37 Key terms ............................................................................................................................. 38 Uvod Brzo dogovaranje sastanaka svodi se na kratku i jednostavnu komunikaciju između više uključenih strana, koje u što kraćem vremenu žele organizirati zajednički sastanak, na određenom mjestu u dogovoreno vrijeme. Za uspješno dogovaranje sastanaka između različitih strana, potrebno je prilagoditi slanje i primanje zahtjeva te povrat odgovora o nekom prijedlogu za sastanak. Komunikacija preko pokretnih uređaja sve više se nameće kao prigodno sredstvo za ostvarivanje navedenih zahtjeva, koja zbog svoje jednostavne strukture omogućuje prijenos sažetih, ali ipak potpunih informacija. Rad se bavi istraživanjem postojećih rješenja temeljenih na protokolu XMPP i praktičnom izradom aplikacije za pokretne uređaje s operacijskim sustavom Android. Povezivanje s poslužiteljem i ostvarivanje cjelokupne komunikacije ostvaruje se preko vanjske komponente koja omogućuje neovisnu implementaciju te pruža sve potrebne usluge za ostvarivanje komunikacije na spomenutom protokolu. U prvom poglavlju opisuje se operacijski sustav Android, nakon čega slijedi opis protokola XMPP te pregled i način ugradnje vanjske komponente. Posljednje poglavlje opisuje oblikovanje i izradu programskog rješenja te pruža uvid u ostvarene funkcionalnosti aplikacije. 1 1. Operacijski sustav Android U ovom poglavlju opisan je nastanak i razvoj operacijskog sustava Android. Popraćen je vremenski razvoj operacijskog sustava Android s pregledom najvažnijih trenutaka i značajki koje su utjecale na daljnji razvoj i smjer operacijskog sustava. Nakon početnog dijela prikazuje se arhitektura operacijskog sustava Android. Zatim slijedi opis strukture Android aplikacije sa svojim komponentama i korisničkim sučeljem koje je opisano u posljednjem dijelu poglavlja. 1.1. Osnove i razvoj operacijskog sustava Android Android je platforma bazirana na otvorenom kodu, namijenjena različitim kategorijama uređaja, koju najčešće čine pokretni uređaji (mobiteli, tableti, pametni satovi). Najvažniji pojmovi koji se vežu uz Android su otvorenost i neovisnost, zbog kojih se značajno promijenio odnos između proizvođača sklopovlja uređaja i proizvođača programske potpore, koji su dosada najčešće bili unutar iste kompanije, a često i jedini razvijatelji aplikacija za svoje uređaje. Tvrtka Google, Inc. je 2005. godine kupila tvrtku Android, Inc., a kako bi se sačuvala ideja o otvorenosti dvije godine nakon preuzimanja, tvrtka službeno objavljuje cijeli projekt temeljen na otvorenom kodu uz osnivanje neovisnog konzorcija Open Handset Alliance, sastavljenog od najvećih svjetskih kompanija sa osnovnom idejom daljnjeg razvoja otvorenih tehnologija na području pokretnih uređaja. Članice su se obvezale na korištenje operacijskog sustava Android što je omogućilo veću rasprostranjenost platforme na uređajima različitih arhitektura i sklopovlja. Prekretnica za razvoj aplikacija predstavlja 2008. godina, odnosno izdavanje programskog paketa za izradu aplikacija Android SDK (Software Development kit), zajedno sa svim potrebnim alatima koji omogućuju izradu, pokretanje i testiranje aplikacija na računalu bez potrebe prisustva stvarnog uređaja. Android u međuvremenu izdaje nove verzije operacijskog sustava kodnih imena Cupcake, Donut, Eclair, koje se i dalje izvode na relativno ograničenom broju uređaja. Ubrzani porast broja korisnika i podržanih uređaja Android postiže konstantnim izdavanjem novijih verzija operacijskog sustava koje donose brojna poboljšanja i novitete, uključujući i razvoj korisničkog sučelja kojemu se sve više pridodaje na važnosti. Izdavanjem verzije KitKat 2013. godine, Android je dostigao broj od milijardu uspješnih aktivacija operacijskog sustava, čime je izašao izvan svih dosadašnjih okvira cjelokupne industrije.[1] Trenutno 2 najnovija verzija sustava je Lollipop, koja je svojim novim korisničkim sučeljem, izgrađenom na osnovama materijalnog dizajna (material design), uvela sasvim novi pristup pri oblikovanju i dizajniranju korisničkih sučelja, kojega su prihvatile i ostale tehnologije poput Weba. 1.2. Arhitektura operacijskog sustava Android Arhitektura operacijskog sustava Android podijeljena je na slojeve kao što je prikazano na slici Slika 1.1.: Aplikacijski sloj Sloj aplikacijskog okvira (application framework) Programske knjižnice Radno okruženje Android (Android runtime) Linux jezgra (Linux kernel) 3 Slika 1.1 Arhitektura operacijskog sustava Android Linux jezgra Najniži sloj operacijskog sustava Android čini Linuxova jezgra 2.6 koja se pokazala primjerenim odabirom, ponajprije zbog svoje prenosivosti i sigurnosti, ali i konstantnog razvoja koji osigurava daljnji napredak cijelog sustava. Linuxova jezgra pomoću svojih upravljačkih mehanizama omogućuje zaštićeno izvođenje naredbi unutar kontroliranih procesa što znatno doprinosi sigurnosti i robusnosti cijelog operacijskog sustava. Radno okruženje Android Radno okruženje Android sastoji se od virtualnog stroja Dalvik (Dalvik Virtual Machine, DVM) i jezgrenih programskih knjižnica (core libraries). Dalvik je virtualni stroj izgrađen na temelju virtualnog stroja za Javu (Java Virtual Machine, JVM), ali je svojim dizajnom prilagođen za pokretne uređaje kako bi se omogućila učinkovita raspodjela i iskorištavanje ograničenih resursa sustava, poput radne memorije, trajanja baterije i procesorske snage. Prevođenje izvorne datoteke napisane u Javi (Java 4 source file, .java) započinje prevođenjem u međukod za Javu (Java bytecode, .class), koristeći Javin prevoditelj. Zatim slijedi novo prevođenje dobivene datoteke u međukod virtualnog stroja Dalvik (Dalvik bytecode, .dex), koristeći alat dx koji je sadržan u programskom paketu Android SDK (Software development Kit). Dobivenu izvršnu datoteku moguće je izvoditi na krajnjem uređaju pri čemu se svaka aplikacija zasebno izvodi u svojoj instanci virtualnog stroja Dalvik.[2] Pored uobičajenog pisanja aplikacija u programskom jeziku Java, moguće je programirati u većini jezika koji se mogu odgovarajućim prevoditeljima prevesti u međukod za Javu, Primjeri takvih programskih jezika su Scala, Groovy ili Kotlin, koji pojednostavljenom sintaksom i proširenim mogućnostima polagano privlače sve veći udio programera. Jezgrene programske knjižnice sastavljene su od pripremljenih razreda koji služe za učinkovito obavljanje uobičajenih zadataka iscrtavanja sučelja i manipulacije različitim strukturama podataka. Android je naslijedio većinu jezgrenih knjižnica programskog jezika Java (Java Standard Edition, JavaSE), uz važniju iznimku jezgrenih programskih knjižnica namijenjenih za prikaz korisničkog sučelja, koje su posebno izgrađene za operacijski sustav Android. Programske knjižnice Skup programskih knjižnica za Android čine pouzdane i učestalo korištene programske knjižnice za specifične namjene. Preuzete su iz različitih izvora i udruženja, koja javno objavljuju postignuta rješenja na principima otvorenog koda. Većina ih je napisana u jezicima C i C++ koji se jednostavno prevode u druge jezike, a osnovna namjena je pružanje specifičnih usluga ostalim dijelovima sustava na višim slojevima. Primjeri korištenih programskih knjižnica su SQLite koji implementira pristup i samu bazu podataka te Op koji omogućuje prikazivanje različitih grafičkih struktura. Sloj aplikacijskog okvira Sloj aplikacijskog okvira sastoji se od brojnih komponenti upravitelja usluga i pružatelja sadržaja. Osnovna zadaća sloja je omogućiti jednostavan pristup različitim dijelovima sklopovlja uređaja, koje neprestano ili periodički preko različitih izvora (senzori, mrežni podaci) prikuplja podatke koji se mogu u aplikaciji iskoristiti. Za razvijatelje aplikacija, sloj aplikacijskog okvira od presudne je važnosti, jer osim osnovnih mobilnih usluga telefoniranja i slanja tekstualnih poruka, omogućuje razvoj aplikacija za „pametne“ uređaje (smartphone) u njihovom pravom smislu. Primjer takvih usluga su usluge objavljivanja 5
Description: