Programiranje mobilnih telefona (1): Google Android
Sve što je neophodno da znate i imate da biste naterali Androida da se ponaša i po vašoj, pa a ne samo tuđoj volji... Ono što je veoma značajno za Android OS jeste činjenica da se radi o open source projektu, što znači da je izvorni kôd operativnog sistema svima dostupan za korišćenje i modifikaciju. To ga čini veoma privlačnim za kompanije koje žele da ga ugrade u svoje uređaje, a da pri tom nikom ništa ne plate. Gledano sa stanovišta programera (dakle nas), radi se o operativnom sistemu koji nudi veoma pogodno okruženje za razvoj aplikacija u programskom jeziku visokog nivoa kakva je Java, uz odličnu dokumentaciju i prateće alate koji su uz to potpuno besplatni. Pošto se radi o mladoj platformi, broj visokokvalitetnih aplikacija zasad je relativno mali, uprkos činjenici da se iz dana u dan pojavljuju desetine i desetine novih naslova. Ukoliko imate dobru ideju i uz to poznajete programski jezik Java (ili želite da ga naučite), pravi je trenutak da uskočite na voz koji se zahuktava i pođete s nama u čudesnu vožnju kroz pejzaže Android sveta. Vežite pojas Početna tačka za Android programere svakako je portal www. Kada je Android platforma u pitanju, razvoj i distribucija aplikacija su dve odvojene stvari. Razvoj aplikacija omogućen je svima – dovoljno je samo preuzeti potrebne alate sa Android developer sajta i baciti se na posao. Međutim, kada želite da svoje aplikacije ponudite korisnicima, najbolji način da to uradite je preko Android Marketa, online platforme koju održava Google i koja se u okviru Android OS-a pojavljuje kao poželjan način za instalaciju novih aplikacija. Da bi se vaša aplikacija pojavila na Android Marketu potrebno je da budete registrovani Android developer, za šta je potrebno izdvojiti 25 dolara. Potom vašu aplikaciju možete dodati u neku od kategorija Android Marketa, birajući pri tom hoće li ona biti besplatna za korisnike ili će se za nju plaćati. To je sve što je potrebno učiniti da bi vaša aplikacija postala dostupna milionima korisnika Android telefona, sve ostalo je pitanje kvaliteta aplikacije i interesovanja korisnika. Naravno, uvek možete izabrati i teži put za distribuciju aplikacije sopstvenim kanalima, ali to vam nikako ne bismo preporučili. Podesite retrovizor Početni korak koji treba napraviti kako bi se ušlo u svet Android programiranja je uspostavljanje odgovarajućeg razvojnog okruženja. Prva neophodna komponenta je Android SDK (Software Development Kit) koji sadrži neophodne alatke za debagovanje, simulaciju i razvoj aplikacija. Instalacija Android SDK-a sastoji se iz dve faze. Prva se svodi na preuzimanje SDK arhive i raspakivanje u željeni folder, uz dodavanje putanje do instalacionog foldera u sistemski PATH. Pošto uz novu verziju SDK-a zbog veličine ne dolaze postojeće verzije Android platforme (1.5, 1.6, 2.0...), one se posebno downloaduju korišćenjem programa „SDK Setup”, koji se nalazi u osnovnom folderu SDK arhive. Zašto se download postojećih verzija platforme radi odvojeno, biće vam jasno ukoliko se odlučite da ih sve preuzmete – krajnja veličina SDK foldera sa svim trenutno raspoloživim platformama je oko 840 MB! Valja napomenuti to da je jedan od preduslova za rad Android SDK-a postojanje instalacije Java SDK 5 ili 6 na računaru (vodite računa o tome da Java SDK nije isto što i JRE – Java Runtime Environment, koji je obično već instaliran na vašem računaru). Instalacija Java SDK-a može se preuzeti sa Sunovog sajta (java. Uključite Bluetooth sluške SDK koji smo instalirali u prvom koraku je razvojno jezgro, ali razvoj aplikacija u 21. veku zahteva komfor i efikasnost, dakle adekvatno integrisano razvojno okruženje (IDE – Integrated Development Environment) koje vam pruža priliku da iz njega jednostavno editujete, kompajlirate, debagujete, simulirate – jednom rečju razvijate aplikaciju. Preporučeni IDE za Android je Eclipse, univerzalni IDE, koji se uz odgovarajuće proširenje (plug-in) pretvara u odlično okruženje za razvoj Android aplikacija. Sa Eclipse sajta (www. Eclipse je sam po sebi univerzalno razvojno okruženje, tako da ga je potrebno odgovarajućim proširenjima prilagoditi razvoju Android aplikacija. Proširenja često zavise od drugih proširenja, što za neiskusne korisnike Eclipsea može da se pretvori u noćnu moru. Zato preporučujemo da sve to izbegnete preuzimajući neku od preporučenih dostribucija Eclipsea, budući da one imaju sve komponente od kojih Android plugin zavisi. Googleov plugin za Eclipse zove se ADT (Android Development Tools) i njegova instalacija vrši se korišćenjem opcije Remote update, što se svodi na to da Eclipse automatski preuzme i instalira plugin sa internet lokacije koju je obezbedio Google. Proces instalacije veoma je dobro dokumentovan na Android developer sajtu, tako da se time sada nećemo baviti. Jedan od najboljih načina da brzo naučite programiranje na novoj platformi svakako je proučavanje izvornog kôda gotovih aplikacija. Na svu sreću, Internet je prepun veoma korisnih primera Android aplikacija koji će vam uštedeti mnogo vremena oko rešavanja pojedinih problema. Veliki deo projekata može se skinuti korišćenjem SVN klijenta sa nekog od besplatnih SVN servera (najčešće je to code. Proverite motor Kada kažemo da je Android operativni sistem, to je... hmmm... relativno tačna izjava. Razlog za ovo je činjenica da je najniži nivo Androida zapravo Linux kernel 2.6, koji predstavlja sloj softvera koji razdvaja konkretan hardver od ostatka softvera. Kernel u sebi sadrži niz drajvera koji su zaduženi za pojedine delove hardvera telefona (kamera, WiFi, audio...), programsku podršku za upravljanje memorijom, procesima – dakle sve ono što čini jedan klasičan operativni sistem. Programer Android aplikacija generalno nema direktan pristup Linux kernelu, već mu se prema potrebi obraća preko biblioteka koje se nalaze u narednom sloju softvera. Dakle, naredni sloj Android platforme (namerno nećemo reći OS-a) sastoji se od C/C++ biblioteka koje se direktno oslanjaju na Linux kernel i nude razne funkcije na višem nivou apstrakcije. Bibliotečki sloj nudi, na primer, biblioteku za rad sa različitim formatima audio/video zapisa (MP3, H.264, AAC i slične), potom pruža podršku za 2D/3D grafiku kroz Surface Manager biblioteku, prikaz fontova se bazira na biblioteci FreeType itd. Kod Android platforme većina stvari se vrti oko Jave. Stoga je jedan od najbitnijih softverskih slojeva Android platforme Android Runtime, u kojem se nalaze biblioteke neophodne za funkcionisanje programskog jezika Java. Pored biblioteka, glavni deo ovog runtime sloja je virtuelna mašina Dalvik, optimizovana za rad na platformi sa ograničenim resursima kakav je mobilni telefon. Svaka aplikacija koja se pokrene na Androidu se izvršava u posebnoj instanci Dalvik virtuelne mašine, tako da je Dalvik optimizovan i po pitanju potrošnje programske memorije. Treći sloj Android platforme je takozvani Application Framework. To je niz resursa kojima programer pristupa preko svima dostupnih API-ja i koji se koriste za razvoj aplikacija i kontrolu njihovog ponašanja. Uz upotrebu delova ovog sloja programer može pristupati pojedinim funkcijama određenih hardverskih komponenti (GPS, na primer). Ovaj sloj nudi veoma inventivne mehanizme za reuse pojedinih komponenti, prati životni vek aplikacija, omogućava aplikacijama da dele resurse, da se registruju kao nosioci određenih operacija i još mnogo toga. Može se reći da je u ovom sloju Androida najveći deo onoga što ovu platformu razlikuje od drugih mobilnih platformi. Najviši sloj Android softvera jeste aplikativni sloj – dakle onaj u koji spadaju korisničke aplikacije. Sav aplikativni softver, uključujući i onaj koji dolazi kao deo Android platforme, zasniva se na Application Framework funkcionalnostima, što čini da nema „diskriminacije” između slobodnih programera i onih koji razvijaju softver za proizvođače telefona. Pazite na signalizaciju Sada kada znamo ponešto o potrebnim alatima i o strukturi operativnog sistema, vreme je da se upoznamo i sa osnovnom organizacijom Android aplikacija. Krenimo od onog što je najuočljivije u svakoj aplikaciji – korisničkog interfejsa. Na Android platformi korisnički interfejs se formira u okviru aktivnosti (Activity), koje generalno predstavljaju jednu smislenu operaciju koju korisnik može da uradi. Tako je, na primer, lista kontakata jedna aktivnost, stranica za unos podataka o kontaktu druga aktivnost i tako dalje. Svaka aplikacija se sastoji od niza aktivnosti, pri čemu jedna aplikacija može koristiti aktivnosti druge aplikacije – ako je, na primer, vašoj aplikaciji potrebno da vas odvede na web stranicu koristićete adekvatnu aktivnost brauzera, a ako vam je potrebno da prikažete poziciju na mapi koristićete odgovarajuću aktivnost Google Mapsa. Za aplikacije je često korisno da prate različite događaje na telefonu: promenu stanja baterije, dolazeći poziv i slično. Za ovakve potrebe Android programeri koriste prijemnike događaja (Broadcast receivers) koji se, slično servisima, odvijaju u pozadini, naravno uz mogućnost da pokrenu odgovarajuću aktivnost koja će korisnika o nečemu informisati. Većina događaja potiče iz operativnog sistema, ali i same aplikacije mogu da emituju događaje koji mogu biti od interesa drugim aplikacijama. Svaka aplikacija može da registruje proizvoljan broj prijemnika događaja i na osnovu njih vršiti interakciju s korisnikom. Na kraju, Android nudi i provajdere sadržaja (Content providers), komponente koje deo svojih podataka dele sa ostalim aplikacijama preko specifičnog interfejsa. Podaci mogu biti iz SQLite baze podataka, iz fajl sistema ili bilo kog drugog izvora podataka koji Android platforma podržava. Interfejs koji provajderi sadržaja nude je takav da omogućava komunikaciju sa svakom aplikacijom. Oko toga od kog će kontent provajdera određena vrsta podataka biti preuzeta brine se Content resolver. Pazite na ostale učesnike Komunikacija između navedenih komponenti Android aplikacija vrši se na dva načina – za provajdere sadržaja potrebno je koristiti razrešivače sadržaja (Content Resolver), dok se za ostale tri vrste komponenti koriste namere (Intent). Namere su asinhrone poruke kojima se startuju aktivnosti ili servisi ili se pomoću njih iniciraju ili dostavljaju događaji. Korišćenje namera za svaku vrstu komponenti pomalo je specifično, ali predstavlja jedinstven način razmene poruka između aplikacija ili delova aplikacija. Kao i sve novo što se započinje, tako i programiranje na Android platformi u početku donosi mnogo toga nepoznatog. Međutim, ono što je uvek bila karakteristika bilo kog Googleovog proizvoda jeste odlična dokumentacija, koja ni ovog puta nije izostala. Google daje niz veoma korisnih tutorijala sa već gotovim kôdom uz koje se brzo i efikasno savladavaju osnovni koncepti Android platforme. Osim Googlea, tu je i standardno velika zajednica Android programera, koja najčešće nesebično deli svoj kôd i znanja sa drugima, pa odgovore na svoja pitanja uglavnom možete naći brzo i lako. Nova kategorija vozača Ukoliko ste željni programerskih izazova i želite da se oprobate u svetu Android aplikacija, pravi je trenutak za vas. Pošto se radi o novoj platformi sa relativno skromnom ponudom gotovog softvera, dovoljna je dobra ideja da vašu aplikaciju učini popularnom. Naravno, sve ovo će zahtevati i dosta rada i učenja, ali to je jedini siguran način da u tome što radite i uspete. Dejan STEFANOVIĆ |
| ||||||||||||||||||||||||||||||||||||||||||
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |