Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

3. diel - Android programovanie - Android API a štruktúra projektu

Čo je to Android API?

Android API by si určite hneď na úvod žiadalo podrobnejšie vysvetlenie. Verzia API určuje, aké triedy a funkcionalitu môžeme pri tvorbe našej aplikácie použiť. Ak zvolíme API napríklad verzie 15, aplikácia pobeží na všetkých telefónoch s API 15 až napr. 29 (kde 29 je tu aktuálne posledná verzia). Ovšem používateľ so starším zariadením s API 14 aplikáciu nespustí.

Všeobecne platí, že čím vyššia API použijeme, tým viac máme pri programovaní možností. Nielen, že budeme môcť využiť u vyššieho API napríklad pokročilé animácie, ale tiež si programovanie uľahčíme. U staršieho API musíme napr. Riešiť zákaz zmeny orientácie alebo možnosť uspávanie aktivity priamo v Java kódu, čo je značne zložitejšie oproti riešenie rovnakého problému vo vyššom API, kde stačí niekedy aj jeden riadok v XML kódu.

V prípade našej prvej aplikácie nám stačí nízke API. Ak zvolíme napr. API 10 (Android 2.3.3), naše aplikácie pôjde takmer všetkým. Z toho vyplýva, že čím nižšia API zvolíme, tým viac užívateľov bude môcť aplikáciu používať. Google ale vývojárov núti podporovať určité API pri pridanie novej aplikácie do Play a toto číslo sa stále zvyšuje (Pre rok 2020 je to API 29), takže nemôžeme zas voliť úplne nízke čísla. Ak by sme vyvíjali napríklad nejakú zložitejšie hru, alebo aplikáciu, ktorá potrebuje rôzne zložité animácie atď., Je lepšie zvoliť vyššiu API kvôli viac funkciám.

Nakoniec sa pred nami otvorí vývojové prostredie, v ktorom je pripravená jedna (hlavná) Aktivita (obrazovka), obsahujúce text "Hello World!".

Gui Android Studia

Na nasledujúcom obrázku si v rýchlosti ukážeme umiestnení niektorých dôležitých ovládacích prvkov Android Štúdiá:

Rozloženie Android Studio - Základy vývoja Android aplikácií v Jave

Sú to:

  1. Ponuka základných užívateľských komponentov, ktoré môžeme do otvoreného layoutu pretiahnuť.
  2. Component Tree - Stromové zobrazenie vložených komponentov do layoutu.
  3. Najväčšia časť zaberá náhľad vytváraného layoutu.
  4. Prepínacie tlačidlá, ktorými môžeme zobraziť iba náhľad layoutu, iba XML kód layoutu a alebo oboje zároveň.
  5. Ak v Component Tree vyberieme nejaký objekt, napr. Náš TextView, objaví sa nám tu výpis všetkých parametrov, ktoré môžeme komponente nastaviť. Všetky tieto parametre je možné nastavovať aj "ručne" priamo v XML.
  6. Tu je niekoľko rozbaľovacích menu s možnosťami zobrazenia náhľadu našej aplikácie. Sú to najmä:- Symbol otočenie zariadenia - Simulácia otočenie zariadení
    • Symbol telefónu s nápisom "Pixel" - Možnosť zobraziť layout podľa vybraných typov zariadení a ich parametrov
    • Zelená hlavička robota - Možnosť nastavenia verzia Android, pretože niekedy môže mať verzia API vplyv na vzhľad (môžeme prepnúť iba do tých verzií, ktoré máme stiahnuté v SDK Manageru)
    • Symbol oka - Okrem iného môžeme zobraziť aj okolité objekty (toolbar aplikácie a tlačidlá telefónu).
Tieto ikonky si preklikajte a vyskúšajte, čo vie;-)

Štruktúra projektu

Android Studio nám už pripravilo nejakú základnú štruktúru projektu i kód. Poďme si ju popísať. Vidíme ju v ľavej časti okna vývojového prostredia.

Štruktúra nového Android projektu v Android Studio - Základy vývoja Android aplikácií v Jave

