Image
30.6.2016 0 Comments

Programujeme pre Android /9. časť

Táto časť seriálu bude tvoriť teoretický úvod k pomerne rozsiahlemu bloku, vktorom sa budeme venovať interakcii medzi aplikáciami písanými pre Android aúdajmi uloženými aspravovanými databázou MySQL. Napriek tomu, že Android dokáže pristupovať ktakto uloženým údajom priamo, tento postup sa neodporúča. Rovnako sa neodporúča riešiť akékoľvek sieťové prenosy vhlavnom programovom vlákne. Toto je príznačná črta Androidu, ktorý sveľkou výhodou využíva na splnenie podobných úloh ďalšie tzv. sprostredkujúce (intermediate) prvky – vopred pripravené triedy – služby. Vnašom prípade pôjde najmä oskripty PHP anástroje pracujúce s formátom JSON (JavaScript Object Notation).

Databáza MySQL používa na správu svojho obsahu (uložených údajov) príkazy jazyka SQL. Základné úlohy, ktoré potrebujeme snašimi údajmi vykonávať, sú uloženie, aktualizácia, načítanie azmazanie údajov ztabuliek databáz. Pretože Android neponúka funkcie, ktoré by dokázali plniť uvedené úlohy priamo, využíva služby tzv. interpretera, ktorým je vtomto prípade jazyk PHP av ňom písané skripty. Pomocou nich dokážeme sprístupniť konkrétnu databázu, jej tabuľku anakoniec údaje uložené vkonkrétnom riadku (row) tabuľky. Výsledok práce skriptu PHP, ktorý získava údaje zriadkov tabuľky, sa ukladá (kóduje) vo formáte JSON, ktorý následne spracúva (zobrazuje) androidová aplikácia.

Prvky vstupujúce do procesu interakcie medzi androidovými aplikáciami adatabázou MySQL

Postup sprístupnenia údajov uložených v databáze MySQL sa začína odoslaním požiadavky zo strany androidovej aplikácie smerom ksieťovej službe (skriptu) PHP, ktorá využitím príslušných príkazov SQL vytvorí tzv. požiadavku SQL (query) smerovanú príslušnej databáze. Tento všeobecný postup sa aplikuje vo všetkých prípadoch, teda rovnako pri vložení (INSERT), aktualizácii (UPDATE), načítaní (SELECT) ajzmazaní (DELETE) údajov ztabuľky. Spätná väzba smerom od databázy MySQL kandroidovej aplikácii je sprostredkovaná odoslaním (echoing) údajov uložených vo formáte JSON. Uvedené údaje možno následne získať vprocese tzv. analýzy (parsing) odpovede JSON.

Databáza

Opísať postup, ako pripraviť prostredie na fungovanie databázy MySQL vspojení sPHP awebovým serverom, nie je zámerom tohto článku. Takto pripravenú kombináciu nástrojov poskytuje množstvo internetových providerov adokážeme si ju takisto ľahko pripraviť svyužitím tzv. LAMP, resp. WAMP (Linux/Windows Apache MySQL PHP). My sa sústredíme na kroky týkajúce sa klientskej strany – androidovej aplikácie. Zpohľadu databázy nás zaujíma iba jediná vec, ato vytvorenie príslušnej databázy, jej tabuľky vrátane naplnenia údajmi a,samozrejme, nastavenie príslušných prístupových práv (privileges). Treba pripomenúť, že vnašom prípade nebudeme pracovať slokálnou databázou MySQL, ale sdatabázou uloženou na vzdialenom serveri.

PHP

Po vytvorení (a naplnení) tabuľky prístupnej cestou používateľa snastavenými právami nasleduje príprava príslušných skriptov PHP. Tie sú uložené vjednoduchom súbore PHP, ktorého obsah (príkazy) interpretuje Apache server. Obsah súboru PHP nebudeme detailne rozoberať (bude súčasťou vzorového príkladu). Dôležité je uviesť, že musí vprvom rade obsahovať názov servera, databázy amusia vňom byť zadané privilégiá na prístup kjej obsahu (tabuľkám) pre konkrétneho používateľa. Vytvorenie tabuľky (tabuliek) ajej (ich) naplnenie údajmi možno realizovať buď pomocou PHP, alebo aj priamo pomocou príkazov SQL zadaných v niektorom znástrojov určených na to (napr. phpMyAdmin). Znášho pohľadu je dôležitejší výstup skriptu PHP, ktorý zabalíme (json_encode) do formátu JSON.

