57
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.

Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

Embed Size (px)

Citation preview

Page 1: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 2: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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 

Page 3: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

Upravljanje videonadzorom cestovnog prometa mobilnim uređajem na android platformi

2

9  ABSTRACT ..................................................................................................................... 54 10  PRILOZI ...................................................................................................................... 55 

10.1  Popis slika ............................................................................................................. 55 

Page 4: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 5: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 6: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 7: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 8: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 9: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 10: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 11: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 12: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 13: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 14: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 15: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 16: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 17: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 18: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 19: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 20: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 21: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 22: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 23: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 24: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 25: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 26: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 27: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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].

Page 28: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 29: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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].

Page 30: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 31: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 32: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 33: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 34: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 35: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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;

Page 36: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 37: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 38: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 39: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 40: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 41: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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;

Page 42: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 43: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 44: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 45: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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”.

Page 46: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 47: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 48: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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;

Page 49: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 50: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 51: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.)

Page 52: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.)

Page 53: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.)

Page 54: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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.

Page 55: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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

Page 56: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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 

Page 57: Antonio Dujmovic Diplomski zavrsna - bib.irb.hr rad upravljanje videonadzorom cestovnog prometa mobilnim ureĐajem na android platformi mentor: diplomant: prof

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