�eské vysoké u£ení technické v PrazeFakulta stavební
Projekt Informatika 2
Akedemický rok 2012/2013
Mapa kamer � mobilní aplikace pro Android
Dokumentace
Auto°i:
Martin Lºí£a°
Dan Dluho²
Michal Med
Vedoucí:
Ing. Martin Landa
Katedra mapování a
kartogra�e
K153
Obsah
1 Úvod 3
2 Mobilní aplikace Mapa Kamer 52.1 P°íprava prost°edí Eclipse pro vývoj Android aplikací . . . . . . . . . . . . . . . . 52.2 Projekt Osmdroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Pouºívání aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3.1 P°idat kameru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3.2 Zobrazit mapu kamer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.3.3 O projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Základy vývoje aplikací pro Android . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Databáze 11
4 P°ipojení k databázi na serveru 124.1 Java Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.2 Vytvá°ení poºadavku v mobilním za°ízením . . . . . . . . . . . . . . . . . . . . . . 13
5 Problémy p°i implementaci aplikace 14
6 Záv¥r 15
7 Seznam zdroj· 16
1
Zadání
Mobilní aplikace pro mapování kamer ve ve°ejných prostorech
Skupina: B (2013)
Cílem projektu je tvorba aplikace pro Iuridicum Remedium, o. s., která
by m¥la slouºit k mapování kamer ve ve°ejných prostorech. Aplikace
bude ur£ena pro mobilní za°ízení s opera£ním systémem Android a bude
napsána v programovacím jazyce Java. Aplikace by m¥la umoº¬ovat
zobrazení vrstvy s jiº zmapovanými kamerami ve ve°ejných prostorech
nad OpenStreetMap a p°idávání nových kamer pomocí p°edání sou°adnic
GPS a fotografie z mobilního za°ízení do vrstvy OSM se zmapovanými
kamerami. Vkládání bude probíhat p°es zprost°edkovatelský server, na
který se budou ukládat fotografie a který bude obsahovat databázi
kamer, do které budou vkládány kamery rovnou z aplikace. Na serveru
zprovozníme databázi PostgreSQL a pohyb dat mezi aplikací, databází a
OpenStreetMap bude umoºn¥n pomocí PHP skript·. Budeme vycházet z
aplikace, která byla k tomuto ú£elu naprogramována na restartu
iniciovaném ob£anským sdruºením Iuridicum Remedium a upravíme ji podle
na²ich pot°eb. V sou£asné aplikaci nefunguje komunikace se serverem,
protoºe ºádný server neexistuje, a prohlíºe£ka mapy je zaloºena na
Google Maps. Google Maps chceme v aplikaci kompletn¥ nahradit
OpenStreetMap.
2
1 | Úvod
Práce byla vytvo°ena v rámci projektu informatika 2 ve spolupráci s ob£anským sdruºenímIuRe � Iuridicum Remedium. Sdruºení se zabývá ochranou soukromí a lidskými právy. Na svýchstránkách1 zve°ej¬ují mimo jiné �výherce� ankety Big brother awards nebo webovou aplikacimapa kamer2, ve které zobrazují ve°ejná místa pokrytá kamerovými systémy.
Obrázek 1.1: Logo ob£anského sdruºení IuRe
Obrázek 1.2: Webová aplikace Mapa kamer
Sdruºení se jiº v minulosti pokou²elo o tvorbu mobilní aplikace pro zaznámenávání a zobra-zování kamer, ale potýkalo se s nedostatkem pracovních kapacit, proto na²i bezplatnou nabídkuke spolupráci rádi p°ijali. Základ aplikace byl jiº p°ipraven, ale nespl¬oval ani jejich ani na²eo£ekávání. Aplikace byla zaloºena na Google Maps a nem¥la v pozadí ani databázi, ani server. I oto jsme se tedy museli postarat.
1www.iure.org2www.mapakamer.cz
3
Aplikace je zacílena na mobilní opera£ní systém Android. Jazykem b¥ºn¥ pouºívaným pro tvorbuaplikací pro Android je Java. Pouºili jsme vývojové prost°edí Eclipse, do kterého je v²ak protvorbu mobilních aplikací pot°eba doinstalovat Android Developer Tools.
Jako podkladová mapa byly pouºity rastry z opensourcového projektu OpenStreetMap3. Prouchovávání informací o kamerách byla pouºita databáze PostgreSQL a dále byla, op¥t v jazyceJava, napsána webová aplikace umoº¬ující komunikaci mezi mobilním za°ízením a databází.
3www.openstreetmap.org
4
2 | Mobilní aplikace Mapa Kamer
Tato kapitola se zabývá tvorbou a pouºíváním mobilní aplikace. V jednotlivých sekcích se zmínímeo p°íprav¥ prost°edí Eclipse pro vývoj mobilních aplikací pro systém Android, s pouºívánímprojektu Osmdroid1, který slouºí k pouºívání map projektu OpenStreetMap v Androidu a o tom,jak do databáze p°idat novou kameru. Na záv¥r kapitoly se zmíníme o speci�kách vývoje aplikacípro systém Android jako takových.
2.1 P°íprava prost°edí Eclipse pro vývoj Android aplikací
Balí£ek ADT Bundle poskytuje v²e, co je pot°eba k vývoji aplikací pro Android, v£etn¥ Eclipse
IDE s vestav¥ným ADT (Android Developer Tools). Je moºné nainstalovat Android STK i doexistujícího IDE2, ale zde se budeme zabývat instalací celého balí£ku ADT Bundle.
Po rozbalení do zvoleného adresá°e sta£í otev°ít adresá° adt-bundle-<os_platform>/eclipse/ aspustit z n¥j eclipse. IDE je rovnou na£teno s pluginem ADT a SDK je p°ipraveno k pouºití.
Obrázek 2.1: Správn¥ nastavený emulátoru je na druhém °ádku
Balí£ek obsahuje v²e nezbytné v£etn¥ emulátoru. Ke správ¥, spu²t¥ní a nastavení SDK slouºípoloºka v menu Window → Android SDK Manager, ke správ¥ emulátoru potom Window
1http://code.google.com/p/osmdroid/2http://developer.android.com/sdk/installing/index.html
5
→ Android Virtual Device Manager. K bezproblémovému chodu aplikace v emulátoru jepot°eba nastavit jako cílové prost°edí Google APIs v poslední verzi (17).
Nejnov¥j²í verze Google API v nabídce pravd¥podobn¥ nebude. K její instalaci je t°eba otev°ítWindow → Android SDK Manager a doinstalovat ho.
Obrázek 2.2: Ozna£ené balí£ky je pot°eba doinstalovat
Pro spu²t¥ní aplikace Mapa Kamer v emulátoru je pot°eba je²t¥ nastavit sou°adnice GPS. Tose musí ud¥lat ru£n¥, protoºe emulátor nemá ºádné fyzické GPS za°ízení. ze to ud¥lat dv¥mazp·soby:
• Ru£ní nastavení v DDMS:
� Window → Open Perspective → DDMS,
� ozna£it emulátor a v záloºce Emulator Control nastavit sou°adnice,
� potvrdit tla£ítkem Send.
Obrázek 2.3: Ozna£ené balí£ky je pot°eba doinstalovat
• Pomocí telnetu:
� otev°ít konzoli,
6
� p°ipojit za°ízení: telnet localhost 5554,
� nastavit sou°adnice: geo fix 13.24 52.31.
Je celkem jedno který z t¥chto zp·sob· je pouºit. Po správném nastavení sou°adnic by se m¥lemulátor chovat jako mobilní za°ízení v poloze nastavené t¥mito sou°adnicemi. Pozor: nastavenímGPS sou°adnic není v za°ízení "zapnut"GPS modul. GPS se zapíná v nastavení (Menu → Set-tings → Location access → GPS satellites).
2.2 Projekt Osmdroid
V Android SDK existuje mapová podpora pro Google Maps, protoºe Android pat°í také spole£nostiGoogle. Pro pouºití OpenStreetMap v aplikaci existuje více moºností, krom¥ námi pouºitéhoOsmdroid lze pouºít nap°íklad renderovací knihovnu MapsForge3.
Balí£ek Osmdroid umoº¬uje pouºívání nativních metod pro zobrazování Google Maps k zobra-zování dat z projektu OpenStreetMap. V n¥kterých p°ípadech, jako je t°eba zobrazení mapy, jejívycentrování nebo nastavení hladiny zoom, se pouºívají metody knihovny Osmdroid p°esn¥ jakoekvivalentní metody z balí£ku google.maps. V n¥kterých jiných p°ípadech jsou t°ídy pon¥kudodli²né. P°íkladem m·ºe být t°eba zobrazení marker· (t°ída ItemizedOverlay). V n¥kterých p°í-padech nám moºnosti hotových t°íd nesta£ily a poºadovanou funk£nost jsme museli dopsat sami.Stalo se nám to nap°íklad u zobrazení obrázku v informa£ním okn¥ vyskakujícím p°i poklepání namarker v map¥. Pro tento ú£el jsme vytvo°ili t°ídu ImageOverlayItem.
Od pouºívání OpenStreetMap na úkor Google Maps jsme si slibovali moºnost vyuºití vrstvysurveillance z databáze OpenStreetMap, která obsahuje pom¥rn¥ velké mnoºství kamer sle-dujících ve°ejný prostor a která byla pouºita ve webové aplikaci Mapa Kamer a z velké míry idopl¬ována díky aktivitám sdruºení IuRe. K zobrazování vrstvy jsou ve webové aplikaci pouºityOpenLayers, které ale neexistují ve verzi pro mobilní za°ízení, jedin¥ v prohlíºe£i. Pokou²eli jsmese nalézt n¥jaké °e²ení jak pouºít data z této vrstvy a nakonec jsme se rozhodli pro export dat zdatabáze OpenStreetMap do lokální databáze na na²em serveru. Odtud je moºné data normáln¥zobrazovat v mobilní aplikaci.
2.3 Pouºívání aplikace
P°i spu²t¥ní aplikace má uºivatel na výb¥r mezi t°emi tla£ítky:
• P°idat kameru,
• Zobrazit mapu kamer,
• O projektu.
2.3.1 P°idat kameru
Nové kamery jsou p°idávány p°ímo do databáze na serveru. Tato databáze se synchronizuje p°ímos databází OpenStreetMap. O databázi i samotném nahrávání nové kamery po technické stráncese zmíníme je²t¥ v dal²ích kapitolách. V této sekci popí²eme co a jak d¥lat v aplikaci aby byla novákamera odeslána.
P°i otev°ení aktivity aplikace nejprve zkontroluje, zda je zapnutá GPS. Pokud ne, dostaneuºivatel moºnost GPS zapnout a zlep²it tak p°esnost zam¥°ení polohy.
3http://code.google.com/p/mapsforge/
7
Obrázek 2.4: Dialog vybízející k zapnutí GPS
Pokud GPS nezapne, bude poloha ur£ena ze sít¥. Poloha je zobrazena na °ádku GPS lokace.Do °ádku popis kamery uºivatel napí²e n¥co o kame°e. M¥lo by se to týkat faktických v¥cí, jakonap°íklad kdo je provozovatelem kamery, up°esn¥ní její polohy nebo nap°íklad to, jestli kam-era pouze zobrazuje, nebo i nahrává záznam. Poslední v¥c kterou je ke kame°e moºné p°idat jefotogra�e. Po stisknutí tla£ítka je uºivatel p°esm¥rován do aplikace fotoaparátu, kterou po°ídísnímek. Poté uº sta£í celý formulá° jenom potvrdit a kamera bude p°idána do databáze.
2.3.2 Zobrazit mapu kamer
P°i spu²t¥ní mapy aplikace nejprve zkontroluje, zda je zapnutá GPS. V p°ípad¥ ºe ano, je naaktuálních sou°adnicích vycentrována mapa OpenStreetMap. Pokud GPS zapnutá není, zobrazí sestejný dialog jako v p°edchozí sekci a uºivatel dostane moºnost zapnout GPS.
P°i volb¥ Ano je uºivatel p°esm¥rován do nastavení správy GPS. GPS m·ºe, ale nemusí býtzapnutá. Pro ur£ení polohy z GPS je pouºit objekt gpsLocListener. V p°ípad¥, ºe se uºiva-tel rozhodne nechat GPS vypnutou (a zvolí Ne), je poloha ur£ována ze sít¥ pomocí objektunetworkLocListener.
Obrázek 2.5: Mapa vycentrovaná na míst¥, na kterém jsem psal tuto dokumentaci
Podklad OpenStreetMap je zobrazen a vycentrován na aktuální pozici. Z databáze jsou potépomocí p°íkazu SELECT vytaºeny kamery a zobrazeny s markerem se symbolem cctv4. P°i poklepánína kameru se otev°e informa£ní okno s podrobnostmi o kame°e. Krom¥ popisu m·ºe obsahovat ifotogra�i.
2.3.3 O projektu
V této záloºce se uºivatel m·ºe do£íst jaké cíle má projekt Mapa kamer, na jakých principech jepostaven a také n¥co o sdruºení IuRe a tv·rcích projektu.
2.4 Základy vývoje aplikací pro Android
Tvorba aplikace pro systém Android je ve své podstat¥ hrozn¥ jednoduchá. Kaºdá aplikace májeden xml soubor pojmenovaný Manifest. Ten obsahuje název balí£ku, verze systému pro které
4http://mapicons.nicolasmollet.com/markers/o�ces/cctv/
8
Obrázek 2.6: Ukázka informa£ního okna kamery
Obrázek 2.7: Vzhled záloºky O projektu (screenshot z tabletu)
je aplikace ur£ená a dále velmi d·leºitý seznam pouºitých povolení (permissions) a vlastností(features). Dal²í v¥ci jsou obsaºeny v elementu application. Jedná se p°edev²ím o seznam aktivitpouºívaných v aplikaci. Co je to aktivita je vysv¥tleno dále.
Aktivitu si lze p°edstavit jako jednu obrazovku mobilního za°ízení s tla£ítky, nadpisy, menu av²ím co k tomu pat°í. V aplikaci Mapa Kamer je nap°íklad jednou z aktivit HomeActivity, kteráobsahuje domácí obrazovku aplikace se t°emi tla£ítky. P°i poklepání na tla£ítka se akorát spou²tídal²í aktivity, jmenovit¥ to jsou NewCameraActivity, CameraMapActivity a AboutActivity.
Obrázek 2.8: �ivotní cyklus aktivity
9
Kaºdá aktivita m·ºe mít vzhled tvo°en bu¤ kódem v jazyce Java, nebo je moºné vzhled nas-tavit pomocí xml souboru v res → layout. V prost°edí Eclipse je moºné xml vytvá°et pomocígra�ckého editoru.
Kaºdá aktivita má sv·j ºivotní cyklus. Aktivita m·ºe být v jednom ze £ty° základních stav·:
• Aktivní � aktivita b¥ºí v pop°edí.
• Pozastavená � aktivita je po°ád viditelná, ale není aktivní. Chová se stejn¥ jako aktivníaplikace, ale v p°ípad¥ malé pam¥ti za°ízení jí systém m·ºe zabít.
• Zastavená � aktivita je kompletn¥ p°ekryta jinou aktivitou. Kdyº je pam¥´ pot°eba jinde,tak jí systém zpravidla zabije.
• Zabitá � pokud je pozastavená nebo zastavená aktivita zabita systémem a uºivatel ji chcezobrazit, musí být znovu na£tena úpln¥ od za£átku a uvedena zp¥t do p°edchozího stavu.
Kaºdá aktivita má n¥kolik metod, kterými je moºné ji uvést do n¥kterého z uvedených stav·.Metoda uvád¥jící aktivitu do ur£itého stavu má párovou metodu, která tento stav ukon£í.
• onCreate a onDestroy
• onStart a onStop
• onResume a onPaused
10
3 | Databáze
Jako databáze na které aplikace pojede byla zvolena databáze PostgreSQL. D·vody jsou dva:
• Jedná se o open source projekt.
• Projekt OpenStreetMap pouºívá jako databázi také PostgreSQL.
Obrázek 3.1: Logo projektu PostgreSQL, na kterém slon reprezentuje dobrou pam¥´
Základem pro databázi bylo schéma, které nám laskav¥ poskytl pan inºenýr Martin Landa.Schéma obsahovalo data OpenStreetMap pro �eskou Republiku. Ze schématu jsme vytáhli pomocínásledujícího p°íkazu vytáhli v²echny body s tagem surveillance a uloºili je do tabulky b_kamery.
CREATE TABLE b_kamery AS (SELECT osm_id,name,ST_X(ST_Transform(way::geometry,4326))
AS lat,ST_Y(ST_Transform(way::geometry,4326)) AS lon FROM osm.czech_point WHERE man_made
='surveillance');
Tabulka b_kamery obsahuje identi�kátor, informace o kame°e, sou°adnice kamery, které bylynaimportovány ze schématu osm a navíc jsme p°idali atribut image, který zatím obsahuje adresuobrázku na serveru. Do budoucna plánujeme obrázky ukládat jako BLOB1, protoºe p°i v¥t²ímmnoºství obrázk· by pravd¥podobn¥ byl velký problém s pam¥tí. Z d·vod· nevhodného kódováníse v informa£ním okn¥ kamery zobrazuje pouze obrázek a nikoliv popis kamery.
Pro zrychlení vyhledávacích a dotazovacích proces· v databázi bude záhodno databázi naindex-ovat. Indexy v databázi by ji mohli výrazn¥ zrychlit a zvlá²t¥ u pomalej²ích za°ízeních a za°ízeníchs men²í kapacitou pam¥ti to dost pom·ºe rychlému chodu aplikace. Principem indexování je p°ene-sení pam¥´ové a kapacitní náro£nosti ze za°ízení na server, coº by p°i porovnání výpo£etní kapacityserveru a výpo£etní kapacity mobilního za°ízení nem¥lo v·bec vadit.
1Binary Large OBject
11
4 | P°ipojení k databázi na serveru
Kapitola se v¥nuje °e²ením a problém·m p°i práci na propojení mobilní aplikace s databází. Na²ímpoºadavkem bylo na£ítat data z databáze a zárove¬ do ní data i vkládat. Zkusili jsme n¥kolikzp·sob·, které krátce popí²eme a poté se podrobn¥ji zam¥°íme na °e²ení, které bylo zvoleno.
Jako první jsme vymysleli, ºe z mobilní aplikace by se poslal poºadavek http post na php skriptna serveru. Ten by pracoval s databází a provád¥l poºadované operace nad daty. Tento zp·sob senám nepoda°ilo implementovat a dozv¥d¥li jsme se, ºe to není bezpe£ný zp·sob. Proto jsme dal²ívývoj p°eru²ili a zkusili n¥co jiného.
Implementovali jsme moºnost, ºe by se samotná mobilní aplikace p°ipojila p°ímo do databáze.Tento zp·sob fungoval a oba na²e poºadavky byly spln¥ny. Ale p°i hledání °e²ení jsme objevili,ºe tento zp·sob je velmi náro£ný na výpo£etní techniku, protoºe navázání spojení je to nejt¥º²ína celém procesu p°ipojení aplikace k databázi. Po konzultaci s doktorem Janem Pytlem jsme serozhodli pouºít Java Servlety.
4.1 Java Servlet
Servlet je t°ída v jazyce Java, která roz²i°uje moºnosti serveru. Servlet umí zpracovat poºadavekrequest a odpov¥d¥t response. Musí b¥ºet na serveru, který zvládne zpracovat programovacíjazyk Java. Pouºili jsme Apache Tomcat 71. Ten implementuje verzi Servlet 3.0, jehoº moºnostijsme vyuºili a zmíníme je dále.
Webová aplikace se servlety si s pouºitím interfacu DataSource p°edp°ipraví p°ipojení dodatabáze a vyhne se tím problému náro£ného p°ímého p°ístupu do databáze. Tyto p°edp°ipravenép°ipojení pak �p·j£uje� servlet·m, které reagují na poºadavky z mobilní aplikace. Nastavení p°ipo-jení se nastavuje v souboru context.xml. V tomto souboru jsou p°ihla²ovací údaje do databáze.K tomuto souboru má p°ístup pouze administrátor a jiná bezpe£nostní opat°ení se zpravidla neap-likují2.
Z d·vod· popsaných vý²e jsme vytvo°ili jednoduchou webovou aplikaci obsahující následujícídva servlety.
• Servlet GetFromDB.java, který se stará o získávání dat z databáze. Podle parametruzískaného z HttpServletRequest je nastavena odpov¥¤ do HttpServletResponse. Parame-trem je adresa umíst¥ní obrázku, který bude následn¥ odeslán do mobilního za°ízení. Pokudnení ºádný parametr uveden, pak jsou do mobilní aplikace poslány v²echny kamery z databáze.
• Servlet SaveToDB.java, který z £ástí HttpServletRequest získá informace o nov¥ p°idá-vané kame°e a vloºí ji do databáze. V tomto servletu byly pouºity nové technologie z verze
1http://tomcat.apache.org/2Konzultace s Ing. Janem Pytlem Ph.D.
12
Servletu 3.0. P°í sestavování poºadavku o kame°e v mobilní aplikaci byl pouºit objektMultipartEntity. Ten umoº¬uje poslat jedním http postem jak samotný text, tak i soubory,coº jsou v na²em p°ípad¥ fotogra�e kamer. Ty jsou ukládány v adresá°i pod jmény podle£asu vloºení. to zaji²´uje unikátní název souboru, který je uloºen do databáze.
4.2 Vytvá°ení poºadavku v mobilním za°ízením
Poºadavek na server se vytvá°í v mobilním za°ízením ve t°ech p°ípadech.
• Poslání nové kamery do databáze - pomocí vý²e zmín¥né MultipartEntity se posílajív²echna data (nap°. sou°adnice, obrázek kamery) ke zpracovaní do webové aplikace.
• P°i zobrazení mapy kamer - neposílá se ºádný parametr, ale z webové aplikace se získávajídata o kamerách. V databázi není uloºen p°ímo obrázek, ale pouze cesta na místo na serverukde je obrázek uloºen. Aplikace vytáhne soubor ze serveru a pouºije ho v informa£nímokn¥ kamery jako její obrázek. V sou£asné dob¥ se na£ítají z databáze v²echny kamery, coºje velmi náro£né na pame´ mobilního za°ízení. V dal²ím vývoji aplikace se tento problémvy°e²í nahráním kamer pouze z okolí sou£asné lokace p°ístroje.
• P°i zobrazení obrázku kamery - jako parametr se nastavuje název souboru s obrázkemkamery, na kterou uºivatel poklepal. Tento obrázek se zobrazí na obrazovce mobilního za-°ízení.
P°i vytvá°ení poºadavk· na server jsme narazili na zajímavý problém. Pokud byl poºadavekvytvá°en p°ímo v dané aktivit¥, tak tento poºadavek ne²el poslat na server. D·vod byl ten, ºeod ur£ité verze Android API ne²el poslat poºadavek v hlavním vlákn¥ aplikace. Pomocí t°ídyAsyncTask 3 lze jednodu²e provád¥t operace v jiném vlákn¥ aplikace, ve kterém se provede odeslánípoºadavku na server.
3http://developer.android.com/reference/android/os/AsyncTask.html
13
5 | Problémy p°i implementaci ap-likace
S problémy jsme se setkávali tém¥° nep°etrºit¥. Verze, kterou te¤ prezentujeme, se od verze kterouodevzdáme sdruºení IuRe je²t¥ trochu li²í práv¥ proto, ºe jsme se n¥které z problém· zatímrozhodli ignorovat (pokud p°ímo nenaru²ují chod aplikace) a vy°e²íme je p°ed odevzdáním ap-likace sdruºení. Tyto problémy jsou v¥t²inou spojeny s vytíºením serveru a p°ípadném zahlcení,pokud by se do databáze £asem nahrálo hodn¥ dat a obrázk·. �e²ení je nasnad¥:
• Naindexování databáze.
• Cachování obrázk·.
• Pouºívání BLOBu pro obrázek místo adresy umíst¥ní na serveru.
Tyto úkony provedeme p°ed �nálním odevzdáním aplikace. Vzhledem k pokro£ilosti t¥chto tech-nik si myslíme, ºe jsou nad rámec obsahu projektu informatika 2, ale máme chu´ na aplikacipracovat dál.
Samoz°ejm¥ jsme se p°i tvorb¥ aplikaci setkali s v¥t²ím po£tem problém·, ale ty byly bu¤popsány v jiné £ásti této dokumentace nebo vy°e²eny.
14
6 | Záv¥r
Výsledkem na²i práce je aplikace pro p°ístroje s opera£ním systémem Android, vyvinutá proob£anské sdruºení IuRe.
P°estoºe jsme s vývojovým prost°edím pro tuto platformu nem¥li ºádné zku²enosti, bohatádokumentace tématu a propracované prost°edí IDE Eclipse umoº¬uje programování i nová£k·mv oboru. P°esto je stále mnoho prostoru pro zlep²ování a proto, ºe se vývoji aplikace budemev¥novat i nadále, není verze odevzdávaná v rámci p°edm¥tu �nální. V budoucnosti bude p°ed¥lánagra�cká stránka aplikace. Z d·vod· sníºení datové náro£nosti bude implementována metoda, kterástáhne umíst¥ní kamer pouze v bliº²ím okolí. Dal²ím nezbytností je zabezpe£ení aplikace protizneuºitelnosti, aplikováním £asového omezení vstupu nových kamer z p°ístroje, který bude moºnédále identi�kovat unikátním kódem. Nakonec bude pod technickým zázemím organizace spu²´enserver pro komunikaci.
P°i práci na projektu jsme osobn¥ ocenili praktický dopad aplikace, technickou náro£nost a novézku²enosti s vývojem mobilní aplikace. Zadání bylo spln¥no s dv¥ma výjimkami. Jednou z nich jekomunikace mezi aplikací a databází pomocí php skript·. Místo nich jsme pouºili Apache Tomcat
a javovské servlety, protoºe se jedná o mnohem lep²í °e²ení. Druhou výjimkou je nahrávání kamer zaplikace rovnou do databáze OpenStreetMap. To není z technického hlediska úpln¥ moºné a protojsme se rozhodli tento problém obejít ukládáním kamer do databáze na na²em serveru, do kteréjsou naimportovány i data z OpenStreetMap.
15
7 | Seznam zdroj·
Web
• PostgreSQL 9.1.3 Documentation. POSTGRESQL GLOBAL DEVELOPMENT GROUP.Dokumentace PostgreSQL [online]. 2011 [cit. 2013-05-13].Dostupné z: http://www.postgresql.org/�les/documentation/pdf/9.1/postgresql-9.1-A4.pdf
• STACK EXCHANGE INC. Stack Over�ow [online]. [cit. 2013-05-13].Dostupné z: http://stackover�ow.com/
• REFSNES DATA. W3Schools [online]. 1999 [cit. 2013-05-13].Dostupné z: http://www.w3schools.com/
• GOOGLE INC. Google Developers [online]. 2011 [cit. 2013-05-13].Dostupné z: https://developers.google.com/
• POSTGRESQL GLOBAL DEVELOPMENT GROUP. PostgreSQL [online]. 1996 [cit. 2013-05-13].Dostupné z: http://www.postgresql.org/
• WIKIMEDIA. Wikipedia [online]. 2001 [cit. 2013-05-13].Dostupné z: http://www.wikipedia.org/
• LARS VOGEL. Vogella [online]. [cit. 2013-05-13]
• ANDROID SNIPPETS. AndroidSnippets.com [online]. [cit. 2013-05-14].Dostupné z: http://www.androidsnippets.com/
• VIKAS PATEL Vikas Patel's blog [online]. [cit. 2013-05-14].Dostupné z: http://vikaskanani.wordpress.com/
Pod¥kování
D¥kujeme za praktické rady k jav¥ a serveru od pana doktora Pytla.
16