JSON (http://www.json.org)

JSON (RFC 4627) je jednoduchý textový formát určený na ukladanie avýmenu údajov votvorenej forme. Tento formát používa konvencie rodiny jazykov C. Údaje kóduje vtvare { názov : hodnota } (objekt, záznam, štruktúra, slovník, hašovacia tabuľka, indexovaný zoznam, asociatívne pole) alebo vtvare zoznamu zoradených hodnôt (pole, vektor, zoznam, sekvencia).

Android

Príprava androidovej aplikácie schopnej načítať údaje uložené vdatabáze MySQL prebieha vnasledujúcich krokoch:

1. Prvým zdôležitejších krokov je povolenie prístupu na internet vsúbore AndroidManifest.xml:

2. Zdôvodu analýzy údajov uložených vo formáte JSON použijeme príslušné objekty triedy JsonReader. Tá je určená na čítanie (analýzu) údajov uložených (zakódovaných) v prúde JSON (stream). Údajmi pritom môžu byť reťazce, čísla, logické stavy, resp.hodnoty null. Údaje nie sú smerované priamo koncovým premenným, ale medzistupeň je sformovaný pomocou triedy BufferedReader, ktorá zvyšuje výkon (performance) čítania údajov. Príprava na odosielanie a príjem údajov na server, resp. zo servera je realizovaná spustením „prúdového zapisovača“ (StreamWriter) a„prúdového čítača“ (StreamReader), ktorého výstup je smerovaný práve na spomínaný BufferedReader. Na spracovanie prúdu obsahujúceho polia používame metódy beginArray() – hasNext() – endArray(). Naopak, pri spracovaní prúdu obsahujúceho objekty používame metódy beginObject() – hasNext() – endObject().

3. Ďalšia nemenej dôležitá úloha je implementácia asynchrónnej práce (AsyncTask) so zdrojom údajov nachádzajúcim sa vexternej sieti (na internete). AsyncTask vytvára samostatné vlákno (thread) určené na vykonanie (execute) časovo náročnejších úloh na pozadí.

4. Pri odosielaní požiadaviek (informácií) príslušnému webovému serveru (httprequest, httppost), na ktorom beží skript PHP, používame HTTP metódu POST. Na kontaktovanie webového servera sa používajú triedy URLConnection (vytvorenie spojenia na čítanie, resp. zápis) aURLEncoder (formátovanie posielaného reťazca). Pri HTTP sa použije variant HttpURLConnection,v prípade HTTPS variant HttpsURLConnection.

obr2.bmp

 

Schematický diagram príjmu údajov zdatabázy MySQL

 

Autor: Marek Sopko

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

ITPro

Linux súkromne i pracovne v2.0 (14. časť): Small Business Server

09.11.2016 14:57

Pojem Small Business Server (malý firemný server) začala používať spoločnosť Microsoft ešte v roku 2000 na označenie servera, ktorý ­dokázal plniť úlohy niekoľkých samostatných serverov. Aplikačná vrs ...

ITPro

Industry 4.0: Fikcia alebo už realita?

09.11.2016 14:52

Štvrtá priemyselná revolúcia je pomenovanie rozsiahlych zmien prudko vstupujúcich do súčasného priemyslu. Nositeľom týchto zmien je digitalizácia výroby a optimalizácia všetkých podnikových procesov v ...

ITPro

Vývoj aplikácií UWP pre Xbox One II.

09.11.2016 14:47

V predošlej časti sme ukázali postup, ako si ­vytvoriť vývojársky účet a aktivovať vývojársky režim na hernej konzole Xbox One, aby ste mohli testovať svoje aplikácie. Výhodou hernej konzoly Xbox je v ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá