Professional Documents
Culture Documents
Android2012 - Prva Lekcija
Android2012 - Prva Lekcija
Android
Softverska platforma i operativni sistem za mobilne
ureaje
Baziran na Linux kernelu
Razvijen od strane Google-a a kasnije od Open
Handset Aliance (OHA)
OHA organizacija iji je glavni cilj razvoj otvorenih
standarda za mobilne ureaje
10/23/2012
http://metrics.admob.com/wp-content/uploads/2010/06/May-2010-AdMob-Mobile-Metrics-Highlights.pdf
10/23/2012
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
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 ...
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.app.myapp" >
<uses-permission id="android.permission.RECEIVE_SMS" />
</manifest>
O ovom XML-u bie rei kasnije...
10/23/2012
Android platforma
10/23/2012
Razvoj aplikacija
Zahtevi
Java
SDK
Razvojno okruenje (opciono) npr. Eclipse
Programski jezici
Java zvanino podrana
C/C++ - takoe mogue ali nije podrano
10/23/2012
10/23/2012
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 prethodnu
aktivnost)
10/23/2012
IntentReceivers
Komponente koje odgovaraju na broadcast Intents
Ovo je nain na koji se odgovara na poruku ili alarm koji
dolazi spolja (van aplikacije)
Aplikacija moe da ima svoj Intent i da ga objavi
10/23/2012
Intents
Intent namera da se neto uradi
Npr: VIEW, CALL, PLAY ...
Intents - nastavak
Home
Picasa
Photo
Gallery
Contacts
GMail
Chat
Blogger
Blogger
10/23/2012
Servisi
Komponente koje se izvravaju u pozadini
Nemaju UI
Aplikacije poput muzikog plejera, programa za skidanje
sadraja sa interneta, itd.
Android Emulator
10
10/23/2012
Razvojno okruenje
Pogodno za brz razvoj aplikacija, organizaciju
programskog koda, debug, interakciju sa emulatorom i
pravim ureajem
Struktura Android projekta:
code
Autogenerated
resource list
files
images
UI layouts
constants
Razvojno okruenje
Debug je mogu kada se koristi emulator, ali i pravi
ureaj!
Ureaj treba postaviti u Debug mode
Settings->Applications->Development->USB Debugging
11
10/23/2012
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/re
s/android"
package="com.my_domain.app.helloactivity">
<application android:label="@string/app_name">
<activity android:name=".HelloActivity">
<intent-filter>
<action
android:name="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/
>
</intent-filter>
</activity>
</application>
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 ponuditi
korisniku za odobravanje
12
10/23/2012
Korisniki interfejs
Definie se pomou
XML-a
Java programskog koda
13
10/23/2012
AbsoluteLayout
LinearLayout
RelativeLayout
FrameLayout
TableLayout...
14
10/23/2012
Primer 1 UI
Primer 2 - UI
15
10/23/2012
Primer 2 - UI
U ovom primeru su korieni LinearLayout-i sa
podeavanjima LayoutGravity i Gravity
Zadatak 1:
Napraviti jednostavan ekran za prijavu na sistem:
Zadatak 2:
Ekran za ocenjivanje slike
Zadatak 3
Isprobati u Properties prozoru svojstva koja se mogu
podeavati 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
16
10/23/2012
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 setContentView i prosleujui joj
identifikator naeg ekrana prikazujemo UI.
Svaki View ima svoj ID koji ga jedinstveno identifikuje i
omoguava pristup u kodu.
Novi zadatak: U metodi OnCreate programski promeniti tekst na
nekom dugmetu
Kako pristupiti nekom dugmetu?
Ne postoji referenca na dugme sama po sebi, treba je dobiti od
aktivnosti na sledei nain:
17
10/23/2012
Reagovanje na dogaaje
Slino kao u Java desktop programiranju
btn.SetOnClickListener(...neki Listener)
Zadatak
Napraviti jednostavan kalkulator koji ima displej, 2 polja
za tekst (operandi), 4 osnovne raunske operacije
(dugmii) i dugme za izraunavanje i prikazivanje
rezultata.
Voditi rauna o
funkcionalnosti
izgledu UI
18