2. Vecorite e Androidit
Android eshte multi-user sistem i bazuar ne Linux, ku cdo
aplikacion perfaqeson nje user.
Sistemi rregullon privilegjet perkatese per cdo UserID
(aplikacion).
Informacionet mbi UserID-te jane te disponueshme vetem
per sistemin, ndersa per aplikacionet vetem ato te vetat.
Cdo aplikacion aktivizon nje proces te vecante.
Proceset nderpriten kur aplikacionet nuk perdoren ose kur
sistemi ka nevoje per memorje shtese.
Cdo aplikacion ka qasje vetem ne komponentet e
nevojshme per tu ekzekutuar dhe jo me teper.
2
3. Vecorite e Androidit
Nje aplikacion mund te kerkoje qasje ne te dhenat si:
listen e kontakteve, SMS mesazhet, SD Card, kamere,
bluetooth,etj.
Keto qasje i jepen aplikacionit gjate kohes se
instalimit.
I tere kodi distribuohet ne nje pako (fajll) te vetme qe
ka ekstenzionin .apk
3
4. Siguria ne Android
Cdo aplikacion ndodhet ne “sandbox”-in e tij
Asnje aplikacion nuk mund:
- Te afektoje aplikacionet tjera
- Te lexoje te dhenat e aplikacioneve tjera
- Te kete qasje ne rrjet
- Te mbaje pajisjen ndezur
Aplikacionet mund te shkembejne te dhena vetem pas
dhenies se te drejtave perkatese
4
6. 4 komponentet kryesore ne Android
1. Activities
2. Services
3. Content Providers
4. Broadcast Receivers
6
7. 1. Activities
Nje Activity perfaqeson nje dritare (screen) te vetme
te shfaqur ne nje kohe te vetme.
Shembuj te nje Activity: Thirrja e nje numri
(dialpad), dergimi i nje emaili, google map, etj.
Cdo aplikacion ka nje Main Activity, qe shfaqet kur
aplikacioni hapet per here te pare.
Activities qe jane te mbyllura ruhen ne Back Stack
dhe paraqiten sipas metodes Last in, First Out
7
8. Gjendjet e nje Activity
Sa here qe shtypni butonin Back ose Home, Android
ruan gjendjen e Activity-s prezent.
Ne rast te mbylljes se nje Activity,
inicializohet onSaveInstanceState() dhe ruhet
gjendja ne Bundle (mapping per relacionet midis
Activities).
Nese prape thirret nje Activity e shkaterruar, sistemi
e rikrijon ate duke thirrur
onCreate() dhe onRestoreInstanceState().
Kjo ndodhe vetem ne rastet kur Bundle kthen vlere te
ndryshme prej NULL.
8
11. 2. Services
Services jane komponente aplikacionesh qe kryejne
operacione te caktuara ne background, pa ofruar
ndonje user interface.
Ne kohe reale mund te jene aktive me teper servise.
Psh. te surfojme ne internet, te degjojme muzike,
apo te kopjojme ndonje fajll. Kjo behet permes IPC
(InterProcess Communication).
Services ne Android dallojne nga Services ne Linux
11
12. Gjendjet e nje Service
Services kane lifecycle me te thjeshte se Activities
Nje Service ka dy forma: (1) STARTED ose (2)
BOUND
Nje STARTED service mund te kryeje nje operacion
te caktuar, por duke mos i kthyer ndonje result
thirresit (Caller). – startService()
Nje BOUND service lejon komponentet te
komunikojne me servisin, te dergojne requests apo te
marrin results. – bindService()
12
14. 3. Content Providers
Content Providers jane komponente qe u
ofrojne te dhena ne formate te caktuara
aktiviteteve tjera.
Menyra e funksionimit te nje provideri eshte si
ajo e dy tabelave relacionale ne DB.
Psh. CalendarProvider ruan ngjarjet e
perdoruesit ne nje vend (repository), ose
ContactProvider qe menaxhon te dhenat mbi
kontaktet e personave te regjistruar.
14
15. 3. Content Providers
Content Providers operojne sipas CRUD ne DB.
Operojne permes metodave:
insert(), update(), delete(), dhe query()
Cdo ContentProvider posedon nje URI qe perdoret si
identifikues.
Psh. URI i User Dictionary:
content://user_dictionary/words
Queryt per perdorim te dhenash jane identike me
ato te SQL.
Psh. SELECT _ID, word, frequency, locale FROM words
WHERE word = <userinput> ORDER BY word ASC;
15
16. Intents
Intents jane mesazhe qe perdoren per te
aktivizuar nje Activity, Service apo Broadcast
Receiver.
Nje Intent eshte thjeshte nje objekt qe permban
pershkrimin mbi operacionin qe duhet realizuar.
Android perkrahe dy lloje te intents: Explicit dhe
Implicit Intents.
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com"));
16
18. Intent Filters
Intent Filters vlejne vetem per Intentet implicit.
Intentet eskplicit nuk mund te filtrohen.
Filteret vendosen ne Android Manifest fajllin.
Psh.
<intent-filter . . . >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
18
19. 4. Broadcast Receivers
Broadcast Receivers jane built-in komponente te
Androidit qe punojne ne prapavije.
Broadcast Receivers na njoftojne per ngjarjet (events)
e ndryshme, si psh. kur pranojme nje SMS apo nje
thirrje, kur bateria eshte e zbrazur, kur pajisja
ristartohet, etj.
Poashtu, mund te krijojme Broadcast Receivers per
aplikacione, qe mund te njoftojne sistemin apo
aplikacionet tjera per ngjarje te caktuara.
Nje Broadcast Receiver mund te shkrepe (trigger)
ekzekutimin e nje kodi te caktuar, ose mund te inicoje
nje activity apo nje service.
19
20. Dy metodologjite e UI
PROCEDURAL dhe DECLARATIVE
Metoda Deklarative perdore XML elementet per te
dizajnuar UI, ngjajshem me HTML.
Perparesi e metodes deklarative eshte perdorimi I
WYSIWIG editorit, poashtu leximi i XML eshte me
i lehte.
Disavantazh i metodes deklarative eshte
manipulimi me user input.
20
21. Dy metodologjite e UI
Metoda procedurale apo programative perdore
Java per te dizajnuar. Elementet e UI mund te
krijohen ne runtime.
Perparesi e kesaj metode eshte mundesia e
menaxhimit te eventeve te ndryshme.
Strategjia me e mire eshte qe te perdoren te dy
metodat se bashku.
21
22. Literatura dhe Referencat
Mobile Computing, Raj Kamal
Learning Android (Building Applications for the
Android Market), Marko Gargenta
Mobile Computing Principles: Designing and
Developing Mobile Applications with UML and
XML, Roy T. Fielding
22