Na obrázku je vidieť zobrazená štruktúra v režime "Project". Iné režimy môžeme prepínať v hornej časti nad oknom so štruktúrou projektu. Ak nám stačí zjednodušená verzia, nad štruktúrou prepneme do "Android".

Kľúčové je pre nás zložka app/, ktorá sa ďalej vetví na:

  • build/ - Sem si Android Studio samo ukladá potrebnej predkompilované časti kódov. Nás táto zložka nemusí zaujímať.
  • libs/ - Sem sa ukladajú knižnice našej aplikácie, ak by sme chceli pridať nejakú funkčnosť nášmu projektu.
  • src/ - Obsahuje všetky zdrojové súbory v niekoľkých podadresároch, z ktorých nás bude zaujímať hlavne zložka main/.

Zložka main/ sa ďalej vetví na java/ a res/:

  • java/ - Obsahuje súbory zdrojového Java (Kotlin) kódu usporiadané do balíčkov. V rozsiahlejšom projekte je dobré rozdeliť zdrojový kód aplikácie do viac balíčkov - napríklad pre aktivity, objekty, fragmenty, Listener, služby atď., Ale o tom až neskôr.
  • res/ - Tu sú uložené všetky externé zdroje aplikácie (resources), ako sú obrázky, súbory XML s rozložením okná, reťazce, animácie, definície farieb, zvukové súbory, fonty atď. Táto zložka obsahuje ďalšie podzložky: drawable - Súbory s obrázkami, súbory .xml s definíciou vzhľadu časťou komponentov (napr. ich pozadí), súbory .svg atď., ktoré sú použité v aplikácii. Môžu tu byť aj ďalšie zložky pre alternatívne zdroje pre špecifické konfigurácie obrazovky (podľa hustoty pixelov, rozlíšenie obrazovky). Systém Android si potom vyberie ten variant obrázku, ktorá najviac vyhovuje parametrom displeja konkrétneho zariadenia. Zložky s týmito alternatívnymi zdrojmi môžu byť pomenované ako drawable-hdpi/, drawable-mdpi/, drawable-xhdpi/, drawable-xxhdpi/, drawable-xxxhdpi/

    layout/ - Tu sa nachádza XML súbory, v ktorých definujeme vzhľad používateľského rozhrania rôznych častí aplikácie. V novo vytvorenom projekte Hello World! sa jedná o jeden súbor s názvom activity_main.xml, ktorý obsahuje rozvrhnutie užívateľského rozhrania hlavné Aktivity (hlavného okna) budúce aplikácie.

  • drawable - Súbory s obrázkami, súbory .xml s definíciou vzhľadu časťou komponentov (napr. ich pozadí), súbory .svg atď., ktoré sú použité v aplikácii. Môžu tu byť aj ďalšie zložky pre alternatívne zdroje pre špecifické konfigurácie obrazovky (podľa hustoty pixelov, rozlíšenie obrazovky). Systém Android si potom vyberie ten variant obrázku, ktorá najviac vyhovuje parametrom displeja konkrétneho zariadenia. Zložky s týmito alternatívnymi zdrojmi môžu byť pomenované ako drawable-hdpi/, drawable-mdpi/, drawable-xhdpi/, drawable-xxhdpi/, drawable-xxxhdpi/
  • layout/ - Tu sa nachádza XML súbory, v ktorých definujeme vzhľad používateľského rozhrania rôznych častí aplikácie. V novo vytvorenom projekte Hello World! sa jedná o jeden súbor s názvom activity_main.xml, ktorý obsahuje rozvrhnutie užívateľského rozhrania hlavné Aktivity (hlavného okna) budúce aplikácie.
  • mipmap/ - Obsahuje ikony aplikácie, ktoré sú rovnako ako v priečinku drawable/ rozdelené do niekoľkých alternatívnych typov podľa rôznych parametrov displejov rôznych zariadení (mipmap-hdpi/, mipmap-mdpi/, mipmap-xhdpi/, mipmap-xxhdpi/, mipmap-xxxhdpi/). values/ - Do tejto zložky ukladáme súbory XML, ktoré definujú jednoduché hodnoty, ako sú reťazce, polia, celé čísla, rozmery, farby, štýly atď .. Na ne potom odkazujeme z kódu aplikácie alebo z XML návrhu používateľského rozhrania.
  • values/ - Do tejto zložky ukladáme súbory XML, ktoré definujú jednoduché hodnoty, ako sú reťazce, polia, celé čísla, rozmery, farby, štýly atď .. Na ne potom odkazujeme z kódu aplikácie alebo z XML návrhu používateľského rozhrania.

