Sam svoj programer
Android se je zaradi svoje odprtosti, dostopnosti in prilagodljivosti prikupil veliki množici izdelovalcev mobilnih telefonov, pa tudi uporabnikom. Ne nazadnje to odseva več kot 700.000 vsak dan aktiviranih androidnih naprav, bodisi telefonov ali tabličnih računalnikov. Ne čudi torej, da se tudi "navadni uporabniki" že sprašujejo, ali bi za take pametne telefone lahko tudi programirali.
Programiranje za Android je v osnovi preprosto, naučiti se morate le nekaj sintakse programskega jezika java. Za razvoj in testiranje aplikacij ne potrebujete niti mobilnega telefona, saj programsko okolje omogoča tudi simulacijo delovanja aplikacije.
Deli programske kode večinoma ne bodo vsebovani v člankih, temveč bodo dostopni na Wiki spletni strani android.monitor.si. Na omenjeni strani bo dostopna tudi izvorna koda projektov, katerih razvoj bomo kot zglede opisovali v člankih. Na spletni strani so tudi dodatne informacije o nastavitvah okolja in odgovori na vaša vprašanja glede specifičnih problemov pri razvoju.
Še preden se dejansko posvetimo razvoju prve aplikacije, moramo spoznati okolje, v katerem jih bomo razvijali. V Googlu so za razvoj aplikacij za platformo Android pripravili skupek knjižnic in orodij (Android SDK), ki nam zelo olajšajo razvoj. Da je delo za razvijalca še udobnejše, pa so vse skupaj povezali z zelo razširjenim razvojnim okoljem Eclipse.
Uporaba razvojnega okolja Eclipse
Za razvoj aplikacij bomo v nadaljevanju uporabljali prosto dostopno razvojno okolje Eclipse (www.eclipse.org), mnogim znano kot odlično okolje za programiranje v programskem jeziku java. Kot rečeno, tudi aplikacije za Android so napisane v programskem jeziku java (oziroma delno prirejeni različici). Del orodij paketa Android SDK so tudi vtičniki za razvojno okolje, ki omogočajo komunikacijo z mobilnimi napravami, razhroščevanje na daljavo in zaganjanje napisanih aplikacij v simulatorju.
Za namestitev razvojnega okolja Eclipse moramo s prej omenjene spletne strani prenesti k sebi arhivski paket (.zip), ki vsebuje okolje. Pri tem bodite pozorni na izbiro paketa Eclipse IDE for Java Developers, pa tudi na ustrezno različico (32- ali 64-bitni). Drugi paketi se v osnovi sicer ne razlikujejo, razen po drugih vključenih vtičnikih. Podrobnejši opis namestitve samega razvojnega okolja najdete na android.monitor.si.
[Več o tem na android.monitor.si]
Po uspešni namestitvi je treba v okolje Eclipse namestiti še vtičnike iz paketa Android SDK. Okolje Eclipse zaženemo z dvojnim klikom datoteke eclipse.exe v mapi, v katero smo okolje razširili. Ob zagonu izberemo delovno mapo okolja (Workspace), kjer bodo naši projekti. Delovno mapo potrebujemo za shranjevanje izvorne kode, nastavitev okolja, pa tudi za vse potrebne informacije za uspešno prevajanje naših androidnih aplikacij. Za delovno mapo lahko izberemo poljubno mesto na disku, do katere imamo dostop. Treba je opozoriti, da te mape in njene vsebine ne spreminjate ročno prek Raziskovalca, temveč zgolj prek okolja Eclipse.
Prvi vtičnik, ki ga moramo namestiti, je ADT (Android Development Toolkit), ki je vmesnik za nameščanje drugih androidnih vtičnikov. To lahko storimo prek menujske izbire Help -> New software, kjer v polje Work with vpišemo spletni naslov https://dl-ssl.google.com/android/eclipse/. Izberemo vse ponujene pakete in jih namestimo. Pri tem sprejmemo licenčne pogoje in potrdimo morebitne izjeme med samim nalaganjem. Programsko okolje bo na koncu namestitve zahtevalo nov zagon, in to tudi storimo. Programsko okolje se bo samostojno znova zagnalo in ponudilo še dodatno namestitev vtičnika Android SDK and AVD Manager, ki ga bomo v nadaljevanju potrebovali. Tudi tega namestimo s ponujenimi nastavitvami. Podrobnejše informacije o namestitvi skupaj z odgovori na morebitna vprašanja najdete na zgoraj omenjeni spletni strani.
Okolje za razvoj androidnih aplikacij je pripravljeno! Če že imate androidno napravo, je potreben še en korak: namestitev gonilnika, ki omogoča razhroščevanje in enostavno poskusno poganjanje aplikacij na napravi. Praviloma so gonilniki dostopni na spletnih straneh izdelovalcev ali pa so celo priloženi napravi. Če ni tako, jih najlaže najdemo s pomočjo Googla ("USB drivers for Android XXX").
[Več o tem na android.monitor.si]
Če želimo svoje aplikacije na naši napravi tudi razhroščevati, je treba na napravi v nastavitvah to tudi dovoliti (tipično: Settings -> Apps -> Development -> USB Debugging). S tem lahko na priključeni napravi poganjamo aplikacije, ne da bi jih namestili, in jih razhroščujemo. To je med razvojem aplikacij zelo uporabno.
Ob morebitni rabi simulatorja androidnega okolja - Android Emulator, je treba v razvojnem okolju Eclipse pripraviti tudi virtualno napravo. To storimo z menujsko izbiro Window -> AVD Manager. V prikazanem oknu izberemo New ..., izberemo ime naprave, različico operacijskega sistema, ki jo želimo imeti, velikost zaslona, količino pomnilnika in druge možnosti. S klikom Create AVD ustvarimo novo napravo.
Tako, posnemovalnik je pripravljen za delo, na vrsti je programiranje.
Za začetek: Slovarček
razred - skupen opis množice objektov, ki služi kot vzorec za oblikovanje več objektov z istim obnašanjem.
metoda - procedura (zaporedje ukazov), lastna enemu objektu ali več objektom.
objekt - konkretni primerek razreda, ustvarjen med izvajanjem programa; objekt združuje vrednosti podatkov in metode, ki na teh podatkih delujejo.
ADT - Android Development Tools. Zbirka orodij za razvoj androidnih aplikacij v okolju Eclipse.
API - Application programming interface oz. vmesnik API. Specifikacija v obliki izvorne kode, ki se uporablja kot vmesnik za komunikacijo med posameznimi deli programske opreme.
AVD - Android Virtual Device. Navidezna androidna naprava.
SDK - Software Development Kit. Zbirka pripomočkov za olajšan razvoj aplikacij. SDK lahko vsebuje tako orodja za razvoj, zglede rabe, pa tudi zbirko osnovnih knjižnic za lažji razvoj.
Prvi projekt
Z menujsko izbiro File -> New -> Project... odpremo okno za izbiro novega projekta. Izberemo Android project, ki je v mapi Android (Slika 1). Pomaknemo se naprej na izbiro imena projekta. Za ime si bomo izbrali and_PozdravljenSvet (Slika 2). Okno nam nato ponudi izbiro imena aplikacije, imena paketa in najnižje želene različice sistema Android, potrebnega za delovanje aplikacije (Slika 3 in 4). Na tem mestu bomo spremenili le ime paketa, kot je zahtevano. V našem primeru smo izbrali ime fri.lgm.android. Dialog končamo s klikom Finish.
Izbira tipa projekta
Izbira imena projekta
Izbira podprte različice androidne platforme
Določitev imena paketka
S tem smo uspešno ustvarili prvi androidni projekt!
V tej fazi projekt že "deluje", tako da pri zagonu ne naredi drugega, kot prikaže okno naše aplikacije z vnaprej določenim napisom. Aplikacijo poženemo tako, da v razvojnem okolju kliknemo gumb z belo puščico v zelenem krogu ali prek menuja Run -> Run. Ob prvem zagonu nas Eclipse vpraša, kot kakšen "tip" želimo zagnati našo aplikacijo. S seznama izberemo Android Application (Slika 5) in izbiro potrdimo. Če imamo priključeno napravo, naložene gonilnike in na napravi omogočeno razhroščevanje prek USB vmesnika, se bo naša aplikacija zagnala na sami napravi. Če nimamo priključene naprave, se bo zagnal simulator (na tem mestu opomnimo, da se simulator zaganja kar nekaj časa in ga po prvem zagonu ni treba zapirati, dovolj je, če zapremo zgolj aplikacijo, ki na njem teče, oziroma aplikacijo znova poženemo iz razvojnega okolja; slednja se prevede, prenese v simulator in na njem zažene).
Izbira tipa znane aplikacije
Struktura projekta in odprta datoteka And_PozdravljenSvetActivity.java.
Našo aplikacijo bomo za začetek dopolnili tako, da bo izpisala "Pozdravljen, svet". To bomo storili tako, da bomo dopolnili datoteko, ki določa, kaj se zgodi ob zagonu aplikacije. Ta datoteka se imenuje And_PozdravljenSvetActivity.java in jo najdemo v drevesni strukturi, prikazani znotraj Package Explorerja (levo okno v razvojnem okolju) pod and_PozdravljenSvet -> src -> fri.lgm.android -> And_PozdravljenSvetActivity.java (Slika 6) in odpremo v urejevalniku z dvojnim klikom. Datoteko smo ustvarili že med samim ustvarjenjem projekta. V datoteki, katere vsebina se prikaže v osrednjem oknu, poiščemo metodo public void onCreate(Bundle savedInstanceState). Ta metoda se zažene vsakič, ko poženemo aplikacijo. V metodi je že nekaj vrstic kode, ki dajo aplikaciji videz, kot ga vidimo, če jo poženemo.
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Prva vrstica za nas trenutno ni pomembna, saj metodi nadrazreda posreduje morebitno shranjeno stanje, ki ga v našem primeru ni, ker aplikacija ni nameščena na napravi, temveč jo vsakič znova namestimo in poženemo. Druga vrstica naši aplikaciji sporoča, naj prikaže vnaprej pripravljen gradnik. Tega trenutno še ne bomo uporabili. Iz druge metode bomo uporabili zgolj metodo setContentView(), s pomočjo katere bomo v našo aplikacijo dodali nov gradnik, ki bo na črno okno naše aplikacije izpisal napis Pozdravljen, svet. Ustvarili bomo nov objekt tipa TextView (napis), mu določili, da je del naše aplikacije (kontekst nastavimo na this), in vanj vpisali besedilo. V naslednjem koraku bomo novo ustvarjeni napis dodali v našo aplikacijo ob pomoči klica metode setContentView().
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Pozdravljen, Svet");
setContentView(tv);
}
Če se v kodi pojavi napaka (te so v okolju Eclipse dodatno označene z rdečo podčrtavo), da razred TextView ni prepoznan (vrsto napake ugotovimo tako, da se z miško postavimo nad podčrtano besedo), uporabimo prvega izmed ponujenih hitrih popravkov (quick-fixov, ki so našteti pod prej omenjenim opisom napake) Import 'TextView' (android.widget). Popravek na vrhu datoteke, pod navedbo paketka, doda vrstico import android.widget.TextView; s tem okolju Eclipse povemo, kateri razred TextView naj uporabi pri prevajanju datoteke iz izvorne kode v izvršljivo (uporabimo že obstoječ paketek android.widget, v katerem je definiran razred TextView). Po uspešni spremembi aplikacije jo lahko znova zaženemo in na naši napravi vidimo želeni rezultat na sliki 7.
Zaslon naše prve aplikacije "Pozdravljen, svet". Prikazana je na tablici.
Partnerji: Od Pozdravljen, svet do Space Invaders
S tem člankom začenjamo vodnik po razvoju aplikacij za okolje Android, ki je plod sodelovanja s Fakulteto za računalništvo in informatiko Univerze v Ljubljani. V nizu šestih ali sedmih člankov bomo spoznali, kaj sploh potrebujemo za razvoj aplikacij, kateri so osnovni koraki razvoja, katere so najpogostejše težave in kako jih rešiti. Tako si bomo tudi na zgledih ogledali, kako lahko po korakih od zelo preproste aplikacije pridemo do delujoče igrice tipa "Space invaders".
Celotna serija bo povezana z wiki spletno stranjo, ki jo najdete na naslovu android.monitor.si
Končni cilj šole. Kako pridni bomo pri izrisovanju tekstur, bomo še videli ;)
Kako naprej
V naslednjem nadaljevanju bomo podrobneje predstavili androidno platformo in vmesnik API (Aplication Programming Interface). S tem se bomo poglobili v delovanje aplikacij in njihov življenjski cikel. Skupaj bomo razvili tudi aplikacijo za prikaz slike.
Do naslednjič pa za dodatne informacije in odgovore na morebitna vprašanja obiščite spletno stran: android.monitor.si.