Download - Android2012 - Prva lekcija
-
7/29/2019 Android2012 - Prva lekcija
1/18
10/23/2012
1
Programiranje Android aplikacija-prvo predavanje-
Visoka kola elektrotehnike i raunarstva
strukovnih studija Beograd, 2012
Android
Softverska platforma i operativni sistem za mobilneureaje
Baziran na Linux kernelu
Razvijen od strane Google-a a kasnije od OpenHandset Aliance (OHA)
OHA organizacija iji je glavni cilj razvoj otvorenihstandarda za mobilne ureaje
Mogunost pisanja aplikacija u upravljivom kodu(managed code), tanije u programskom jeziku Java
-
7/29/2019 Android2012 - Prva lekcija
2/18
10/23/2012
2
irenje Android sistema
http://metrics.admob.com/wp-content/uploads/2010/06/May-2010-AdMob-Mobile-Metrics-Highlights.pdf
irenje Android sistema 2012
-
7/29/2019 Android2012 - Prva lekcija
3/18
10/23/2012
3
Android platforma
Kompletna end-to-end softverska platforma prilagodljiva
velikom broju hardverskih konfiguracija Sadri sve: od bootloader-a pa sve do korisnikih
aplikacija
Operativni sistem Linux koji upravlja hardverskim resursima, procesima,
memorijom i umreavanjem
Sledei sloj su Android native biblioteke napisane uC/C++, a koje se pozivaju kroz Java interfejse. Ovdespadaju Surface Manager, 2D i 3D grafika, Mediacodecs, SQL baza (SQLite), i native web browserengine (WebKit).
Sigurnost
Prati standardne Linux smernice: Svaka aplikacija je pokrenuta u posebnom procesu (u
okviru kojeg je podrana vienitnost)
Dozvole koje ima proces se definiu za korisnika ili grupu(User ID ili Group ID)
Detaljnije dozvole se definiu prema operacijama Korienje interneta, pozivi, slanje SMS-a, uvid u imenik,
korienje GPS-a ...
O ovom XML-u bie rei kasnije...
-
7/29/2019 Android2012 - Prva lekcija
4/18
10/23/2012
4
Android platforma
Kako se pokree Java ?
Dalvik Virtual Machine
Deo Android platforme
Optimizovana za rad sa manjom memorijom idizajnirana da omogui pokretanje vie instanci u istovreme, oslanjajui se na operativni sistem koji
omoguava izolaciju procesa, upravljanje memorijom ipodrku za niti.
Dalvik nije isto to i JVM: njen bytecode nije isti kaoJava bytecode. Java klase kompajlirane regularnimJava kompajlerom se transformiu u drugi format: .dex
Dex datoteke se komprimuju u jedinstvenu .apkdatoteku i smetaju u memoriju ureaja.
-
7/29/2019 Android2012 - Prva lekcija
5/18
10/23/2012
5
Razvoj aplikacija
Zahtevi Java
SDK
Razvojno okruenje (opciono) npr. Eclipse
Programski jezici Java zvanino podrana
C/C++ - takoe mogue ali nije podrano
Razvojno okruenje (IDE) i SDKAndroid SDK
Class Library Developer Tools
dx Dalvik Cross-Assembler aapt Android Asset Packaging Tool adb Android Debug Bridge ddms Dalvik Debug Monitor Service
Emulator i System Images
Dokumentacija i primeri
Eclipse IDE + ADT (Android Development Tools) Smanjuje vreme razvoja i testiranja Olakava kreiranje korisnikog interfejsa Olakava opisivanje aplikacija
-
7/29/2019 Android2012 - Prva lekcija
6/18
10/23/2012
6
Gradivni blokovi aplikacije
Sve aplikacije su napisane u jeziku Java i dostupne su
jedna drugoj Svaka aplikacije moe da objavi svoje mogunosti
koje druge aplikacije mogu da korsite
Resource Manageromoguava pristupresursima kao to su lokalizovanistringovi, grafika, dizajn kor. Interfejsa...
Notification Manageromoguavaaplikacijama da objave poruke ustatusnoj linij i
Activity Managerupravljaivotnim ciklusom aplikacije iomoguava navigaciju izmeunjenih delova
Views kao to su Button, Textbox, grid, liste pa ak i ugraeni
web pretraiva
Content Providers omoguavajuaplikacijama pristup podacima izdrugih ap., kao i da podele svojepodatke
Gradivni blokovi aplikacije - nastavak
Broadcast receivers mogu dapokrenu aplikaciju reagovanjena neki dogaaj
Data storage podaci za aplikaciju: datoteke ulokalnom sistemu datoteka, baza (SQLite). Mogue jedeljenje tih podataka izmeu aplikacija
Sve aplikacije imaju istu strukturu
-
7/29/2019 Android2012 - Prva lekcija
7/18
10/23/2012
7
Activity - aktivnost
Obino odgovara jednom UI ekranu
Ali moe: Biti bez korisnikog interfejsa (faceless)
Da bude u lebdeem prozoru (widget)
Da vrati neku vrednost (pri vraanju na prethodnuaktivnost)
Aktivnost moe da prikae neki UI i da mu dafunkcionalnost: dogaaji, izmena prikaza UI, poziv zapokretanje druge aktivnosti...
ivotni ciklus aktivnosti
-
7/29/2019 Android2012 - Prva lekcija
8/18
10/23/2012
8
ivotni ciklus aktivnosti
Kao to se vidi na dijagramu aktivnost moe biti
pauzirana, pa ak i prekinuta ukoliko je sistemupotrebna memorija.
Svi podaci koji su u tom trenutku bili u memoriji mogubiti izgubljeni
Postoji mehanizam da se oni sauvaju i ponovo vratena svoje mesto nakon ponovnog pokretanja aktivnosti
IntentReceivers
Komponente koje odgovaraju na broadcast Intents
Ovo je nain na koji se odgovara na poruku ili alarm kojidolazi spolja (van aplikacije)
Aplikacija moe da ima svoj Intent i da ga objavi
-
7/29/2019 Android2012 - Prva lekcija
9/18
10/23/2012
9
Intents
Intent namera da se neto uradi Npr: VIEW, CALL, PLAY ...
Sistem uporeuje Intent sa aktivnou koja najboljeodgovara zahtevu
Activities i IntentReceivers opisuju koje namere (Intents)mogu da opslue
Intents - nastavak
GMail
Contacts
Home
Blogger
Chat
Pick photo
Blogger
PicasaPhoto
Gallery
Klijentska komponenta zahteva odreenuakciju
Sistem bira najbolju komponentu za tu akciju
Nove komponente mogu da koristepostojee funkcionalnosti
Intents se izmeu ostalog koriste da bismo iz jedneaktivnosti pokrenuli drugu aktivnost unutar jedneaplikacije. Pored toga mogue je proslediti podatke drugojaktivnosti, koja na kraju moe da vrati neki drugi podatak.
-
7/29/2019 Android2012 - Prva lekcija
10/18
10/23/2012
10
Servisi
Komponente koje se izvravaju u pozadini Nemaju UI
Aplikacije poput muzikog plejera, programa za skidanjesadraja sa interneta, itd.
Android Emulator Dolazi sa instalacijom Android SDK
SDK & AVD Manager
Izvrava se isti image koji je na ureajima
Izbor verzije OS-a (1.6, 2.1...)
Izbor veliine ekrana, memorije
Internet, pozivi i SMS izmeu dva emulatora
Prima informacije od simulatora iz razvojnogokruenja (npr. GPS koordinate)
Ogranienje nema kamere postojigenerisana slika, ali u novijim emulatorimapostoji mogunost povezivanja sa USB webkamerom
-
7/29/2019 Android2012 - Prva lekcija
11/18
10/23/2012
11
Razvojno okruenje
Pogodno za brz razvoj aplikacija, organizaciju
programskog koda, debug, interakciju sa emulatorom ipravim ureajem
Struktura Android projekta:
code
images
files
UI layouts
constants
Autogeneratedresource list
Razvojno okruenje
Debug je mogu kada se koristi emulator, ali i praviureaj!
Ureaj treba postaviti u Debug mode Settings->Applications->Development->USB Debugging
Pri pokretanju aplikacije iz okruenja izabrati iz liste
prethodno prikljuen ureaj i tada e se aplikacijapokrenuti na njemu nakon ega je spremna zakorienje i prekidanje na breakpoint-ima
-
7/29/2019 Android2012 - Prva lekcija
12/18
10/23/2012
12
AndroidManifest.xml
AndroidManifest.xml - nastavak
Ova datoteka opisuje aplikaciju Moraju se definisati sve aktivnosti koje e se eventualno
pozvati u aplikaciji
Moraju se definisati sve dozvole koje e se ponuditikorisniku za odobravanje
-
7/29/2019 Android2012 - Prva lekcija
13/18
10/23/2012
13
Korisniki interfejs
Definie se pomou XML-a
Java programskog koda
Eclipse okruenje prua mogunost vizuelnogdefinisanja kor. interfejsa, a rezultat je XML koji sesmeta u folder res/layout
Postoji odreen broj vizuelnih komponenti koje supredefinisane, a mogue je kreirati i sopstvene, sloenekomponente koje su sastavljene od proizvoljnog brojapredefinisanih. Mogu se podeliti na
komponente koje odreuju raspored na ekranu
komponente koje slue za interakciju sa korisnikom
Korisniki interfejs - nastavak
Osnovna komponenta je View koja je predstavljenaJava klasom i iz koje se izvode sve komponente kojeine UI.
-
7/29/2019 Android2012 - Prva lekcija
14/18
10/23/2012
14
Korisniki interfejs - View
Korisniki interfejs raspored
Odreuje se izborom odgovarajueg Layout-a AbsoluteLayout
LinearLayout
RelativeLayout
FrameLayout
TableLayout... Svaki od navedenih ima svoje specifinosti u pogledu
rasporeivanja kontrola na ekranu
U XML-u mora da postoji bar jedan root layout, uokviru koga se proizvoljno mogu ugnjedavati drugilayout-i ili postavljati kontrole
-
7/29/2019 Android2012 - Prva lekcija
15/18
10/23/2012
15
Primer 1 UI
Primer 2 - UI
-
7/29/2019 Android2012 - Prva lekcija
16/18
10/23/2012
16
Primer 2 - UI
U ovom primeru su korieni LinearLayout-i sa
podeavanjima LayoutGravity i Gravity Zadatak 1:
Napraviti jednostavan ekran za prijavu na sistem: Tekst: Dobrodoli na ...prijavite se
Dve tekstualne oznake
Dva polja za unos
Dugme Prijava
Zadatak 2: Ekran za ocenjivanje slike
Opis tekstualna oznaka
ImageView sa nekom slikom
RatingBar
Dugme za potvrdu
Zadatak 3
Isprobati u Properties prozoru svojstva koja se mogupodeavati i videti efekat na ekranu
Visina i irina se mogu podeavati na nekoliko naina brojano
pixels px
scaled pixels sp za tekst
density independent pixels dp za grafiku
relativno fill_parent
wrap_content
Bie jo rei o dizajnu UI sada moemo da pokrenemoaplikaiju i da vidimo rezultat... ili moda ne jo?
-
7/29/2019 Android2012 - Prva lekcija
17/18
10/23/2012
17
Prikaz UI Aktivnost koja se pokree kao poetna mora da zna koji e
UI da prikae Kada se to deava?
u onCreate metodi koja e biti override
Na koji nain se ukazuje ba na odreeni XML?
Pogledati datoteku gen/ime_paketa/R.Java R.Java je generisana klasa koja uva reference na sve resurse
koji postoje u projektu.
Prikaz UI - nastavak Pozivajui metodu klase Activity setContentViewi prosleujui joj
identifikator naeg ekrana prikazujemo UI.
Svaki View ima svoj ID koji ga jedinstveno identifikuje iomoguava pristup u kodu.
Novi zadatak: U metodi OnCreate programski promeniti tekst nanekom dugmetu Kako pristupiti nekom dugmetu?
Ne postoji referenca na dugme sama po sebi, treba je dobiti odaktivnosti na sledei nain:
-
7/29/2019 Android2012 - Prva lekcija
18/18
10/23/2012
Reagovanje na dogaaje
Slino kao u Java desktop programiranju btn.SetOnClickListener(...neki Listener)
Zadatak
Napraviti jednostavan kalkulator koji ima displej, 2 poljaza tekst (operandi), 4 osnovne raunske operacije(dugmii) i dugme za izraunavanje i prikazivanjerezultata. Voditi rauna o
funkcionalnosti
izgledu UI