Upload
nguyennhu
View
219
Download
3
Embed Size (px)
Citation preview
SVEUČILIŠTE U DUBROVNIKU ODJEL ZA ELEKTROTEHNIKU I RAČUNARSTVO
STUDIJ POSLOVNO RAČUNARSTVO
DIPLOMSKI RAD
UPRAVLJANJE VIDEONADZOROM CESTOVNOG PROMETA MOBILNIM UREĐAJEM NA ANDROID PLATFORMI
Mentor: Diplomant: prof. dr. sc. Vlatko Lipovac Antonio Dujmović
Komentor: mr. sc. Krunoslav Žubrinić
Dubrovnik, rujan 2010.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
1
SADRŽAJ 1 UVOD ............................................................................................................................... 3 2 VIDEONADZOR POMOĆU MOBILNIH UREĐAJA ................................................................... 4
2.1 Mobiscope ............................................................................................................... 5 2.2 IP Cam Viewer ........................................................................................................ 6
3 PLATFORME ZA IZRADU APLIKACIJE ................................................................................. 8 3.1 Android ................................................................................................................... 8
3.1.1 Arhitektura Android sustava ............................................................................ 9 3.1.2 Razvoj Android aplikacija ............................................................................. 11
3.2 BlackBerry ............................................................................................................ 13 3.3 iPHONE ................................................................................................................ 13 3.4 Java Micro Edition ............................................................................................... 14 3.5 Symbian - Qt ......................................................................................................... 16 3.6 webOS ................................................................................................................... 16 3.7 Microsoft Windows Phone 7 ................................................................................. 17 3.8 Web Runtime Widgets ........................................................................................... 18 3.9 Usporedba platformi za razvoj mobilnih aplikacija .............................................. 18
4 LOGIČKI MODEL APLIKACIJE ZA VIDEONADZOR ............................................................. 20 4.1 Struktura aplikacije ............................................................................................... 20 4.2 Funkcionalnost aplikacije ..................................................................................... 21 4.3 Dekompozicija sustava ......................................................................................... 22 4.4 Model procesa ....................................................................................................... 22
4.4.1 Dijagram konteksta ........................................................................................ 23 4.4.2 Pregledni dijagram ......................................................................................... 23 4.4.3 Dijagrami razrade osnovnih procesa ............................................................. 24
4.5 Model mreže ......................................................................................................... 26 5 REALIZACIJA APLIKACIJE ZA VIDEONADZOR PROMETNICA ............................................. 28
5.1 Opis mrežne infrastrukture ................................................................................... 29 5.1.1 Bežične veze i usmjerene antene ................................................................... 29 5.1.2 Mikrotik RouterOS ......................................................................................... 31 5.1.3 POE – Power Over Ethernet ......................................................................... 31
5.2 Upotreba mrežnih tehnologija za prijenos slike .................................................... 32 5.3 Aplikacija .............................................................................................................. 33
5.3.1 Postavljanje okruženja za razvoj ................................................................... 34 5.3.2 Izgled aplikacije ............................................................................................. 35 5.3.3 Osvježavanje slike u određenom vremenskom intervalu .............................. 38 5.3.4 Skidanje slike s Interneta ............................................................................... 39 5.3.5 Izrada postavki za aplikaciju ......................................................................... 40
5.4 Iskustva u izradi aplikacije.................................................................................... 43 5.5 Korištenje aplikacije ............................................................................................. 44
5.5.1 Pregled kamere .............................................................................................. 44 5.5.2 Spremanje slike ............................................................................................. 46 5.5.3 Podešavanje postavki ..................................................................................... 46 5.5.4 Uočeni nedostatci i moguće nadogradnje ...................................................... 47
6 ZAKLJUČAK ................................................................................................................... 49 7 LITERATURA .................................................................................................................. 50 8 SAŽETAK ........................................................................................................................ 53
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
2
9 ABSTRACT ..................................................................................................................... 54 10 PRILOZI ...................................................................................................................... 55
10.1 Popis slika ............................................................................................................. 55
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
3
1 UVOD Napredak informacijsko-komunikacijskih tehnologije ima za posljedicu da mi sve
više koristimo napredna računala koja imaju napredne računalne i komunikacijske
sposobnosti. Unaprjeđivanjem postojeće mobilne mreže dobili smo mogućnost pristupa
brzom Internetu sa naših mobilnih uređaja, a time nam se otvorila mogućnost da neke
poslove koji su prije bili vezani isključivo za ured, monitor, tipkovnicu i miša prebacimo
na naš mobilni uređaj. Videonadzor je jedna od tih stvari koje su jako korisne, pogotovo
ako ih možemo koristiti van ureda, stana ili kuće. Upravljanje videonadzorom u hodu je
velika prednost jer možemo provjeriti što se događa na našim kamerama u svakome
trenutku i ovisno o tome donijeti odluku.
Kroz ovaj rad bavit ćemo se problematikom videonadzora prometnica na mobilnim
uređajima. To je danas dosta važno područje videonadzora, naročito u velikim gradovima u
kojima se javljaju velike prometne gužve. Kod pojave gužvi bitno je odmah reagirati kako
bi se posljedice prometne gužve što je moguće brže uklonila. Jedna od primjena uređaja za
mobilni video nadzor prometnica bila bi da jedinice prometne policije imaju mobilne
uređaje pomoću kojih imaju uvid u stanje prometa na raskršćima. Ovisno o stanju
zagušenja prometa mogli bi brzo reagirati i otići na ono mjesto na kojem je promet
zagušen.
U drugom poglavlju ovog rada opisati će se problematika mobilnog videonadzora i
usporediti će se nekoliko postojećih rješenja koja postoje na tržištu. Koje su mogućnosti
razvoja mobilnih aplikacija i koje se sve platforme mogu u razvoju koristiti, opisano je u
trećem poglavlju. Četvrto poglavlje se odnosi na logički model aplikacije i mreže. U istom
poglavlju opisani su slučajevi korištenja aplikacije. Fizički model aplikacije, način njezine
realizacije, arhitektura i dizajn mreže na koju se aplikacija oslanja opisani su u petom
poglavlju. U istom poglavlju opisano je korištenje aplikacije kroz primjere. U zaključku su
opisana vlastita iskustva tijekom razvoja i mogućnosti daljnje nadogradnje aplikacije.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
4
2 VIDEONADZOR POMOĆU MOBILNIH UREĐAJA Kada govorimo o videonadzoru najčešće zamišljamo stolno računalo s velikim
ekranom koji je podijeljen na primjerice 4 dijela i svaki dio pokazuje jednu kameru.
Problem kod takvog pristupa je statičnost što znači da moramo biti “vezani” za stolicu da
bi imali pristup našem sustavu. Pojavom sve bržih i jačih mobilnih uređaja otvara se
mogućnost mobilnog pristupa našem sustavu. Danas postoje mobilni uređaji koji stanu u
ruku, imaju dovoljno velik ekran za svakodnevni pristup sadržajima na mreži, a po svojim
osobinama snažniji su od stolnih računala otprije nekoliko godina [3]. Pored toga mogu
ostvariti pristup Internetu vrlo velikim brzinama što ih čini pogodnim za mobilni pristup
sustavu video nadzora.
Uspoređujući mobilno rješenje i rješenje pomoću stolnog računala vidimo da
postoje prednosti i mane svakog od njih. Stolno računalo kao prednost ima veliki ekran
(kao i mogućnost istovremenog korištenja više ekrana), tipkovnicu pune veličine, miša,
brži pristup Internetu i znatnu procesorsku snagu koja je važna pri pristupu i obradi video
materijala. Nedostaci tog pristupa su što je statičan i zauzima dosta prostora.
Nedostaci korištenja mobilnih uređaja proizlaze iz relativno ograničenih resursa,
veličine i rezolucije ekrana te nezgodnog načina interakcije. Interakcija s uređajem može
se raditi tipkanjem na maloj punoj tekstualnoj tipkovnici, numeričkoj tipkovnici koja
zahtjeva višestruko tipkanje ili na virtualnoj tipkovnici. Uređaji koji nemaju tipkovnicu
zahtijevaju izravnu interakciju izborom ikona na ekranu osjetljivom na dodir pomoću
stylusa ili prsta. I ovaj način donosi nove probleme. Stylusom se mogu birati vrlo mali
objekti na ekranu, ali on zahtjeva korištenje uređaja s dvije ruke. Korištenje prsta (obično
palca) je jednostavnije, može se izvesti pomoću samo jedne ruke, ali dovodi do problema
nepreciznog odabira (objekti moraju biti veliki) i prekrivanja objekata s kojima se
manipulira. Veza koja se ostvaruje na Internet pomoću ovih uređaja još je uvijek relativno
spora i dosta skupa, a za pristup i obradu video sadržaja uređaji su uglavnom relativno
slabi.
S druge strane velika prednost ovih uređaja je što ih gotovo svatko nosi u džepu, a
uređaji su mobilni – mogu se koristiti na ulici ili u automobilu jednako kao i kod kuće ili u
uredu. Ovakvi uređaji danas su dovoljno jaki da se pomoću njih mogu obavljati neke
funkcije koje nam u hodu dobro dođu. Jedna od tih funkcija zasigurno je i pregled stanja na
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
5
prometnicama. Ovakva aplikacija dobro dođe npr. pri odabiru najbržeg puta do posla ili
samo za uvid u stanje prometnica.
Danas postoji više rješenja koja se koriste za različite aspekte video nadzora
korištenjem mobilnih uređaja na Android platformi [9]. U nastavku ovog poglavlja opisati
ću dva primjera takvih rješenja.
Prvo rješenje je aplikacija Mobiscope [27] koja se bazira na korištenju web servisa i
nije prava mobilna aplikacija. Za komunikaciju s kamerama, njihovo podešavanja i sl.
zadužen je web servis. Klijentski dio pomoću web preglednika pristupa tom servisi.
Prednost tog pristupa je da se može koristiti na bilo kojem mobilnom uređaju koji može
pristupiti tom servisu (kao i na stolnom računalu), bez obzira na platformu i mobilni
operativni sustav.
Drugo rješenje je prava mobilna aplikacija koja je prilagođena Android platformi.
Prednost tog pristupa je što se mogu bolje iskoristiti osobine te platforme, dok je osnovni
nedostatak što je prilagođena isključivo toj mobilnoj platformi i nije primjenjiva na drugim
mobilnim platformama.
2.1 Mobiscope Aplikacija Mobiscope služi za video nadzor korištenjem mobilnog uređaja. Sama
aplikacija sastoji se od dva dijela:
1. Dio programa koji je instaliran na fiksno računalo;
2. Klijentski dio koji služi za pristup pomoću mobilnog uređaja.
Klijentski dio je u stvari web servis i da bi ga korisnik na svom mobilnom uređaju koristio,
prvo mora otvoriti korisnički račun. Za pristup servisu koji služi za video nadzor potrebno
je pomoću web preglednika otići na adresu: android.mobiscope.com
Nakon završetka registracije koja je neophodna za korištenje aplikacije potrebno je
namjestiti kamere na način da se podese njihovi parametri. Nakon što smo podesili sve
parametre možemo odabrati neko od naših računala. Nakon izbora računala dobiti će se
uvid u sve kamere koje su prethodno podešene.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
6
Prikaz korisničkog sučelja Mobiscope aplikacije na mobilnom uređaju prikazan je
na slici 1.
Slika 1 Pregled dostupnih kamera u Mobiscope aplikaciji
Mobiscope aplikacija nije prava android aplikacija jer se njezin klijentski dio
zasniva na web servisu. Svojim karakteristikama (veličina prikaza, korisničko sučelje i sl.)
je prilagođena korištenju na mobilnim uređajima. Pored toga što podržava Android
platformu, Mobiscope podržava i ostale mobilne operativne sustave, a jedini preduvjet koji
određeni sustav treba zadovoljiti da bi mogao koristiti ovu aplikaciju je da ima web
preglednik koji podržava Javascript [24] i kojim može pristupiti adresi web servisa.
2.2 IP Cam Viewer Aplikacija IP Cam Viewer [22] je za razliku od Mobiscope aplikacija prava
aplikacija koja se ne oslanja na web preglednik. Korištenjem te aplikacije moguće je dodati
mnogo kamera koje se mogu pregledavati pojedinačno ili sve odjednom u obliku niza
umanjenih sličici (engl. thumbnail). Ova aplikacija se može skinuti sa Android Market-a
[11] i plaća se. Bez naknade se može isprobati njezina probna verzija u kojoj su
postavljene probne kamere koje se ne mogu mijenjati.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
7
Na slici 2 prikazan je izgled korisničkog sučelja ove aplikacije. U gornjem dijelu
zaslona mobilnog uređaja prikazaje se slika trenutno izabrane kamere. U donjem dijelu
prikazan je niz sličica koje prikazuju sliku sa svih izabranih kamera. Izborom neke od
sličica, izabrana kamera postaje aktivna i njezin prikaz postaje vidljiv na gornjem dijelu
ekrana.
Slika 2 IP Cam Viewer pregled svih dostupnih kamera
Aplikacija omogućuje prijenos videa, zvuka i statičnih slika. Pored toga, aplikacija
omogućava i sigurnu komunikaciju s kamerama pomoću SSL (engl. Secure Sockets Layer
– SSL) protokola. Koju od opisanih mogućnosti aplikacija u konkretnom slučaju stvarno i
podržava ovisi isključivo o mogućnostima kamere.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
8
3 PLATFORME ZA IZRADU APLIKACIJE U ovom poglavlju će se opisati nekoliko platformi u kojima je moguće izraditi
mobilnu aplikaciju za videonadzor. Za konkretan razvoj izabrao sam platformu Android.
Za istu namjenu trenutno su mu najveća konkurencija: BlackBerry [14], iPHONE [20],
Java Micro Edition [23], Symbian Qt [30], webOS [36], Windows Phone 7 [38] i Web
Runtime Widgets [36]. U nastavku poglavlja opisati će se osnovne karakteristike tih
platforma.
Na slici 3 prikazan je tržišni udjel pametnih mobilnih uređaja (engl. smartphone) u
prvome kvartalu 2010. godine [7]. Iz podataka je vidljivo da trenutno na tržištu dominiraju
mobilni uređaji bazirani na Symbian operativnom sustavu.
44%
19%
15%
10%
7%4% 1%
SymbianRIMAppleAndroidWindows MobileLinuxOstali
Slika 3 Tržišni udio pametnih telefona u prvome kvartalu 2010.
Zbog ubrzanog rasta tržišta, jednostavnog pristupa mogućim klijentima i
dostupnosti besplatnih razvojnih alata stvara se potražnja za mobilnim aplikacijama. Zbog
toga se mnogi razvojnici (engl. developer) počinju orijentirati prema mobilnom tržištu.
3.1 Android Android je nova platforma koja se na tržištu prvi put pojavila 21. listopada 2008.
godine, te je u samo dvije godine stekla veliku popularnost. Za takav rast zaslužni su
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
9
Google i Open Handset Alliance (udruženje proizvođača koji nemaju svoj vlastiti
operativni sustav). Poznatiji proizvođači koji podržavaju Android su HTC, Samsung
Electronics, LG, Motorola i Sony Ericsson. Za 2010. godinu najavljeno je 50–ak novih
modela na Android platformi [9].
Na slici 4 prikazan je prvi uređaj koji je radio na Android operativnom sustavu.
Slika 4 HTC Dream - prvi Android mobilni telefon
Android se zasniva na Linux kernelu. Zadnja inačica Androida, 2.2 (Froyo/20.
svibnja 2010.), koristi kernel 2.6.32. Razlog zašto se pri razvoju Android platforme uzeo
Linux kernel je taj što su se mogle iskoristi postojeće dobro istestirane komponente koje
dokazano odlično obavljaju svoj posao. Na takav način početni razvoj sustava je ubrzan.
Pored toga Linux kernel razvija velik razvojni tim, a sam sustav se prije puštanja u
upotrebu detaljno testira.
3.1.1 Arhitektura Android sustava
Svaka Android aplikacija izvršava se u svom vlastitom procesu na vlastitoj instanci
Dalvik virtualnog stroja (engl. virtual machine) [17]. Dalvik je napisan tako da uređaj
može učinkovito izvodit više virtualnih mašina u isto vrijeme. Dalvik virtualni stroj
izvršava datoteke u Dalvik Executable (.dex) formatu koji je optimiziran za minimalno
zauzeće memorije. Zasnovan je na spremničkom procesoru (engl. register machine) i
izvodi klase prevedene pomoću Java prevoditelja. Prevedena java klase transformiraju se u
.dex format pomoću ugrađenog “dx” alata.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
10
Na slici 5 prikazana je arhitektura Android sustava.
Slika 5 Arhitektura Android operativnog sustava
Sustav koristi Linux kernel za osnovne funkcionalnosti kao što su rad s dretvama
(engl. threading), upravljanje memorijom na osnovnoj razini, sloj apstrakcije hardvera
(engl. hardware abstraction layer) i umrežavanje.
Biblioteke koje Android koristi su:
• Surface manager – prikaz prozora za pojedine aplikacije;
• OpenGL | ES – biblioteka koja služi za grafički2D i 3D prikaz;
• SGL (engl. scene graph library) – biblioteka na vrhu OpenGL biblioteke
koja služi za 2D i 3D prikaz;
• Media Framework – odgovoran za reproduciranje i rad sa
multimedijalnim datotekama;
• Free Type – fontovi;
• SSL (engl. Secure Socket Layer) – omogućuje sigurnosnu komunikaciju
preko Interneta;
• SQLite – implementira bazu podataka (engl. database engine);
• WebKit – jezgra web preglednika koji podržava Javascript i ostale
standarde na mobilnom uređaju;
• Libc (System C library) – implementacija standardne C-ove sistemske
biblioteke (libc) izvedene iz operativnog sustava BSD.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
11
Idući sloj u arhitekturi Android operativnog sustava je radno okruženje (engl.
Android runtime) kojeg čine virtualni stroj Dalvik i jezgrene biblioteke (engl. core
libraries). Jezgrene biblioteke pisane su u programskom jeziku Java i predstavljaju sve
osnovne klase poput klasa za manipulaciju kolekcijama, klasa za komunikaciju s okolinom
i sl. Androidove jezgrene biblioteke razlikuju se od standardnih biblioteka u Java Standard
Edition (J2SE) i Java 2 Micro Edition (J2ME).
Sloj aplikacijskog okvira (engl. Application Framwork) napisan je u Java
programskom jeziku i sadrži programske komponente koje koriste sve aplikacije uređaja.
Neki od važnijih elemenata ovog sloja su:
• Activitiy Manager – upravljanje životnim ciklusom aplikacije;
• Package Manager – drži informacije o aplikacijama koje su instalirane
na sustav;
• Window manager – upravljanje aplikacijskim prozorima;
• Telephony Manager – API koji se koristi pri izradi aplikacija za
upravljanje pozivima;
• Content Provider – odgovoran za zajedničko korištenje podataka od
strane više aplikacija;
• Resource Manager – služi za pohranu dijelova aplikacije koji nisu kod
(npr. slike);
• View System – sadrži bazu gotovih grafičkih prikaza i alata (engl.
widget);
• Location Manager – upravljanje lokacijski temeljenim uslugama;
• Notification Manager – upravljanje obavijestima i događanjima (npr.
dospijeće poruke, nadolazeći sastanak).
Aplikacijski sloj je zadnji sloj u arhitekturi sustava Android i čine ga korisničke
aplikacije. Ovaj sloj je jedini koji je vidljiv krajnjem korisniku. U tom sloju standardno su
uključene neke od osnovnih aplikacija poput web preglednika, liste kontakata, telefonskog
imenika, sustava za nabavku Android aplikacija (Android Market), itd.
3.1.2 Razvoj Android aplikacija
Za razvoj aplikacija na Android sustavu potrebno je imati Android SDK (engl.
Software Development Kit – SDK). Android SDK obuhvaća osnovnu kolekcija razvojnih
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
12
alata. Osobina tih alata je da ih je moguće koristiti na velikom broju različitih operativnih
sustava, točnije na svim operativnim sustavima koji imaju mogućnost rada s Java
aplikacijama. Pored razvojnih alata SDK sadrži emulator koji omogućuje testiranje
izvođenja Android aplikacija tijekom razvoja, emulator, sustav za otkrivanje grešaka u
programskom kodu (engl. Dalvik Debug Monitor Server – DDMS) i Android virtualni stroj
koji omogućuje izvođenje aplikacija [6].
Eclipse [19] je dobro razvojno okruženje koje se može iskoristiti za razvoj Android
aplikacija. Okruženje se može koristiti na većini platforma na kojima se mogu izvesti Java
aplikacije. Kako bi se olakšao razvoj aplikacija postoji dodatak za Eclipse razvojno
okruženje (engl. ADT Eclipse plugin) u koje je integriran sustav za otkrivanje grešaka te
prikaz gotovih aplikacija.
Glavna prednost Androida u odnosu na konkurentske operativne sustave je
otvorenost koja uz kvalitetan SDK i Javu programski jezik omogućuje vrlo brzo učenje i
razvoj aplikacija. Za procesorski i vremenski zahtjevne aplikacije postoji mogućnost
korištenja NDK-a (engl. Native Development Kit - NDK). Na taj način imamo mogućnost
zaobići Android virtualni stroj i izvršavati aplikacije izravno na platformi određenog
mobilnog uređaja. Na takav način se izvođenje aplikacija višestruko povećava, ali se gubi
na prenosivosti aplikacije između različitih uređaja.
Na slici 6 prikazan je izgled ekrana nekoliko mobilnih aplikacija rađenih na
platformi Android verzije 1.6.
Slika 6 Logotip i nekoliko primjera Android 1.6 aplikacija
Android aplikacije omogućuju komunikaciju korisnika pomoću stvarne tipkovnice,
virtualne tipkovnice ili direktnom manipulacijom ikonama na ekranu. Osnovni problem
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
13
Android platforme je taj što je još uvijek relativno nova. Nove verzije okruženja izlaze
velikom brzinom (od nekoliko verzija do nekoliko desetaka verzija godišnje) tako da je
razvojnim timovima ponekad teško pratiti taj užurbani razvoj.
3.2 BlackBerry Najpopularnija platforma mobilnih uređaja na prostorima Sjeverne Amerike je
BlackBerry i prema podacima s početka 2010. godine oko 43% vlasnika pametnih telefona
u SAD-u posjeduje neki od BlackBerry modela [7]. Proizvođač ovih uređaja je kanadska
tvrtka Research In Motion (RIM) [31] osnovana 1984. Godine. Ovi uređaji poznati su po
mogućnosti push email-a preko mobilnih mreža. To je takav način dostave kod kojeg se
poruke sa strane poslužitelja šalju klijentu, za razliku od klasičnog pull pristupa kod kojeg
klijent zahtjeva dostavu poruke. Noviji modeli posjeduju dodatne funkcionalnosti poput
GPS-a,ekrana osjetljivog na dodir (engl. touch-screen), akcelometra(engl. motion-sensor),
mogućnosti spajanja na bežičnu mrežu, a od aplikacijskih funkcionalnosti podršku za
OpenGL ES i Adobe Flash. Problem koji razvojni timovi koji se odluče na ovu platformu
trebaju uzeti u obzir je taj da za različite modele BlackBerry uređaja postoje velike razlike
u hardveru, operativnom sustavu, itd. za razliku od npr. iPHONE-a kod kojeg su
specifikacije svakog modela praktički iste i što se tiče hardvera i softwarea.
Kao i za Android, tako i za BlackBerry uređaje postoji servis preko kojeg se putem
mreže mogu kupiti nove aplikacije i nadogradnje za BlackBerry uređaje (BlackBerry App
World) [7].
Za razvoj aplikacija na BlackBerry sustavu potreban je SDK koji ima
funkcionalnosti osnovne biblioteke funkcija, mogućnost otkrivanja grešaka, testiranja i
izvođenja aplikacija tijekom razvoja u okruženju simulatora. Kao razvojno okruženje može
se izabrati BlackBerry Java dodatak za Eclipse ili samostalno razvojno okruženje
BlackBerry JDE. U oba slučaju pretpostavka za razvoj je Java Development Kit (JDK) 6,
update 10 ili noviji.
3.3 iPHONE iPHONE prve generacije prvi put se pojavio 2007. godine. Nakon toga 2008.
godine na tržište izlazi iPHONE 3G koji se razlikuje od svoga prethodnika u tome što
posjeduje čip za geolociranje i podržava HSDPA protokol za skidanje podataka s Interneta.
Zadnja generacija iPHONE 3GS pojavljuje se 2009. godine i donosi neka unapređenja
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
14
poput bržeg procesora, bolje grafike, veće memorije, mogućnosti korištenja vanjske flash
memorije do 32 GB, 3MP kamere te pristup Internetu maksimalnom brzinom od 7.2 Mbps
[20].
Pojavom modela 3GS broj korisnika iPHONE-a se povećao na 50 milijuna u prvom
kvartalu 2010. godine [7] Aplikacije se razvijaju u Objective C programskom jeziku koji
je standardni programski jezik za razvoj aplikacija na Macintosh platformama. Objective C
je nadogradnja standardnog C programskog jezika koja ima SmallTalk sintaksu.
Razvojna okolina Xcode sadrži alat za razvoj grafičkog sučelja Interface Builder i
alat za analizu pokrenute aplikacije Instruments. Analiza pokrenute aplikacije pokazuje
nam broj stvorenih objekata, curenje memorije, performanse, uzorkovanje funkcija i sl..
Integrirani gcc prevoditelj može stvoriti univerzalne binarne datoteke koje se mogu
pokrenuti na različitim platformama. U Xcode-u su integrirani i alati za kontrolu koda:
CVS, SVN i Perforce.
Za razvoj aplikacija na iPHONE platformi potrebno je Apple Macintosh računalo
bazirano na Intel procesoru. Kao operativni sustav potreban je Macintosh OS X Snow
Leopard. Ako takvo računalo i operativni sustav nisu dostupni, u određenim slučajevima
dobri rezultati mogu se postići korištenjem emulatora Macintosh računala na PC
arhitekturi. Emulator emulira arhitekturu Macintosh računala i omogućuje da se na njega
instalira Macintosh operacijski sustav. Pored toga razvojnik se mora registrirati čime
dobiva mogućnost besplatnog preuzimanja svih alata potrebnih za razvoj iPHONE
aplikacija. Paket Xcode je besplatan razvojni paket koji objedinjuje Xcode razvojno
okruženja, program za izradu korisničkog sučelja (engl. Interface Buideri) i druge alate
potrebne za razvoj. iPHONE SDK sadrži pristup svim funkcionalnostima operativnog
sustava.
Sam operativni sustav je besplatan, a učlanjivanjem u iPHONE razvojni program
(engl. iPHONE Developer Program) razvojni timovi dobivaju mogućnost distribucije
proizvoda putem web prodavaonice iPHONE aplikacija (iPHONE App Store) uz
odgovarajuće provizije i druge pogodnosti.
3.4 Java Micro Edition Java 2 Micro Edition najavljena je u lipnju 1999. godine od strane Sun
Microsystems-a. Svrha je joj je bila omogućiti izvođenje aplikacija pisanih u Javi na
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
15
uređajima s malim ekranima. Napretkom uređaja unaprjeđivana je i sama platforma tako je
s Javom verzije 5 izbačena oznaka “2” iz naziva i platforma se od 2005. godine zove Java
Micro Edition ili Java Mobile iako je kratica J2ME ostala popularna te se često koristi i
danas. Velika prednost Jave ME je podrška na velikom broju mobilnih uređaja, tako da
danas gotovo da nema uređaja koji ne podržava Javu. Iako mnogo uređaja podržava Javu,
ona nije na svim uređajima implementirana na isti način pa je česta pojava da različiti
modeli uređaja istoga proizvođača ne nude iste mogućnosti za Java aplikacije. Razvojnim
timovima je tada posebno teško jamčiti da će neka aplikacija raditi na svim platformama
jednako dobro. Stoga nije rijetko da se izdaju različite inačice aplikacija za različite
mobilne uređaje.
Programski jezik platforme je Java te je pri razvoju podržan objektno orijentirani
pristup, struktura klasa, upravljanje memorijom (engl. garbage collection), iznimkama
(engl. exceptions), višedretvenost (engl. multithreading), standardne Javine strukture
podataka i druga svojstva.
Aplikacije razvijene u Java ME nazivaju se i MIDleti (od engl. Mobile information
Device Profile – MIDP što označava profil koji definira mogućnosti koje neki uređaji
imaju). Povrh MIDP [25] profila, aplikacije mogu koristiti i druge API-je kao što su
Bluetooth API ili Mobile Media API. Dodatni API-ji pružaju razvojnom timu pristup
naprednim funkcijama uređaja, ali kako oni nisu dio službenog MIDP-a onda se njihove
osobine razlikuju od uređaja do uređaja. Zbog toga je često potrebno izrađivati različite
inačice aplikacija za različite uređaje.
Razvoj se obavlja na računalu s Windows, Macintosh ili Linux operativnim
sustavom, a za razvoj je potreban Java ME SDK koji pored standardnog pristupa
funkcijama specifičnima za korištenje platforme sadrži emulator, debugger, memory
profiler i druge za razvoj korisne alate.
Za sam razvoj može se koristiti NetBeans ili Eclipse razvojno okruženja. Za svako
od njih potrebno je preuzeti dodatak koji omogućuje razvoj mobilnih aplikacija.
Pored Java ME SDK paketa većina proizvođača mobilnih uređaja izradila je SDK
pakete koji su specifični za njihov pojedini uređaj. Tako da razvojnik koji želi razvijati
aplikaciju za konkretan uređaj, pored standardnog Java ME SDK-a mora preuzeti i SDK
određenog proizvođača mobilnog uređaja, a koji je prilagođen onom uređaju za koji se
aplikacija radi. U novije vrijeme proizvođači razvijaju relativno slične uređaje tako da se
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
16
korištenjem jednog SDK-a mogu uspješno razvijati aplikacije za više uređaja istog
proizvođača, ali u slučaju starijih uređaja obično je potrebno koristiti više različitih SDK
paketa.
3.5 Symbian - Qt Nokia 9210 Communicator je prvi mobilni uređaj sa Symbian [30] operativnim
sustavom izdan 2001. godine. Iste godine prodalo se još 500 000 uređaja na Symbian
platformi a slijedeće godine preko dva milijuna. Nedavno je Symbian postao sustav
otvorenog koda (engl. Open Source ) i najavljeno je pet novih inačica. U Qt [30] okruženje
za izradu aplikacija koje se mogu koristi na različitim platformama bez promjene koda
dodana je podrška za Symbian platformu. Izrada aplikacija za Symbian platformu moguća
je korištenjem C++ programskog jezika, a za grafičko sučelje koristi se platforma S60 [32].
Poznato je kako C++ nije baš developer-friendly, a i na različite mobilne uređaje
instalirane su različite verzije Symbian platforme Zbog toga je dosta truda potrebno da bi
se aplikacija prilagodila svim uređajima koji imaju ekrane različitih veličina, načina za
interakciju s korisnikom itd. Sada je od velike pomoći Qt koji je definiran kao framework
za izradu aplikacija i grafičkog sučelja za različite operativne sustave – od klasičnih
operativnih sustava stolnih računala (Microsoft Windows, Macintosh, Linux) do ugrađenih i
mobilnih sustava (embedded Linux, Windows CE/Mobile, Symbian, Maemo). Jedna od
glavnih prednosti Qt-a je u tome što se izvorni kod napiše jednom, a nakon toga ga je
moguće distribuirati više platformi. Qt aplikacije se pišu u C++ -u, proširenim meta-object
mehanizmom.
Za razvoj aplikacija na Symbian platformi koristeći Qt potreban je Nokia Qt SDK
koji sadrži sve alate i biblioteke potrebne za razvoj Qt aplikacija za Symbian i Maemo
uređaje.
3.6 webOS Operacijski sustav webOS dizajniran je za najnovije uređaje tvrtke Palm; Palm Pre
i Pixi. Prodaja je počela u lipnju 2009. godine no nije baš sjajno krenula. Palm uređaje
koristi tek oko pola milijuna korisnika.
Sam webOS je zasnovan na Linux operativnom sustavu no aplikacije se za njega ne
pišu u niti jednom od uobičajenih programskih jezika nego korištenjem web tehnologija.
Za iscrtavanje grafičkog sučelja koriste se HTML i CSS. Programska logika dorađuje se
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
17
korištenjem Javascript programskog jezika. Zbog toga se webOS aplikacije moraju
izvršavati u web pregledniku, a na webOS-u je to WebKit. Ovakav način razvoja
omogućuje izradu jednostavnih aplikacija kojima se pristupa putem web preglednika i
moguće ih je napisati jednom, a koristiti višestruko na različitim uređajima.
Za razvoj aplikacija na webOS platformi potrebno je osobno računalo s Microsoft
Windows, Macintosh ili Linux operacijskim sustavom te instaliranom posljednjom
verzijom Jave. Za virtualizaciju ciljnog mobilnog računala najbolje je koristiti VirtualBox
okruženje u kojem se pokreće emulator ciljnog mobilnog uređaja. Pored toga osnovna
funkcionalnost sustava koju mogu koristiti razvojnici nalazi se u Palm webOS SDK
paketu.
Kao razvojno okruženje može se koristiti Eclipse s Palm webOS SDK pluginom
koji omogućuje korištenje funkcionalnosti SDK-a i pristup emulatoru iz okruženja
razvojnog okruženja. Druga mogućnost je korištenje Aptana Studio prilagođenog Eclipse
razvojnog okruženja koje nudi mnoštvo naprednih funkcija za rad s web tehnologijama
koje se koriste u razvoju.
3.7 Microsoft Windows Phone 7 Microsoft Windows platforma za mobilne uređaje je već dugi niz godina na tržištu,
iako zadnjih godina nije oduševila razvojne timove niti korisnike. Pritisnut sa svih strana,
najprije od glavnog konkurenta Apple-a, Microsoft je odlučio presjeći sve veze sa starom
Windows Mobile platformom i okrenuti se posve novoj platformi Windows Phone 7. Još
uvijek (srpanj.2010.) nije moguće vidjeti niti kupiti niti jedan uređaj koji koristi tu
platformu, ali je moguće razvijati aplikacije i razvijene aplikacije testirati u emulatoru.
Microsoft je uzeo ideju korisničkog sučelja iz svoga Zune multimedijskog svirača što je
prema reakcijama razvojnika dobar potez jer se u svakom slučaju žele razlikovati od
konkurencije.
Za razvoj aplikacija na Windows Phone 7 platformi koristi se bilo koji jezik iz
.NET obitelji, a ako razvojno okruženje Visual Studio kao razvojno okruženje. Alati koji su
potrebni za razvoj aplikacija su Windows Phone Developer Tools sa SDK-om koji
uključuju Microsoft Visual Studio 2010 Express for Windows Phone, Windows Phone
Emulator, Silverlight for Windows Phone i XNA Game Studio 4.0. Za dizajniranje
korisničkog sučelja može se koristiti Expression Blend 4.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
18
3.8 Web Runtime Widgets Web Runtime Widgets – WRT [36][7] platforma je razvijena iz potrebe da se
pojednostavni razvoj mobilnih aplikacija za Symbian platformu. Način razvoja identičan je
razvoju za webOS platformu i zamišljen kako bi razvojnici mogli razvijati aplikacije
koristeći samo HTML, Javascript i CSS alate. Sustav za prikaz sadržaja koji obavlja prikaz
rezultata obrade zasnovan je na S60 web pregledniku, koji koristi popularnu WebKit
platformu. Napredne funkcije koje se pri razvoju žele koristiti ne nalaze se inicijalno
unutar WRT okruženja već je za njihovo korištenje potrebno koristiti određene dodatke. Ti
se dodaci zovu Platform Services. Napravljene aplikacije se mogu distribuirati putem
računala ili putem web baziranog servisa za dobavljanje aplikacija (Ovi Store). WRT
tehnologija ima mogućnost za zauzimanje velikog dijela tržišta za izradu vrlo jednostavnih
mobilnih aplikacija. Za razvoj složenijih aplikacija potrebno je koristiti okruženje koje
nudi veće mogućnosti.
3.9 Usporedba platformi za razvoj mobilnih aplikacija Platforme opisane u ovom poglavlju mogu se podijeliti na više načina. Jedan način
je podjela na platforme koje su vezane uz određenog proizvođača i na platforme koje su
otvorene i u čijem razvoju sudjeluju predstavnici raznih proizvođača. Otvorene platforme
po svojim rješenjima možda nisu idealne, ali se mogu primijeniti na većem broju uređaja i
za pretpostaviti je da će u njima biti podređenih kompromisa između različitih sudionika
razvoja. S druge strane, zatvorene platforme koje razvija isključivo jedan proizvođač mogu
krenuti s razvojem u pogrešnom smjeru jer je vanjski korektiv vrlo slab. Primjer je stara
Microsoftova Windows Mobile platforma koja je nekada bila vrlo popularna, ali razvoj
novih uređaja i tehnologija ju je pregazio. Što se tiče programskog jezika i razvojnog
okruženja, većina razvojnih okruženja može se koristiti na računalima različitih
proizvođača i operativnim sustavima. Izuzetak su Appleovi i Microsoftovi proizvodi koji su
vezani uz njihove platforme i operativne sustave. U najvećem broju opisanih platformi
razvoj se radi korištenjem standardnih dobro poznatih programskih jezika poput Jave i
C++-a. jednostavnije aplikacije koje su vezane uz poslužiteljska rješenja razvijaju se
korištenjem samo web tehnologija (HTML, CSS i Javascript). Izbor okruženja u kojem će
se razvoj obavljati ovisiti će i o tome s kojim programskim jezikom članovi razvojnog tima
dobro vladaju, kako bi vrijeme učenja nove tehnologije na početku razvoja bilo što je
moguće kraće.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
19
S obzirom na sve opisano te na broj uređaja na kojima se aplikacija može pokrenuti
izabrao sam razvoj na Android platformi. U izradi platforme pored Googlea sudjeluje
konzorcij proizvođača, sama platforma je besplatna i otvorenog koda. Zbog toga sve veći
broj proizvođača mobilnih uređaja radi uređaje za tu platformu pa se može očekivati da će
se broj korisnika još povećati.
Razvoj se radi u programskom jeziku Java s kojim sam dosta dobro upoznat, a za
razvoj je dostupan niz besplatnih alata i biblioteka programskog koda. Nezanemariv je i
broj razvojnika koji razvijaju aplikacije u tom okruženju na čiju pomoć se može računati
tijekom razvoja.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
20
4 LOGIČKI MODEL APLIKACIJE ZA VIDEONADZOR Logički model aplikacije služi nam da bi prikazali strukturu aplikacije i za
opisivanje njenih osnovnih funkcije – što bi aplikacija trebala raditi. Koristeći ovaj model
trebalo bi biti moguće da se razviti ovakvu aplikaciju neovisno o korištenom okruženju i
uređaju.
4.1 Struktura aplikacije Sustav koji omogućava izvođenje aplikacije sastoji se od klijentskog i
poslužiteljskog dijela. Na slici 7 prikazana je struktura mobilne aplikacije za videonadzor
cestovnog prometa.
Slika 7 Struktura mobilne aplikacije za videonadzor
FTP poslužitelj služi za spremanje slika koje kamere šalju u određenom intervalu.
Sustav radi na principu da kamera kreira datoteku pod nekim nazivom npr.
current.jpg i nakon toga ovisno o intervalu osvježavanja tu istu sliku mijenja novom
slikom. Na takav način dobivamo slijed slika koje možemo iskoristiti za potrebe
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
21
videonadzora. Korisnici ove ovoga sustava moraju imati instaliranu aplikaciju za pregled
slika na svome mobilnom uređaju neovisno o platformi koja je instalirana na uređaj.
4.2 Funkcionalnost aplikacije Funkcionalnost sustava sa stajališta samog korisnika je opisana UML dijagramom
slučajeva korištenja (engl. use case diagram). Glavni dijelovi dijagrama su sudionici (engl.
Actors) i slučajevi korištenja (engl. Use Cases). Osoba koja vrši interakciju s aplikacijom
je sudionik ovog sustava. Slučaj korištenja opisuje niz akcija koje sustav izvršava, ali ne
specificira na koji način ih izvršava [1]. Dijagram slučajeva korištenja sustava za
videonadzor prikazan je na slici 8.
Slika 8 Dijagram slučajeva korištenja
Svi korisnici aplikacije imaju na raspolaganju sljedeće mogućnosti: pregledavanje
trenutnih slika s izabrane kamere, lokalna pohrana slike na uređaj, izbor izvora odnosno
kamere čijim postavkama se želi pristupiti. Da bi mogao pregledavati slike, korisnik mora
izabrati neku od dostupnih kamera. Nakon što izabere kameru, korisnik može pregledavati
slike s te kamere. Slike koje su mu zanimljive ili važne za naknadni uvid ili obradu
korisnik može pohraniti za buduću upotrebu. Podešavanje postavki kamera obuhvaća
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
22
uređivanje mrežnih adresa izvora slika s kamera te podešavanje drugih postavki koje ovise
o konkretnom modelu kamere. Izbor mrežne adrese preko koje se pristupa slikama je
osnovno svojstvo koje se odnosi na svaku mrežnu kameru i putem te adrese se pristupa
konkretnoj mrežnoj lokaciji. Ostale postavke ovise o konkretnom modelu kamere. Pošto
različite kamere imaju različite dodatne mogućnosti, na ovakav način korisniku se
omogućava podešavanje onih postavki koje odgovarajuća kamera podržava i korisnici nisu
vezani uz točno određeni tip kamere.
4.3 Dekompozicija sustava Aplikaciju možemo podijeliti na više podsustava, a to su: pregledavanje kamera,
spremanje trenutne slike i podešavanje postavki kamera.
Slika 9 Dekompozicija aplikacije
Na slici 9 je prikazan dijagram dekompozicije aplikacije. U nastavku ovog
poglavlja svaki podsustav aplikacije je dodatno razrađen i prikazane su funkcije od kojih se
sastoji. Da bi se zadovoljila potpuna funkcionalnost sustava, u njemu moraju biti podržane
sve opisane funkcije.
4.4 Model procesa Model procesa prikazuje komunikaciju vanjskih entiteta sa sustavom. Model
procesa možemo podijeliti na tri razine: dijagram konteksta, pregledni dijagram i dijagram
razrade osnovnih procesa. Dijagram konteksta pokazuje sustav u cjelini i to je dijagram
najviše razine. Pregledni dijagrami razrađuju sustav na osnovne procese, a dijagrami
razrade osnovnih procesa opisuju detalje najvažnijih procesa sustava. Na dijagramima će
se prikazati detaljno razrađeni procesi pohrane slike i promjene postavki kamere.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
23
U komunikaciji s procesima aplikacije sudjeluje jedan vanjski entitet, a to je
korisnik. Korisnik je osoba koja je pristupila aplikaciji, čime joj je omogućen pregled
dostupnih kamera, spremanje trenutno prikazane slike na uređaj i ažuriranje postavki.
4.4.1 Dijagram konteksta
Na slici 10 prikazan je dijagram konteksta koji prikazuje najvišu razinu modela
procesa.
Slika 10 Dijagram konteksta
Vanjski entitet koji sudjeluje u procesima je korisnik. Prikazani proces P0
predstavlja sustav u cjelini. Između korisnika i procesa prikazani su glavni tokovi
informacija u sustavu.
4.4.2 Pregledni dijagram
Pregledni dijagram prikazuje prvu razinu modela procesa. Glavne aktivnosti
sustava obavljaju se u procesima P1 – P4. Procesi koji se koriste u ovom dijagramu su:
pregled slike s kamere, promjena kamere, ažuriranje postavki i spremanje slike. Svaki od
navedenih procesa oslikava po jedan slučaj korištenja opisan dijagramom slučajeva
korištenja. Pored procesa prikazano je i spremište podataka D0. Spremište podataka
predstavlja entitet koji će izabrane podatke (sliku) sačuvati u memoriji mobilnog uređaja.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
24
Pregledni dijagram prikazan je na slici 11.
Slika 11 Pregledni dijagram
4.4.3 Dijagrami razrade osnovnih procesa
Proces P2 promjena kamere može se prikazati pomoću četiri potprocesa. Na
početku korisnik odabire jednu od ponuđenih kamera (P 2.1). Sustav nakon toga koristeći
podatke spremljene u postavkama aplikacije provjerava da li je kamera dostupna (P 2.2).
Ako je kamera dostupna prikazuje se slika s odabrane kamere (P 2.4), a u slučaju da
kamera nije dostupna prikazuje se obavijest da je kamera nedostupna (P 2.3), a korisnik se
vraća na odabir kamere. Kamere su prikazane kao interni resursi koji se nalaze unutar
procesa. Pri modeliranju se mogao izabrati i drugi pristup da se kamera navede kao vanjski
entitet, i u tom slučaju procesi pregleda slike s kamere i promjene kamere bi komunicirali s
tim entitetom.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
25
Na slici 12 je prikazana razrada procesa promjene kamere P2
Slika 12 Dijagram procesa promjena kamere
Na slici 13 prikazana je razrada procesa spremanje slike P4
Slika 13 Dijagram procesa spremanje slike
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
26
Proces P4 spremanje slike može se prikazati kroz tri potprocesa. Na početku
korisnik pristupa trenutno prikazanoj slici koju želi pohraniti u spremište podataka (P 4.1).
Nakon što je izabrao sliku za pohranu sustav provjerava postoji li u spremištu dovoljno
prostora za spremanje slike (P 4.2). Ako postoji, potproces za spremanje slike (P 4.3)
sprema sliku u spremište podataka D0 što je u našem slučaju memorija mobilnog uređaja.
Ako ne postoji dovoljno memorije, sustav obavještava korisnika o tome i vraća ga na
pregled trenutne slike.
4.5 Model mreže Na slici 14 prikazan je model mreže za videonadzor korištenjem mobilnog uređaja.
Slika 14 Model mreže
U sustav je moguće spojiti više kamera, a broj kamera ovisi samo o dostupnim
resursima naše mreže. Za dodavanje većeg broja nadzornih kamera definirani su posebni
modeli, a kod korištenja jako velikog broja video kamera (nekoliko tisuća) obično je
potreban posebni međusloj (engl. middleware) zadužen za upravljanje kamerama [1][5].
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
27
U ovom jednostavnom modelu koji izravno podržava manji broj kamera, kamere su
izravno spojene na preklopnik (engl. switch) koji preko usmjerivača (engl. router) šalje
podatke, u našem slučaju slike, na Internet. Kako bi se naša lokalna mreža u koju su
spojene kamere mogla spojiti na Internet potrebno je posredovanje pružatelja internetskih
usluga (engl. Internet Service Provider - ISP). Nakon što se uspostavi veza na Internet,
podaci koje kamere odašilju pohranjuju se na poslužitelj za smještaj podataka (engl. File
Transfer Protocol - FTP). S tog poslužitelja podaci su dostupni mobilnim uređajima.
U sustav se može ugraditi i sigurnosna provjera identiteta korisnika koji pristupaju
kamerama. Takav način provjere bi osiguravao da samo ovlašteni korisnici mogu pristupiti
odgovrajućoj kameri.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
28
5 REALIZACIJA APLIKACIJE ZA VIDEONADZOR
PROMETNICA Prema modelu iz prethodnog poglavlja izrađena je Android aplikacija za pristup i
pregled stanja na prometnicama. Prilikom izrade aplikacije korišteno je Eclipse razvojno
okruženje, Google Android SDK koji se integrira u Eclipse pomoću ADT razvojnih alata.
ADT dodatak se integrira u Eclipse i daje mogućnosti za brži razvoj aplikacija za Android.
Instalacijom ovog dodatka dobiva se unaprijeđeni XML editor koji omogućuje uređivanje
postavki za podešavanje Android aplikacije, automatsko završavanje počete naredbe i
prepoznavanje ključnih riječi tijekom pisanja, pa nam je na taj način ubrzano pisanje koda
[8].
Za testiranje aplikacije potrebno je imati instalirano AVD (Android Virtual Device
Manager). Pomoću AVD Manager-a je moguće kreirati više virtualnih aplikacije koje su
zasebne i neovisne jedna o drugoj. Svaki virtualni uređaj može imati instaliranu različitu
verziju Android platforme ovisno o potrebama razvojnika. Ova aplikacija je rađena i
istestirana na Android 2.1. platformi [13].
Kako je Android relativno mlad programski jezik i još se razvija, tako u razvojnim
alatima još nisu napravljene neke stvari koje standardno postoje u starijim razvojnim
alatima. Npr. Microsoft Visual Studio ima dizajnerski način rada koji omogućuje vizualni
WYSIWYG (engl. What You See Is What You Get) dizajn aplikacije kao i uvid u njezin
izgled neposredno tijekom razvoja. Dizajn Android aplikacije radi se kroz xml datoteku što
je nespretno kada se mora raditi bez pomoći posebnog uređivača. Zahvaljujući online
aplikaciji DroidDraw [18] taj dio je olakšan jer je pomoću DroidDraw-a moguće
dizajnirati aplikaciju koristeći povlačenje gotovih komponenti (engl. drag and drop).
Nakon završenog rada aplikacija generira xml datoteku s izgledom sučelja koju ubacujemo
u projekt.
Što se tiče mrežnog dijela aplikacije opisati ćemo postojeću mrežnu infrastrukturu
videonadzora prometnih raskršća u Dubrovniku koju sam imao na raspolaganju tijekom
izrade ovog diplomskog rada.
Pri realizaciji mrežne infrastrukture korišteni su Mikrotik softwareski usmjerivači
[26] koje ću detaljnije objasniti kasnije u tekstu, usmjerene bežične (engl. wireless) antene
i Power Over Ethernet uređaji [29].
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
29
5.1 Opis mrežne infrastrukture Mrežna infrastruktura koja je jako bitan dio ovog rada realizirana je koristeći
nekoliko novih tehnologija (npr. Mikrotik i POE). Sve veze između pojedinih usmjerivača
su realizirane bežičnom vezom uz pomoć usmjerenih antena. Da bi se smanjio broj kabela
koristi se POE (Power Over Ethernet) [29] tehnologija. To je tehnologija koja daje
napajanje i podatke nekom uređaju kroz jedan UTP [34] mrežni kabel.
Postoji nekoliko vrsta bežičnih veza koje se mogu koristiti u ovakvoj mreži [4]:
• P2P (engl. Peer-to-peer) – ovakav tip mreže omogućava bežičnim
uređajima da međusobno komuniciraju izravno jedan s drugim. Bežični
uređaji koji su jedan drugome u dometu mogu se prepoznati i međusobno
komunicirati bez bilo kakve pristupne točke. Ovakav tip mreže se najčešće
koristi za spajanje dvaju računala kako bi kreirali lokalnu mrežu između
njih;
• Bridge – ovakav tip mreže se koristi da bi se spojile različite mreže koje su
najčešće različitih tipova. Bežični bridge omogućuje spajanje žičanih
uređaja na bežičnu mrežu gdje bežični bridge ima ulogu pristupne točke za
bežičnu lokalnu mrežu;
• WDS – (engl. Wireless Distribution System) – omogućava proširivanje
bežične mreže s više bežičnih pristupnih točaka. Prednost ovog načina
povezivanja je što se MAC adrese korisnika prenose između pristupnih
točaka.
Mreža videonadzora prometnica u Dubrovniku funkcionira u bridge [16] načinu
rada i koristeći VLAN-ove[35] [35]. Bridge način rada je takav način kod kojeg uređaj ne
zna gdje je u mreži locirana određena adresa. Kako bi ju saznao uređaj ispituje zaglavlje
dolaznih paketa i na takav način pronalazi željenu lokaciju.
Uređaji za međusobnu komunikaciju u bežičnoj mreži koriste 802.11b/g standard
za komunikaciju i frekvenciju od 2.4 Ghz.
5.1.1 Bežične veze i usmjerene antene
Za spajanje pristupnih točaka koriste se antene. Antene mogu biti usmjerene ili
direkcijske antene i neusmjerene ili omnidirekcijske antene. Na slici 15 prikazane su obje
vrste antena.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
30
Slika 15 Usmjerena i neusmjerena antena
Razlika između ovih antena je ta što je usmjerena antena više stacionarna i nju
najčešće koriste klijenti u nekoj mreži, ili sustavi za prosljeđivanje. Neusmjerena antena je
najčešće namijenjena pristupnim točkama ili mobilnim klijentima [4].
Na slici 16 prikazani su podaci provedenog mjerenja ostvarene brzine prijenosa
podataka u mreži tijekom ljeta 2010. godine.
Slika 16 Prikaz izmjerene brzine prijenosa podataka između dvije pristupne točke
Provjeravana je brzina prijenosa između dvije pristupne točke povezane
usmjerenim antenama. Na pristupnim točkama nalaze se Mikrotik usmjerivači odnosno
računala s Mikrotik usmjerivačkim operativnim sustavom. Brzina prijenosa uglavnom je u
granicama između 2-3 Mbit/s što je dovoljno za korištenje pri prijenosu manje količine
podataka, odnosno pri spajanju manjeg broja korisnika.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
31
5.1.2 Mikrotik RouterOS
Mikrotik RouterOS je operativni sustav baziran na Linux-u koji nam omogućuje da
bilo koje osobno računalo pretvorimo u softwareski usmjerivač koji ima osnovne stvari
potrebe za rad svakog usmjerivača. Osnovne funkcionalnosti takvog sustava obuhvaćaju
vatrozid (engl. firewall), mogućnost izgradnje virtualne privatne mreže (engl. Virtal
Private Network - VPN) i stvaranje bežične pristupne točke.
Slika 17 Mikrotik routerboard
Na slici 17 prikazan je mikrotik routerboard, to je uređaj koji kombinira sve
potrebno za rad usmjerivača i uključujući RouterOS koji je najvažniji dio ovog uređaja.
Naravno postoji i korisničko sučelje Winbox koje je namijenjeno za administraciju
RouterOS-a. Ovakvi uređaji su jako popularni jer su mali, lako se konfiguriraju, pouzdani
su, a i cijena im nije visoka. U mreži računala koja služe kao pristupne točke za potrebe
povezivanja koriste ovaj uređaj.
5.1.3 POE – Power Over Ethernet
Ovaj uređaj služi da bi kroz UTP kabel slali podatke i napajanje za neki drugi
uređaj koji to podržava. IEE 802.3af-2003 je POE standard koji pruža do 15,4 W struje za
svaki uređaj. Na slici18 prikazan je POE adapter koji omogućuje protok podataka i
napajanja kroz UTP kabel što je dosta važno pri korištenju bežičnih uređaja koji se koriste
na lokacijama na kojima nije jednostavno dovesti zasebno strujno napajanje.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
32
Slika 18 Izgled POE adaptera
5.2 Upotreba mrežnih tehnologija za prijenos slike Kombiniranjem IP kamere i tehnologija opisanih u poglavlju 4.1 dobivamo sustav
za prijenos slike s kamere na mrežu. Na slici 19 prikazan je način na koji se kamera spaja i
podešava za potrebe prijenosa slika na mrežu.
Slika 19 Postupak spajanja kamere na mrežu
Spajanje kamere na mrežu i njezino podešavanje može obavlja se u tri koraka:
1. Spajanjem IP kamere pomoću POE adaptera dajemo kameri pristup mreži i
napajanje. Kameru je prvo potrebno iskonfigurirati. Svaka kamera ima
inicijalno zadanu IP adresu koji koristimo za pristup sučelju. Za pristup sučelju
koristimo neki od web preglednika upisujući u adresnu traku adresu kamere, a
zatim unoseći svoje korisničke podatke. Nakon toga podešavaju se postavke
koje ovise o konkretnom modelu kamere.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
33
2. UTP kabel iz kamere spajamo na Mikrotik RouterBoard koji ima na sebi
instaliran Mikrotik RouterOS. Na RouterBoard-u je već postavljena i
instalirana bežična mrežna kartica koja na sebe ima spojenu usmjerenu antenu.
Ove dvije mrežne kartice rade u bridge načinu rada, tako da mogu međusobno
komunicirati.
3. Kada je kamera spojena na mrežu preko bežične kartice, možemo joj pristupiti s
bilo kojeg računala u mreži i podesiti ju da pohranjuje slike na neki od mrežnih
poslužitelja. Podešavanje se radi tako da se u postavke kamere unesu podaci
potrebni za pristup poslužitelju. U praksi se koristi pohrana podataka na FTP
poslužitelj, a kao podaci za pristup koriste se korisničko ime i lozinka. Nakon
podešavanja postavki kamera automatski radi i pohranjuje slike na konfigurirani
poslužitelj. Taj postupak je automatiziran i upravljan operativnim sustavom
same kamere
Nakon što je kamera podešena da snima i pohranjuje slike na FTP poslužitelj,
potrebna je aplikacija koja će pristupati poslužitelju i pohranjene slike prikazivati u nekom
intervalu.
5.3 Aplikacija Problem koji se rješava u ovom radu je pristup kameri s mobilnog uređaja, tako da
je razvijena aplikacija namijenjena korištenju na mobilnim uređajima. Pored toga
kamerama se može pristupiti i klasičnim aplikacijama na stolnim računalima.
Razvoj aplikacija za mobilne uređaje donekle se razlikuje od razvoja aplikacija za
stolna računala. Pri razvoju je potrebno više paziti na potrošnju strojnih resursa jer su oni
kod mobilnih uređaja jako mali i ograničeni. Pored toga potrebno je paziti na veličinu i
rezoluciju ekrana za koji razvijamo aplikaciju jer su to sve uređaji koji imaju jako male
ekrane za prikaz. Mali ekrani imaju relativno veliku rezoluciju, pa ako se pri razvoju
korisničkog sučelja razmišlja na isti način kao pri razvoju aplikacija za stolna računala,
rezultat će biti aplikacije s komponentama koje su premale za ljudsku upotrebu. Zbog toga
je potrebno dobro razmisliti i osmisliti sučelje i način funkcioniranja aplikacije prije samog
početka razvoja.
Za razvoj mobilne aplikacije odabrao sam platformu Android. Razlog zašto sam
odabrao platformu Android je to što je besplatna i otvorenog koda, aplikacije se pišu u Javi
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
34
korištenjem Android SDK-a tako da sam vrlo brzo savladao sintaksu pri pisanju programa.
Pored toga za razvoj je dostupan niz besplatnih alata i biblioteka programskog koda, a
postoji velika baza razvojnih timova koji razvijaju aplikacije u tom okruženju i na čiju
pomoć se može računati tijekom razvoja.
5.3.1 Postavljanje okruženja za razvoj
Za razvoj aplikacija na Androidu koristio sam Eclipse razvojno okruženje i ADT
dodatak. ADT u sebi sadrži potrebne biblioteke za razvoj, debbuger za dijagnosticiranje
grešaka i emulator mobilnih uređaja na kojem se može testirati aplikacija.
Slika 20 Eclipse razvojno sučelje
Slika 20 prikazuje Eclipse razvojno sučelje na kojem možemo primjetiti i Android
SDK i AVD Manager koji se može pokrenuti iz padajućeg izbornika Window. Pošto se
Android aplikacije razvijaju u Javi potrebno je imati instaliran Java Development Kit.
Kako bi se s aplikacijom moglo izaći na Internet potrebno je dati te ovlasti u
AndroidManifest.xml datoteci. AndroidManifest.xml je datoteka koju svaka Android
aplikacija mora imat u svom korijenskom direktoriju (engl. root directory) i zadužena je za
sljedeće stvari:
• Daje naziv paketu same aplikacije. Naziv paketa služi kao jedinstveni identifikator
aplikacije;
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
35
• Opisuje komponente aplikacije – aktivnosti, servise i ostale stvari od kojih je sama
aplikacija sastavljena. Daje imena klasama koje implementiraju svaku od
komponenti i objavljuje (engl. publishes) njihove sposobnosti. Ove deklaracije
daju Android sustavu informacije koje se komponente koriste i pod kojim
uvjetime se mogu pokrenuti;
• Određuje koji će procesi biti zaduženi za koje komponente aplikacije;
• Deklarira koje dozvole (engl. permissions) aplikacije mora imati da bi pristupila
određenim dijelovima API-ja i imala interakciju sa drugim aplikacijama;
• Određuje koje dozvole moraju imati druge aplikacije da bi pristupile toj aplikaciji;
• Deklarira minimalni nivo Android API-ja koji aplikacija zahtjeva;
• Popisuje sve biblioteke koje su potrebne za rad aplikacije;
• Drži popis svih Instrumentation klasa koje nam daju informacije o tijeku izvođenja
aplikacija. Ove klase koriste se samo tijekom razvoja i testiranja aplikacije, a
nakon što se aplikacija objavi, one se brišu iz datoteke[10].
Primjer AndroidManifest.xml datoteke koju koristi naša aplikacija prikazan je
na slici 21.
01 <?xml version="1.0" encoding="utf-8"?> 02 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 03 package="droid.test.vn" 04 android:versionCode="1" 05 android:versionName="1.0"> 06 <application android:icon="@drawable/icon" android:label="@string/app_name"> 07 <activity android:name=".droid.test" android:label="@string/app_name"> 08 <intent-filter> 09 <action android:name="android.intent.action.MAIN" /> 10 <category android:name="android.intent.category.LAUNCHER" /> 11 </intent-filter> 12 </activity> 13 <activity android:label="Preferences" android:name=".droid.Preferences" /> 14 </application> 15 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 16 </manifest>
Slika 21 Primjer AndroidManifest.xml datoteke
Linija koda koja nam dopušta da naša aplikacija ima pristup Internetu prikazana
je u liniji 15 i ona je nužna ako aplikacija treba imati mogućnost komunikacije s
Internetom.
5.3.2 Izgled aplikacije
Nakon što su podešene sve postavke možemo se početi dizajnirati izgled
aplikacije. Sve postavke i podešavanja aplikacije radi se u .xml datotekama, pa tako i
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
36
izgled. Datoteka main.xml koja se nalazi u layout direktoriju Android projekta
zadužena je za izgled. Prilikom izrade sučelja aplikacije mogu se koristiti predefinirani
dijelove koji se mogu koristit prilikom izrade. Prilikom izrade korišteni su slijedeći
dijelovi: Relative layout, ImageView, ImageButton, Button i TextView.
• Relative layout je jedan od načina kojim se kaže Androidu kako će pozicionirati
elemente na ekranu u ovisnosti jedan od drugog. Ako se postavi relativni izgled,
onda se svi elementi stavljaju i pozicioniraju u ovisnosti jedan o drugome. Na
k+takav način Android upravitelj izgleda korisničkog sučelja se brine za
veličinu i smještaj komponenti, ovisno o njihovom sadržaju;
• ImageView je element koji služi za prezentaciju slike koja se dohvaća s
kamere,odnos mrežnog poslužitelja;
• komponenta ImageButton prikazuje gumb na koji se može staviti neka slika
umjesto inicijalnog teksta;
• Button je običan gumb koji za razliku od ImageButton-a ne može prikazati sliku
umjesto teksta;
• komponenta TetView služi za prikaz teksta na ekranu.
Rad sa xml datotekom za uređivanje izgleda aplikacije je malo nezgodan, pa se
često pribjegava nekoj alternativi. Jedan od dostupnih alata je DroidDraw. To je web
aplikacija koja nam omogućava kreiranje ekrana u design načinu rada. Svi elementi se
dodaju drag-n-drop načinom, dovlačenjem elementa iz alatne trake s desne strane
aplikacije i njihovim otpuštanjem ih na lijevoj strani na kojoj se nalazi emulator izgleda
ekrana. Na takav način odmah je vidljiv rezultat akcije što znatno olakšava i ubrzava rad.
Nakon što se završi s dizajnom ekrana potrebno je kliknuti na tipku generate i nakon toga
će DroidDraw izgenerirati xml datoteku s izgledom ekrana. Dobivenu datoteku treba ručno
kopirati na odgovarajuće mjesto unutar stabla programskog koda Android projekta.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
37
Slika 22 DroidDraw korisničko sučelje
Slika 22 pokazuje korisničko sučelje DroidDraw-a koje je korišteno pri izradi
korisničkog sučelja aplikacije za videonadzor.
Korisničko sučelje izrađene aplikacije koje je nastalo kao rezultat prethodno
opisanog postupka prikazano je na slici 23.
Slika 23 Izgleda ekrana izrađen pomoću DroidDraw aplikacije
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
38
5.3.3 Osvježavanje slike u određenom vremenskom intervalu
Najvažnija funkcija aplikacije za videonadzor je funkcija osvježavanja slike s
kamere u nekom određenom intervalu. U slučaju ove aplikacije izabran je interval
osvježavanja svake sekunde čime se dobiva dovoljno gladak slijed slika. U Android
aplikaciji nije moguće iz glavne dretve (engl. thread) u isto vrijeme osvježavati sliku i
vrtiti brojač koji svaku sekundu poziva funkciju za osvježavanje slike. Takav problem
riješen je pokretanjem druge dretve koja je neovisna o prvoj. Na takav način jedna dretva
vrti brojač, a druga svaku sekundu pozva funkciju za osvježavanje slike.
Na slici 24 prikazan je programski kod koji stvara dvije dretve s ciljem
osvježavanja slike svake sekunde.
01 private class TimerThread extends Thread 02 { 03 public void run() 04 { 05 // instanciramo novi timer 06 timer = new Timer(); 07 timer.schedule(new DownloadTimerTask(),interval, interval); 08 } 09 } 10 11 private class DownloadTimerTask extends TimerTask 12 { 13 public void run() 14 { 15 16 handler.sendEmptyMessage(0); 17 } 18 } 19 20 Handler handler = new Handler() 21 { 22 @Override 23 public void handleMessage(Message msg) 24 { 25 //tu skidamo sliku sa neta 26 27 image.setBackgroundResource(0); 28 29 downloadImage(); 30 } 31 };
Slika 24 Stvaranje dretvi u aplikaciji s ciljem osvježavanja slike
Prilikom pokretanja nove dretve (engl. thread) koja se zove TimerThread pokreće
se ugrađena funkcija Timer() koja predstavlja brojač. Pomoću naredbe timer.schedule(new
DownloadTimerTask(),interval,interval) dajemo naredbu da u određenom intervalu, koji je
predstavljen u milisekundama odradimo neki zadatak. U ovom slučaju taj zadatak je
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
39
DownloadTimerTask() u kojem se pomoću Handlera prvo postavlja slika (image) na
prazno (image.setBackgroundResource(0)), i nakon toga se poziva funkcija
downloadImage() koja obavlja skidanje slike s Interneta i postavljanje u ImageVew.
5.3.4 Skidanje slike s Interneta
Android posjeduje dosta ugrađenih funkcija koje nam olakšavaju određene zadatke
pri izradi aplikacija. Jedan od primjera zadataka je pristup podacima koji se nalaze na
Internetu. Pristup podacima na Internetu moguć je korištenjem ugrađenih funkcija
InputStream, URL (prima kao parametar niz znakova koji sadrži URL izvora podataka),
URLConnection i BitmapFactory.
• InputStream je funkcija za čitanje podataka iz nekog izvora u byte-ovima;
• URL drži adresu izvora podataka na Internetu kojem se pristupa;
• URLConnection ostvaruje spajanje na adresu koja je zapisana unutar URL-a.
Ona prima URL tip podataka kao parametar. Spajanje se ostvaruje tek nakon
izdavanja naredbe URLConnection.connect();
• BitmapFactory i BitmapFactory.decodeStream(InputStream) služe da se iz
InputStream–a pročitaju dohvaćeni podaci i da se od toga stvori slika (npr.
bitmapa) koja se nakon stvaranja može pomoću naredbe
ImageView.SetImageBitmap(image) postaviti u ImageView za prikaz korisniku.
Na slici 25 prikazan je najvažniji dio programskog koda koji se koristi pri
dohvaćanju slike s Interneta.
01 private void downloadImage() 02 { 03 String poruka= null; 04 InputStream in = null; 05 String urlString ="http://adresagoogle_android_logo.jpg"; 06 //neka slika na internetu 07 try 08 { 09 URL url = new URL(urlString); 10 URLConnection ucon = url.openConnection(); 11 ucon.connect(); 12 in = ucon.getInputStream(); 13 bmp = BitmapFactory.decodeStream(in); 14 in.close(); 15 image.setImageBitmap(bmp); 16 } 17 //niz catch blokova - provjera raznih vrsta iznimaka 18 … 19 }
Slika 25 Dohvaćanje slike s Interneta
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
40
Pri dohvaćanju slike s mreže može se dogoditi mnoštvo neočekivanih problema
(npr. mreža ne radi, nema slike i sl) , pa je svaki takav slučaj potrebno predvidjeti i obraditi
odgovarajućim tipom iznimke.
5.3.5 Izrada postavki za aplikaciju
Postavke su bitan dio aplikacije i to su tvorci Android- a prepoznali i maksimalno
olakšali izradu postavki za aplikacije. Opet se, kao što je već spomenuto sve odvija u xml
datoteci preferences.xml kroz koju se definiraju sva potrebna polja. Kao i kod izrade
izgleda aplikacije postoji nekoliko predefiniranih objekata koji se mogu koristiti za rad.
XML datoteka sa podacima se mora nalaziti u direktoriju res/values/arrays da bi je mogli
koristiti za izradu postavki aplikacije.
U nastavku su navedeni različiti elementi koji se mogu koristiti za izradu postavki
[12]:
• CheckBoxPreference je jednostavni checkbox koji vraća vrijednost true
/false;
• ListPreference pokazuje listu jednostavnih kontrola od kojih može biti
odabrana samo jedna. Lista povezuje dva izvora podataka koji su navedeni u
xml datoteci;
• android:entries predstavlja nazive koji se postavljaju na svaki od elemenata
liste;
• android:entryValues je drugi skup podataka koji predstavlja vrijednosti
predefinirane za pojedini element iz android:entries skupa podataka;
• editTextPreference je polje za uređivanje teksta koje vraća vrijednost tipa
string;
• RingtonePreference pokazuje listu jednostavnih kontrola RadioGroup od
koji samo jedna može biti izabrana i služi za odabir melodije zvona
mobilnog uređaja;
• Preference je element koji se može mijenjati od strane korisnika, a prikazuje
se i funkcionira kao gumb;
• PreferenceScreen je u svojoj osnovi ekran s postavkama. Ako se definira
PreferenceScreen unutar postojećeg PreferenceScreen-a, onda će se na
zaslonu uređaja jednostavno otvoriti novi ekran sa postavkama;
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
41
• PreferenceCategory omogućuje grupiranje postavki u kategorije radi bolje
preglednosti.
Izrađena aplikacija posjeduje dva EditTextPreference elementa koji služe za
uređivanje adresa kamera. XML datoteka aplikacije prikazana je na slici 26.
01 <?xml version="1.0" encoding="utf-8"?> 02 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 03 <EditTextPreference android:key="cam1" android:title="Kamera 1" android:summary="Unesite adresu na kojoj se nalazi Kamera 1" android:defaultValue="http://www.croatianstar.com/cam1 /current.jpg"> 04 </EditTextPreference> 05 <EditTextPreference android:key="cam2" android:title="Kamera 2" android:summary="Unesite adresu na kojoj se nalazi Kamera 1" android:defaultValue="http://www.croatianstar.com/cam2 /current.jpg"> 06 </EditTextPreference> 07 </PreferenceScreen>
Slika 26 Postavke aplikacije
Kao što je vidljivo na slici 26, PreferenceScreen i EditTextPreference postavke
aplikacije su dosta jednostavne jer realizirana aplikacija ne zahtjeva velik broj elemenata
pored elementa za podešavanje adrese kamere Kada bi aplikacija omogućavala
podešavanje drugih postavki kamera koje ovise o njihovoj vrsti, broj postavki kao i
složenost XMLdatoteke bili bi veći. Na slici 27 prikazan je ekran postavki realizirane
aplikacije, koje su opisane u preferences.xml datoteci aplikacije.
Slika 27 Izgled ekrana s postavkama aplikacije
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
42
Koliko je Android olakšao cijelu stvar s podešavanjem postavki aplikacije može se
vidjeti na prethodno opisanom primjeru. Programer je trebao samo definirati postavke u
preferences.xml datoteci i pozvali funkciju koja uvozi postavke u aplikaciju. Sve ostalo je
automatski napravio Android. Na osnovu vrste određene postavke aplikacija zna koje
komponente treba izgenerirati, a brine se i za njihov smještaj na ekranu. U konkretnom
slučaju prikazanom na slici 28, nakon što korisnik klikne na EditTextPreference, Android
zna da se radi o uređivanju teksta i odmah otvara virtualnu tipkovnicu s onim elementima
korisničkog sučelja koji se u tom konkretnom slučaju mogu koristiti. U ovom slučaju pored
mogućnosti unosa teksta u polje, iscrtane su i dvije tipke za potvrdu odnosno odustajanje
od unosa.
Slika 28 Izgled ekrana aplikacije pri unosu postavki
Da bi aplikacija znala koristiti podešene postavke, potrebno ih je inicijalizirati
prilikom pokretanja aplikacije. Na slici 29 prikazan je programski kod za inicijalizaciju
postavki smješten u klasi Preferences.
01 public class Preferences extends PreferenceActivity 02 { 03 //pozivamo kada se aktivnost kreira 04 public void onCreate(Bundle savedInstanceState) 05 { 06 super.onCreate(savedInstanceState); 07 addPreferencesFromResource(R.xml.preferences); 08 } 09 }
Slika 29 Inicijalizacija postavki
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
43
Da bi se inicijalizacija izvršila tijekom pokretanja aplikacije, potrebno je kreirati
objekt tijekom pokretanja aplikacije. Taj programski kod prikazan je na slici 30.
01 // pokretanje aplikacije 02 preferences = PreferenceManager.getDefaultSharedPreferences(this); 03 Intent i = new Intent(test.this,Preferences.class); 04 startActivity(i);
Slika 30 Pokretanje inicijalizacije pri pokretanju aplikacije
Da sam imao više vremena u programski kod za inicijalizaciju postavki ubacio bih i
interval osvježavanja slike kao ListPreference što bi dobro došlo ako je neki događaj koji
se ne mijenja tako često.
5.4 Iskustva u izradi aplikacije Na početku rada sam izradio korisničko sučelje aplikacije pomoću DroidDraw-a i
postavio sve elemente potrebne za rad. Odnos elemenata je postavljen na relativan tako da
se sam Android brine za veličinu, smještaj i međusoban odnos komponenti.. Nakon što sam
posložio izgled aplikacije izradio sam funkciju za skidanje slike s Interneta i postavljenje
iste na ImageView kontrolu za pregled.
Nakon završetka funkcije za skidanje i postavljanje slike za pregled napravio sam
funkciju brojača koji odbrojava i poziva funkciju za skidanje slike svaku sekundu. Nakon
što su sve predviđene funkcije bile gotove aplikaciju sam isprobao na emulatoru koji dođe
s ADT – paketom za Eclipse.
Kada su funkcije za skidanje i prikaz slike u određenom intervalu bile gotove
dodao sam mogućnost spremanja trenutno prikazane slike u memoriju mobilnog uređaja.
Adrese kamera koje sam ja postavio su bile statički deklarirane (engl. hard coded)
unutar aplikacije, pa sam odlučio napraviti postavke u kojima se mogu mijenjati adrese i na
takav način omogućio upotrebu ove aplikacije na bilo kojoj kameri koja može izvesti slike
na neki poslužitelj kojem se može pristupit preko Interneta pomoću njegove adrese.
Sam proces razvoja aplikacije pokazao se nešto teži nego sam na početku očekivao,
prvenstveno zbog toga jer je Android platforma za mene nova, pa je bilo potrebno na
početku „pohvatati konce“ i naučiti raditi osnovne stvari. Nakon nekog vremena razvoj je
postao jednostavniji. Aplikacija podržava osnovne funkcionalnosti opisane u logičkom
modelu, a da sam imao nešto više vremena, mogao sam istu još doraditi.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
44
5.5 Korištenje aplikacije U ovom poglavlju opisati ću praktično korištenje izrađene aplikacije kroz njezine
glavne funkcionalnosti: pregled kamere, spremanje slike i postavke.
Na slici 31 prikazani su osnovni dijelovi aplikacije. S lijeve strane nalaze se ikone
kamera, za spremanje slike i podešavanje postavki. Velik prostor s desne strane predviđen
je za prikaz slike.
Slika 31 Izgled ekrana prije odabira kamere
Korisnik vrši interakciju s aplikacijom pritiskom na odgovarajuću ikonu, prstom ili
stylusom ovisno o konkretnom modelu mobilnog uređaja.
5.5.1 Pregled kamere
Nakon što se aplikacija pokrene, u lijevom gornjem kutu vide se dvije ikone na
kojima su prikazane kamere. Kada bi bilo uključeno više kamera, vidjele bi se jedna ispod
druge, na isti način kao u ovom slučaju. Ostali dijelovi izbornika u tom slučaju bi se
pomaknuli prema dolje. Aplikacija bi se mogla doraditi na način da ostale ikone ostanu
uvijek fiksno pozicionirane, bez obzira na broj kamera.
Na ekranu se ne vidi slika niti jedne kamere, a u vrhu ekrana je ispisana poruka
“Nije odabrana kamera”.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
45
Izgled početnog ekrana aplikacije prije odabira kamere prikazan je na slici 32.
Slika 32 Izgled ekrana prije odabira kamere
Izbor neke od kamera vrši se pritiskom prsta ili stylusa na ikonu te kamere. Nakon
odabira kamere u sredini ekrana je prikazana slika sa kamere a u vrhu je ispisana poruka
“Odabrana je kamera n, Interval osvježavanje je: 1 sec”.
Aplikacija će učitavati sliku s interneta cijelo vrijeme u zadanom intervalu. Da bi se
pokrenuo prikaz slike s druge kamere potrebno je izabrati ikonu te kamere. Na slici 33
prikazan je izgled ekrana aplikacije koji prikazuje sliku s izabrane kamere broj 1.
Slika 33 Izgled ekrana nakon odabira kamere
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
46
5.5.2 Spremanje slike
Tijekom prikaza slike jednostavnim odabirom ikonice memorije ispod ikona
kamera sprema se slika na naš mobilni uređaj. Pretpostavka za spremanje slike je da uređaj
ima dovoljno velik prazan memorijski prostor. Nakon što se slika spremi, na ekranu će se
prikazati poruka “Sačuvano”. Slika se pohranjuje u korijenski direktorij memorijske
kartice mobilnog uređaja pod nazivom snapshot.PNG.
5.5.3 Podešavanje postavki
Pritiskom na ikonu ključa koji se nalazi s lijeve strane ekrana otvara se prozor za
podešavanje postavki aplikacije. Jedina postavka koja se može podesiti u ovoj verziji
aplikacije je adresa kamere. Izgled ekrana prikazan je na slici 34.
Slika 34 Izgled ekrana postavki
Nakon odabira željenih postavki prikazuje se prozor za uređivanje trenutno
postavljene adrese za odabranu kameru. Pritiskom na tipku OK nakon ažuriranja adrese
promjene se zapisuju. Nakon toga se možemo vratiti na glavni ekran i odabrati
promijenjenu kameru.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
47
Izgled ekrana za unos izabrane postavke prikazan je na slici 35.
Slika 35 Izgled ekrana nakon odabira željenih postavki
5.5.4 Uočeni nedostatci i moguće nadogradnje
Nekoliko grešaka koje sam uočio nakon što sam istestirao konačnu verziju
aplikacije su da aplikacija vizualno dobro izgleda samo kada je mobilni uređaj u
vodoravnom položaju. Kada se uređaj okrene svi se elementi okrenu i pozicioniraju kao da
su u vodoravnom položaju samo što u tom slučaju nema dovoljno mjesta za prikaz slike.
Kod spremanja slike na memoriju računala aplikacija sprema sliku uvijek pod istim
nazivom, tako da nova slika gazi staru i nije moguće spremiti više od jedne slike. Za
razliku od prvog uočenog nedostatka, ovaj drugi je relativno jednostavno ispraviti.
Da sam imao više vremena doradio bih postavke i dodao opcije za izbor rezolucije
slike, intervala osvježavanja i spremanje više slika na mobilni uređaj.
Realizirane funkcije ove aplikacije su osnovne, a sama aplikacija služi za
demonstraciju mogućnosti mobilne aplikacije na platformi Android.
Ako bi se aplikacija željela koristiti u stvarnom radu,pored ispravljanja prethodno
navedenih uočenih nedostataka, bilo bi ju potrebno dodatno doraditi. Neke od mogućih
dorada funkcionalnosti aplikacije uključuju.
• Dodavanje zoom in/out mogućnosti pri prikazu slike;
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
48
• Povezivanje lokacija kamera sa Google mapama tako da korisnik ima uvid
u lokaciju na kojoj se izabrana kamera nalazi;
• Povezivanje aplikacije s poslužiteljem na kojemu bi bile smještene kamere
iz drugih gradova Hrvatske i svijeta, tako da korisnik ima mogućnost
odabira većeg broja različitih kamera.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
49
6 ZAKLJUČAK Aplikacija za nadzor prometnica koju sam razvio u svrhu diplomskog rada je
primjer kako je moguće u relativno kratkom roku naučiti razvijati aplikacije za mobilne
uređaje. Naravno kao i svakom poslu mora proći neko vrijeme dok se počnu izrađivati
kvalitetne aplikacije koje bi s vremenom mogle donijeti neki profit.
Prilikom izrade ovog diplomskog rada naučio sam dosta novih i zanimljivih stvari,
tehnologija koje bi mi mogle dobro doći u budućnosti. Zasigurno će mobilni uređaji postati
još jači, a time i će se povećavati i mogućnosti izrade složenijih i zahtjevnijih aplikacija
koje će imati velik broj potencijalnih korisnika. Jedini problem je što se sve odvija suviše
brzo i nije baš lako pratiti taj razvoj, pa je potrebno puno truda i rada uložiti ako se želi
uspjeti na području programiranja aplikacija za mobilne uređaje.
Da bi ova aplikacija mogla biti korištena u realnom vremenu potrebne su još neke
dorade. Potrebno je poraditi na korištenju privremene memorije (engl. cache) i
predmemorije (engl. buffer) jer bi se tako mogao ubrzati rad aplikacije. Aplikacija bi
mogla koristiti algoritam koji bi skidao samo promijenjeni dio slike, jer je prilikom
videonadzora dosta dijelova slike statično i ne mijenja se često, pa bi nešto takvo ubrzalo
rad jer bi se skidali samo oni dijelovi koji se promjene. Iako je tema ovog rada primjena
mobilnih uređaja u videonadzoru cestovnog prometa, isti princip se može primijeniti i
prilikom pristupa bilo kojoj videokameri. Ne samo pri videonadzoru nekih lokacija, već i
pri pristupu turističkim,panoramskim i sl. kamerama.
Još jedna od mogućih nadogradnji i ideja je da se u aplikaciju ubaci mogućnosti
globalnog pozicioniranja korisnika pomoću kojeg bi se moglo otkriti kada je korisnik blizu
nekog dijela grada gdje postoji kamera i ponuditi mu pristup toj kameri. Npr. korisniku
koji se nalazi na Stradunu ponuditi kameru koja je smještena na zidine i gleda prema moru
ili u našem slučaju kada je riječ o nadzoru prometnica otkriti kada korisnik uđe u grad ili
dođe blizu, pa mu ponuditi sve raspoložive kamere za nadzor prometnica pomoću kojih
korisnik može odabrati najbrži put do svoga cilja.
Za primjene kod kojih samo ovlašteni korisnici smiju pristupati određenim
kamarema, u postavke aplikacije bi se mogla ugraditi mogućnost provjere identiteta i
autorizacije korisnika, što za slučaj rada s javno dostupnim kamerama nije potrebno.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
50
7 LITERATURA [1] G. Booch, J. Rumbaugh, I. Jacobson: The Unified Modeling Languange User Guide,
Addison Wesley Longman, Inc., Massachusetts, SAD, 2000.
[2] H. Detmold et al., Scalable Surveillance Software Architecture, Proceedings of the
IEEE International Conference on Advanced Video and Signal-based Surveillance
(poster), IEEE, November 2006.
[3] F. Douglish, As I Emerge from the Mobile Phone Dark Ages, I Look Around in Fear
and Wonder, IEEE Internet Computing, July 2010.,
http://csdl2.computer.org/comp/mags/ic/2010/04/mic2010040004.pdf (12.07.2010.)
[4] L. Frickengel et al., Wireless Networking in the Developing World, 2nd ed., WNDW,
December 2007. , http://wndw.net/pdf/wndw2-en/wndw2-ebook.pdf (12.07.2010.)
[5] A. van den Hengel, A. R. Dick, R. Hill. Activity topology estimation for large
networks of cameras. Proceedings of the IEEE International Conference on Advanced
Video and Signal-based Surveillance, IEEE, November 2006.
[6] R. Miner, Android - Building a Mobile Platform to Change the Industry, Stanford EE
Computer Systems Colloquium, 28th November 2007.
http://www.stanford.edu/class/ee380/ (12.07.2010.)
[7] D. Pavlešić, Razvoj mobilnih aplikacija, Mreža, 8-9/2010.
[8] ***, ADT for Eclipse, http://developer.android.com/sdk/eclipse-adt.html (02.07.2010.)
[9] ***, Android, http://en.wikipedia.org/wiki/Android_(operating_system) (2.04.2010.)
[10] ***, AndroidManifest.xml,
http://developer.android.com/guide/topics/manifest/manifest-intro.html (12.07.2010.)
[11] ***, Android market, http://en.wikipedia.org/wiki/Android_Market (02.04.2010.)
[12] ***, Android preferences, http://www.kaloer.com/android-preferences
(09.08.2010.)
[13] ***, AVD Manager, http://developer.android.com/guide/developing/tools/avd.html
(12.07.2010.)
[14] ***, BlackBerry, http://en.wikipedia.org/wiki/BlackBerry (17.06.2010.)
[15] ***, BlackBerry App World, http://en.wikipedia.org/wiki/BlackBerry_App_World
(17.06.2010.)
[16] ***, Bridge networking,
http://en.wikipedia.org/wiki/Bridging_%28networking%29 (12.07.2010.)
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
51
[17] ***, Dalvik virtual machine, http://en.wikipedia.org/wiki/Dalvik_(software)
(02.04.2010.)
[18] ***, DroidDraw, http://www.droiddraw.org/ (02.04.2010.)
[19] ***, Eclipse, http://www.eclipse.com (01.07.2010.)
[20] ***, Iphone, http://en.wikipedia.org/wiki/IPhone (12.07.2010.)
[21] ***, Iphone App Store, http://en.wikipedia.org/wiki/App_Store (12.07.2010.)
[22] ***, IP Cam Viewer aplikacija, http://hit-mob.com/forums/viewtopic.php?f=7&
t=18 (12.07.2010.)
[23] ***, Java Micro Edition - JME,
http://www.oracle.com/technetwork/java/javame/overview/index.html (12.07.2010.)
[24] ***, Javascript, http://en.wikipedia.org/wiki/JavaScript (12.07.2010.)
[25] ***, MIDP – Mobile Information Device Profile,
http://www.oracle.com/technetwork/java/index-jsp-138820.html (12.07.2010.)
[26] ***, Mikrotik, http://www.mikrotik.com/aboutus.php (12.07.2010.)
[27] ***, Mobiscope aplikacija,
http://www.shapeservices.com/freedownload/manuals/mobiscope/mobiscope_getstart_
android.pdf (12.07.2010.)
[28] ***, Palm App Catalog, http://www.palm.com/us/products/software/mobile-
applications.html (12.07.2010.)
[29] ***, Power Over Ethernet – POE,
http://en.wikipedia.org/wiki/Power_over_Ethernet (07.08.2010.)
[30] ***, Qt, http://qt.nokia.com/products/ (12.07.2010.)
[31] ***, Research In Motion (RIM), http://www.rim.com/company/ (12.07.2010.)
[32] ***, S60, http://en.wikipedia.org/wiki/S60_(software_platform) (24.07.2010.)
[33] ***, Symbian Qt, http://qt.nokia.com/products/platform/symbian/ (12.07.2010.)
[34] ***, UTP, http://en.wikipedia.org/wiki/Twisted_pair (6.06.2010.)
[35] ***, VLAN, http://en.wikipedia.org/wiki/Virtual_LAN (12.07.2010.)
[36] ***, Web runtime widgets,
http://developer.symbian.org/wiki/index.php/Web_Runtime_Widgets_in_a_Nutshell
(12.07.2010.)
[37] ***, WebOS, http://en.wikipedia.org/wiki/Web_operating_system (12.07.2010.)
[38] ***, Windows marketplace, http://marketplace.windowsphone.com/Default.aspx
(12.07.2010.)
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
52
[39] ***, Windows Phone 7, http://en.wikipedia.org/wiki/Windows_Phone_7
(12.07.2010.)
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
53
8 SAŽETAK U ovom radu opisana je realizacija aplikacije za videonadzor korištenjem mobilnog
uređaja na Android platformi. Aplikacije se spaja na Internet i preko FTP poslužitelja
pristupa slikama s nadzornih kamera. Opisane su također i ostale platforme na kojima je
moguće realizirati jedan ovakav projekt. U teorijskom dijelu rada objašnjeno je kako
Android funkcionira, napravljen je logički model aplikacije i mrežne infrastrukture na koju
se aplikacija oslanja. U praktičnom dijelu je realizirana Android aplikacija za spajanje na
mrežu za videonadzor. Objašnjen je način na koji je kamera spojena na mrežu. Detaljnije
su pojašnjene tehnologije POE, Mikrotik RouterBoard i Mikrotik RouterOS koje su od
velike važnosti za ovaj projekt i njihova upotreba čini našu mrežnu infrastrukturu
jednostavnijom i lakšom za održavanje. Za pomoć pri izradi aplikacije korištena je
DroidDraw aplikacija koja nam pomaže pri izradi korisničkog sučelja. Na kraju rada
prikazan je jedan primjer upotrebe izrađene aplikacije kroz njezine glavne funkcije:
pregledavanje slika, spremanje slika i uređivanje postavki. Korisnicima realizirane
aplikacije omogućen je pristup bilo kojoj kameri koja je podešena na način rada koji je
objašnjen u ovom radu. Osim pregledavanja slika i uvida u stanje na prometnicama
korisnik može sačuvati trenutno stanje na svoj mobilni uređaj u obliku PNG slike, a može
još i mijenjati adrese kamera te tako dodati neku proizvoljnu kameru.
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
54
9 ABSTRACT This thesis describes the implementation of the video surveillance mobile
application for the Android platform. Through the FTP server, application downloads
images are uploaded by the video surveillance camera and show the image to the user.
Alternative platforms are also described. The first part of this thesis illustrates how the
Android functions. It shows the logical model of the application and the network which the
application uses for operation. The practical part describes how the camera is connected to
the network and also provides detailed information about POE, Mikrotik RouterBoard and
Mikrotik RouterOS. These technologies make the network easier to maintain. For
developing user interface we use DroidDraw application which helps us with our user
interface design. DroidDraw allows us the use of drag-n-drop for designing which is a
better way of building a user interface than using the xml file. The last part of the thesis
shows the use of the applications main functions: view pictures from camera, save current
picture to mobile device and editing of the settings. With the use of these function users
can access any camera that is set up to work in a way that is descibed in the thesis. In
addition to viewing the images from camera, users can also save the current image to
mobile device in PNG file format and change the camera settings
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
55
10 PRILOZI
10.1 Popis slika Slika 1 Pregled dostupnih kamera u Mobiscope aplikaciji .................................................... 6
Slika 2 IP Cam Viewer pregled svih dostupnih kamera ........................................................ 7
Slika 3 Tržišni udio pametnih telefona u prvome kvartalu 2010.. ........................................ 8
Slika 4 HTC Dream - prvi Android mobilni telefon ............................................................. 9
Slika 5 Arhitektura Android operativnog sustava ............................................................... 10
Slika 6 Logotip i nekoliko primjera Android 1.6 aplikacija ............................................... 12
Slika 7 Struktura mobilne aplikacije za videonadzor .......................................................... 20
Slika 8 Dijagram slučajeva korištenja ................................................................................. 21
Slika 9 Dekompozicija aplikacije ........................................................................................ 22
Slika 10 Dijagram konteksta ............................................................................................... 23
Slika 11 Pregledni dijagram ................................................................................................ 24
Slika 12 Dijagram procesa promjena kamere ..................................................................... 25
Slika 13 Dijagram procesa spremanje slike ......................................................................... 25
Slika 14 Model mreže .......................................................................................................... 26
Slika 15 Usmjerena i neusmjerena antena ........................................................................... 30
Slika 16 Prikaz izmjerene brzine prijenosa podataka između dvije pristupne točke ........... 30
Slika 17 Mikrotik routerboard ............................................................................................. 31
Slika 18 Izgled POE adaptera .............................................................................................. 32
Slika 19 Postupak spajanja kamere na mrežu ...................................................................... 32
Slika 20 Eclipse razvojno sučelje ........................................................................................ 34
Slika 21 Primjer AndroidManifest.xml datoteke.................................................................. 35
Slika 22 DroidDraw korisničko sučelje .............................................................................. 37
Slika 23 Izgleda ekrana izrađen pomoću DroidDraw aplikacije ......................................... 37
Slika 24 Stvaranje dretvi u aplikaciji s ciljem osvježavanja slike ....................................... 38
Slika 25 Dohvaćanje slike s Interneta ................................................................................. 39
Slika 26 Postavke aplikacije ................................................................................................ 41
Slika 27 Izgled ekrana s postavkama aplikacije .................................................................. 41
Slika 28 Izgled ekrana aplikacije pri unosu postavki .......................................................... 42
Slika 29 Inicijalizacija postavki ........................................................................................... 42
Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi
56
Slika 30 Pokretanje inicijalizacije pri pokretanju aplikacije ............................................... 43
Slika 31 Izgled ekrana prije odabira kamere ....................................................................... 44
Slika 32 Izgled ekrana prije odabira kamere ....................................................................... 45
Slika 33 Izgled ekrana nakon odabira kamere ..................................................................... 45
Slika 34 Izgled ekrana postavki ........................................................................................... 46
Slika 35 Izgled ekrana nakon odabira željenih postavki ..................................................... 47