activity_main.xml

Okno je teda definované v súbore res/layout/activity_main.xml. V tomto rozvrhnutie sa nachádza jeden TextView zobrazujúci text "Hello World!" TextView je, ako názov napovedá, komponenta pre zobrazenie textu.

strings.xml

V activity_main.xml je komponente TextView text nastavený týmto riadkom:

android:text="@string/hello_world"

Všimnite si, že text "Hello World!" tu nie je zapísaný priamo, ale ako odkaz @string, ktorý vedie na súbor res/strings.xml. Až tu je definované aký text má reťazec hello_world. Prečo texty do okna vkladáme tak zložito? Odpoveď je jednoduchá - keď sa v budúcnosti rozhodneme našu aplikáciu preložiť do iného jazyka, len odkážeme na iný súbor s textami a nebudeme musieť celú aplikáciu prepisovať. Preto sa tento štandardný spôsobu budeme držať a všetky texty aplikácie budeme mať na jednom mieste, v súbore res/strings.xml.

Ak sa pozrieme do onoho súboru res/strings.xml, nájdeme tu riadok:

<string name="hello_world">Hello World!</string>

Hodnota reťazca s názvom hello_world je teda "Hello world!" ;

Pre preloženie aplikácie do iného jazyka by potom stačilo pridať zložku values-cs/ a do nej prekopírovať strings.xml. V ňom by sme prepísali jednotlivé texty do češtiny (tu na hodnotu "Ahoj Svete! "). Aplikácia pri spustení na zariadenie, ktoré je v jazyku Čeština, potom bude ťahať hodnoty pre jednotlivé stringy z práve novo vytvoreného súboru.

AndroidManifest.xml

Ako posledný a najdôležitejší súbor tu máme manifest. Ten sa musí nachádzať v koreňovom adresári každej aplikácie a obsahuje informácie o našej aplikácii, ktoré odovzdá Androidu ešte predtým, než ju spustí. Manifest je teda vstupným bodom do každej aplikácie.

Nachádza sa tu jednotlivé aktivity a ich nastavenia, práva aplikácie, ikona atď. Všetky povolenia, napr. K prístupu na internet alebo oprávnenie k obrázkom galérie, ktorá aplikácia požaduje od užívateľa povoliť, sú vývojára definované práve v súbore AndroidManifest.xml. Ďalej môžeme v manifeste špecifikovať požiadavky aplikácie na hardware zariadenia. Ak vytvoríme aplikáciu, ktorá vyžaduje (deklaráciou v manifeste), aby zariadenie malo fotoaparát, nebude užívateľovi v obchode Google Play táto aplikácia zobrazená, ak jeho zariadenie nie je fotoaparátom vybavené. Z počiatku tento súbor upravovať nemusíme.

Teraz už poznáme všetko potrebné k tomu, aby sme skúsili našu prvú aplikáciu Hello World! spustiť.

V budúcej lekcii, Android programovanie - Spustenie aplikácie (zariadenia / emulátor) , pripravíme reálne zariadenie s Androidom na spustenie kalkulačky a tiež si vytvoríme virtuálne zariadenia v emulátora.


 

Všetky články v sekcii
Základy vývoja Android aplikácií v Jave
Preskočiť článok
(neodporúčame)
Android programovanie - Spustenie aplikácie (zariadenia / emulátor)
Článok pre vás napísal Jiří Frank
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje programování v C# a vývoji aplikací pro platformu Android a dalším věcem spojeným s Android OS
Aktivity