eské vysoké u£ení technické v Praze Fakulta 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 kartograe K153
Obsah
1 Úvod
3
2 Mobilní aplikace Mapa Kamer
5
2.1
P°íprava prost°edí Eclipse pro vývoj Android aplikací
2.2 2.3
2.4
. . . . . . . . . . . . . . . .
5
Projekt Osmdroid
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
Pouºívání aplikace
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1
P°idat kameru
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2
Zobrazit mapu kamer
2.3.3
O projektu
7 7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Základy vývoje aplikací pro Android . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3 Databáze
11
4 P°ipojení k databázi na serveru
12
4.1
Java Servlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.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ím IuRe Iuridicum Remedium. Sdruºení se zabývá ochranou soukromí a lidskými právy. Na svých
1 zve°ej¬ují mimo jiné výherce ankety Big brother awards nebo webovou aplikaci 2 mapa kamer , ve které zobrazují ve°ejná místa pokrytá kamerovými systémy. stránkách
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 zobrazování kamer, ale potýkalo se s nedostatkem pracovních kapacit, proto na²i bezplatnou nabídku ke spolupráci rádi p°ijali. Základ aplikace byl jiº p°ipraven, ale nespl¬oval ani jejich ani na²e o£ekávání. Aplikace byla zaloºena na
Google Maps a nem¥la v pozadí ani databázi, ani server. I o
to jsme se tedy museli postarat.
1 2
www.iure.org www.mapakamer.cz 3
Android. Jazykem b¥ºn¥ pouºívaným pro tvorbu Eclipse, do kterého je v²ak pro Android Developer Tools.
Aplikace je zacílena na mobilní opera£ní systém aplikací pro
Android
je
Java.
Pouºili jsme vývojové prost°edí
tvorbu mobilních aplikací pot°eba doinstalovat
Jako podkladová mapa byly pouºity rastry z opensourcového projektu uchovávání informací o kamerách byla pouºita databáze
Java,
3
PostgreSQL
OpenStreetMap3 .
napsána webová aplikace umoº¬ující komunikaci mezi mobilním za°ízením a databází.
www.openstreetmap.org 4
Pro
a dále byla, op¥t v jazyce
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íme o p°íprav¥ prost°edí
Eclipse
projektu
který slouºí k pouºívání map projektu
Osmdroid1 ,
Android, s pouºíváním OpenStreetMap v Androidu a o tom,
pro vývoj mobilních aplikací pro systém
jak do databáze p°idat novou kameru. Na záv¥r kapitoly se zmíníme o speciká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
IDE
Eclipse Android STK i do ADT Bundle.
poskytuje v²e, co je pot°eba k vývoji aplikací pro Android, v£etn¥
s vestav¥ným ADT (Android
2
Developer Tools).
Je moºné nainstalovat
existujícího IDE , ale zde se budeme zabývat instalací celého balí£ku
Po rozbalení do zvoleného adresá°e sta£í otev°ít adresá° adt-bundle-
/eclipse/ a spustit 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
1 2
Window → Android SDK Manager,
http://code.google.com/p/osmdroid/ http://developer.android.com/sdk/installing/index.html 5
ke správ¥ emulátoru potom
Window
→ Android Virtual Device Manager. K bezproblémovému chodu aplikace pot°eba nastavit jako cílové prost°edí Google APIs v poslední verzi (17). Nejnov¥j²í verze
Google API
v emulátoru je
v nabídce pravd¥podobn¥ nebude. K její instalaci je t°eba otev°ít
Window → 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. To
se musí ud¥lat ru£n¥, protoºe emulátor nemá ºádné fyzické GPS za°ízení. ze to ud¥lat dv¥ma zp·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¥l emulátor chovat jako mobilní za°ízení v poloze nastavené t¥mito sou°adnicemi.
Pozor: nastavením Menu → Set-
GPS sou°adnic není v za°ízení "zapnut"GPS modul. GPS se zapíná v nastavení (
tings → Location access → GPS satellites). 2.2
Projekt Osmdroid
V Android SDK existuje mapová podpora pro Google Maps, protoºe Android pat°í také spole£nosti Google. Pro pouºití OpenStreetMap v aplikaci existuje více moºností, krom¥ námi pouºitého Osmdroid lze pouºít nap°íklad renderovací knihovnu MapsForge3 .
Osmdroid
Balí£ek
umoº¬uje pouºívání nativních metod pro zobrazování
zování dat z projektu
OpenStreetMap.
vycentrování nebo nastavení hladiny zoom, se pouºívají metody knihovny ekvivalentní metody z balí£ku
Google Maps
k zobra-
V n¥kterých p°ípadech, jako je t°eba zobrazení mapy, její
google.maps.
Osmdroid
p°esn¥ jako
V n¥kterých jiných p°ípadech jsou t°ídy pon¥kud
odli²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í na marker v map¥. Pro tento ú£el jsme vytvo°ili t°ídu
Od pouºívání
surveillance
ImageOverlayItem.
OpenStreetMap na úkor Google Maps jsme si slibovali moºnost vyuºití vrstvy OpenStreetMap, která obsahuje pom¥rn¥ velké mnoºství kamer sle-
z databáze
dujících ve°ejný prostor a která byla pouºita ve webové aplikaci Mapa Kamer a z velké míry i dopl¬ována díky aktivitám sdruºení IuRe. K zobrazování vrstvy jsou ve webové aplikaci pouºity
OpenLayers,
které ale neexistují ve verzi pro mobilní za°ízení, jedin¥ v prohlíºe£i. Pokou²eli jsme
se nalézt n¥jaké °e²ení jak pouºít data z této vrstvy a nakonec jsme se rozhodli pro export dat z databá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°ímo s databází
OpenStreetMap.
O databázi i samotném nahrávání nové kamery po technické stránce
se 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, dostane uºivatel moºnost GPS zapnout a zlep²it tak p°esnost zam¥°ení polohy.
3
http://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 Do °ádku
popis kamery
GPS lokace.
uºivatel napí²e n¥co o kame°e. M¥lo by se to týkat faktických v¥cí, jako
nap°íklad kdo je provozovatelem kamery, up°esn¥ní její polohy nebo nap°íklad to, jestli kamera pouze zobrazuje, nebo i nahrává záznam. Poslední v¥c kterou je ke kame°e moºné p°idat je fotograe. 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 na aktuálních sou°adnicích vycentrována mapa
OpenStreetMap. Pokud GPS zapnutá není, zobrazí se
stejný 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ýt
zapnutá. Pro ur£ení polohy z GPS je pouºit objekt tel rozhodne nechat GPS vypnutou (a zvolí
networkLocListener.
Ne),
gpsLocListener.
V p°ípad¥, ºe se uºiva-
je poloha ur£ována ze sít¥ pomocí objektu
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é SELECT vytaºeny kamery a zobrazeny s markerem se symbolem cctv4 . P°i poklepání
pomocí p°íkazu
na kameru se otev°e informa£ní okno s podrobnostmi o kame°e. Krom¥ popisu m·ºe obsahovat i fotograi.
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 je postaven 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á Manifest. Ten obsahuje název balí£ku, verze systému pro které
jeden xml soubor pojmenovaný
4
http://mapicons.nicolasmollet.com/markers/oces/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 aktivit pouºí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 a v²í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
Obrázek 2.8: ivotní cyklus aktivity
9
a
AboutActivity.
Java, nebo je moºné vzhled nasEclipse je moºné xml vytvá°et pomocí
Kaºdá aktivita m·ºe mít vzhled tvo°en bu¤ kódem v jazyce tavit pomocí xml souboru v
res → layout.
V prost°edí
gracké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 chce
zobrazit, 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 • onStart
a
• onResume
a
onDestroy
onStop a
onPaused
10
3
|
Databáze
Jako databáze na které aplikace pojede byla zvolena databáze
•
Jedná se o open source projekt.
•
Projekt
OpenStreetMap
pouºívá jako databázi také
PostgreSQL.
D·vody jsou dva:
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.
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. Schéma obsahovalo data
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 identikátor, informace o kame°e, sou°adnice kamery, které byly
naimportovány ze schématu
osm
a navíc jsme p°idali atribut
image,
který zatím obsahuje adresu
1
obrázku na serveru. Do budoucna plánujeme obrázky ukládat jako BLOB , protoºe p°i v¥t²ím mnoº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 naindexovat. Indexy v databázi by ji mohli výrazn¥ zrychlit a zvlá²t¥ u pomalej²ích za°ízeních a za°ízeních s men²í kapacitou pam¥ti to dost pom·ºe rychlému chodu aplikace. Principem indexování je p°enesení pam¥´ové a kapacitní náro£nosti ze za°ízení na server, coº by p°i porovnání výpo£etní kapacity serveru a výpo£etní kapacity mobilního za°ízení nem¥lo v·bec vadit.
1
Binary 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²ím poºadavkem bylo na£ítat data z databáze a zárove¬ do ní data i vkládat. Zkusili jsme n¥kolik zp·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 skript
na serveru. Ten by pracoval s databází a provád¥l poºadované operace nad daty. Tento zp·sob se ná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 se rozhodli pouºít
4.1
Java Servlety.
Java Servlet
Servlet je t°ída v jazyce Java, která roz²i°uje moºnosti serveru. Servlet umí zpracovat poºadavek
request
a odpov¥d¥t
response. Musí b¥ºet na serveru, který zvládne zpracovat programovací Apache Tomcat 71 . Ten implementuje verzi Servlet 3.0, jehoº moºnosti
jazyk Java. Pouºili jsme
jsme 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í do
databá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°ipojení 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-
2
likují .
Z d·vod· popsaných vý²e jsme vytvo°ili jednoduchou webovou aplikaci obsahující následující dva servlety.
•
Servlet
GetFromDB.java,
získaného z
který se stará o získávání dat z databáze. Podle parametru
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í. Pokud není ºá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
1 2
http://tomcat.apache.org/ Konzultace s Ing. Janem Pytlem Ph.D. 12
Servletu 3.0. P°í sestavování poºadavku o kame°e v mobilní aplikaci byl pouºit objekt MultipartEntity. Ten umoº¬uje poslat jedním http postem jak samotný text, tak i soubory, coº jsou v na²em p°ípad¥ fotograe 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 serveru kde je obrázek uloºen. Aplikace vytáhne soubor ze serveru a pouºije ho v informa£ním okn¥ 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ém vy°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ázkem
kamery, 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ºadavek vytvá°en p°ímo v dané aktivit¥, tak tento poºadavek ne²el poslat na server. D·vod byl ten, ºe od ur£ité verze Android API ne²el poslat poºadavek v hlavním vlákn¥ aplikace. Pomocí t°ídy
AsyncTask 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.
3
http://developer.android.com/reference/android/os/AsyncTask.html 13
5
|
Problémy p°i implementaci aplikace
S problémy jsme se setkávali tém¥° nep°etrºit¥. Verze, kterou te¤ prezentujeme, se od verze kterou odevzdáme sdruºení IuRe je²t¥ trochu li²í práv¥ proto, ºe jsme se n¥které z problém· zatím rozhodli ignorovat (pokud p°ímo nenaru²ují chod aplikace) a vy°e²íme je p°ed odevzdáním aplikace 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 technik si myslíme, ºe jsou nad rámec obsahu projektu informatika 2, ale máme chu´ na aplikaci pracovat 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á pro ob£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·m v oboru. P°esto je stále mnoho prostoru pro zlep²ování a proto, ºe se vývoji aplikace budeme v¥novat i nadále, není verze odevzdávaná v rámci p°edm¥tu nální. V budoucnosti bude p°ed¥lána gracká 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 proti zneuºitelnosti, aplikováním £asového omezení vstupu nových kamer z p°ístroje, který bude moºné dále identikovat unikátním kódem. Nakonec bude pod technickým zázemím organizace spu²´en server 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 je komunikace 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 z aplikace rovnou do databáze
OpenStreetMap. To není z technického hlediska úpln¥ moºné a proto
jsme 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 Overow
[online]. [cit. 2013-05-13].
Dostupné z: http://stackoverow.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/
Vogella
•
LARS VOGEL.
•
ANDROID SNIPPETS.
[online]. [cit. 2013-05-13]
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