Image
29.6.2016 0 Comments

Programujeme pre Android /4.časť

Po stručnom úvode je čas na ešte stručnejšie predstavenie základných stavebných prvkov aplikácií písaných pre OS Android. Začneme opisom súborovej štruktúry a možností rozmiestnenia (layouts) grafických prvkov (widgets).

Poznámka: Vývoj budeme realizovať v IDE Android Studio (AS).

Súborová štruktúra aplikácie

Novú aplikáciu (projekt) vytvoríme v menu File -> New Project... Okrem nastavenia mena aplikácie (Application name), jej umiestnenia (Project location), cieľového SDK (Target SDK) a kompilácie (Compile with) nezmeníme nijaký iný parameter. Na začiatok nie je vhodné veľmi experimentovať, pretože pri nesprávnom zadaní, resp. selekcii niektorých parametrov sa nám môže veľmi ľahko stať, že aplikáciu nebude možné skompilovať.

V koreňovej zložke (project root directory) sa nám okrem iného automaticky vytvoria nasledujúce súbory a podzložky:

app/src/main/ Súbor XML obsahujúci atribúty aplikácie a jej komponentov (aktivít, služieb...)
AndroidManifest.xml
app/src/main/java/ Zdrojový súbor hlavnej (main) aktivity aplikácie s kódom Java
com/example/
názov_aplikácie/app/
MainActivity.java
app/libs Súbory JAR (Java ARchive) požadované aplikáciou
app/src/main/res Zložka s dátovými zdrojmi aplikácie (textové reťazce, obrázky, multimediálne súbory, rozmiestnenie grafických prvkov GUI...), ktoré budú priložené (packaged) ku skompilovanému balíčku aplikácie
app/build/source/r/ Automaticky generovaný kód Java obsahujúci triedu definujúcu konštanty zviazané s dátovými zdrojmi aplikácie
debug/com/example/
názov_aplikácie/app/
R.java
.gradle, gradle, Súbory používané zostavovacím systémom (builderom) Gradle
build.gradle,
*.properties a ďalšie
app/build Zložka na umiestnenie skompilovaných a ďalších súborov potrebných na prenos a spustenie aplikácie
app/build/classes Skompilované triedy Java
app/build/dex/ Spustiteľný súbor DEX vytvorený zo skompilovaných tried Java 
classes.dex
app/build/apk/ Zostavený balíček aplikácie zbalený pomocou kompresora ZIP, obsahujúci spustiteľný súbor classes.dex, skompilovanú verziu zdrojov resources.arsc, všetky nekompilované zdroje (napr. multimediálne súbory) a binárny formát súboru AndroidManifest.xml
app-debug-unaligned.apk

Všimnime si časť cesty k súboru MainActivity.java: com/example/názov_aplikácie/app. Ide o tzv. plne klasifikované meno triedy (FQCN – Fully Qualified Class Name), ktoré je takisto obsahom atribútu package, uvedeného v manifeste aplikácie. FQCN je jedinečný identifikátor aplikácie. Je dôležité vedieť, že Google Play ponúka iba jeden projekt (aplikáciu) s daným FQCN. Na jednom zariadení s OS Android nemôže byť nainštalovaných viacero balíčkov s tým istým FQCN.

Jedna z najdôležitejších menovaných zložiek je zložka s dátovými zdrojmi aplikácie. Jej podzložky obsahujú totožné dátové zdroje upravené pre konkrétne prípady. Napríklad v prípade rozdielneho rozlíšenia používaného smartfónmi a tabletmi sa tu ukladajú tie isté obrázky v rôznom rozlíšení od nízkeho (drawable-ldpi) až po extra veľké (drawable-xxxdpi). Ďalej sa tu nachádzajú zložky: layout –súbory XML definujúce rozmiestnenie grafických prvkov GUI, menu – XML špecifikácie menu, values – súbory XML obsahujúce alfanumerické reťazce...

Manifest aplikácií písaných pre OS Android

„Srdcom“ všetkých aplikácií písaných pre OS Android je tzv. manifest, resp. súbor AndroidManifest.xml. Tento súbor obsahuje okrem iného aj deklarácie aktivít a služieb ponúkaných aplikáciou. Ich vzájomným prepojením budujeme komplexný programový systém.

Obr. 1 Manifest vzorovej aplikácie

V prípade nami vytvorenej aplikácie je obsahom elementu manifest podelement application, ktorý ďalej obsahuje podelement activity. Tento element obsahuje názov triedy implementujúcej aktivitu (name), označenie aktivity (label) a podelement intent_filter. Ten opisuje podmienky, za akých bude daná aktivita zobrazovaná.

Kód Java verzus XML

Prv ako sa začneme venovať úprave GUI, musíme uviesť spôsob, ako Android rieši prístup k prezentačnej vrstve aplikácií. Skúsenejší programátori sa už určite stretli so striktným oddeľovaním prezentačnej vrstvy od aplikačnej. Výhody, resp. nevýhody tohto prístupu nebudeme rozoberať. Faktom však je, že Android oddeľuje detaily týkajúce sa rozmiestnenia zobrazovaných grafických prvkov od aplikačného kódu. GUI síce možno plnohodnotne spravovať pomocou programovej logiky, ale Android preferuje návrh pomocou XML. Preto je všetka správa zobrazenia (view) umiestnená do súborov XML, ku ktorým má prístup rovnako programový kód, ako aj príslušné editory grafického návrhu.

Kontajnery

Zrejme prvá vec, o ktorú má programátor grafickej aplikácie záujem, je úprava GUI. AS nám v tomto smere poskytuje vynikajúci nástroj vo forme tzv. Design módu. Dostaneme sa k nemu tak, že zo zložky app/src/main/res/layout vyberieme súbor s XML definíciou GUI, napr. activity_main.xml, a v spodnej časti okna klikneme na záložku Design.

Obr. 2 Design mód s paletou rozmiestnení, grafických prvkov, textových polí, kontajnerov a ďalších prvkov GUI

S úpravou GUI súvisia tzv. kontajnery, ktoré sú určené na štruktúrovanie widgetov. Sú to kolekcie, ktoré definujú vzájomné usporiadanie grafických prvkov nachádzajúcich sa na konkrétnej obrazovke (v danom pohľade – view). AS ponúka nasledujúce základné kontajnery na usporiadanie widgetov:

FrameLayout Všetky prvky sa vykreslia v rovnakom priestore obrazovky s možnosťou definície ich zarovnania (gravity) vzhľadom na kontajner
LinearLayout Horizontálne, resp. vertikálne zoradenie prvkov, ktoré sa zobrazia v danej postupnosti za sebou
TableLayout Zoradenie prvkov do tabuľky s možnosťou preklenutia stĺpcov podobne ako v prípade HTML
GridLayout Všeobecnejšia verzia zoradenia prvkov do tabuľky, pri ktorej možno prvky umiestňovať na ktorékoľvek miesto v rámci pravouhlej siete
RelativeLayout Zoradenie prvkov je závislé od zoradenia okolitých prvkov
ScrollView Špeciálny kontajner, do ktorého možno zabaliť (wrap) iné kontajnery, ktorých obsah bude automaticky posúvaný

 

Zobrazit Galériu
Autor: Marek Sopko

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

Mohlo by Vás zaujímať

Ako na to

Tipy a triky: Ako na snímku obrazovky na akomkoľvek počítači s Windows?

02.12.2016 00:13

Ak snímky obrazovky robíte často apotrebujete napríklad funkcie na posun stránok alebo snímanie zobrazenia pri vyššom rozlíšení displeja, zrejme používate nejakú špecializovanú aplikáciu. Väčšina použ ...

Ako na to 1

Tipy a triky: Ako aplikácii prednastaviť spúšťanie s administrátorskými právami?

30.11.2016 00:10

Väčšina aspoň trochu skúsenejších používateľov vie, že aj keď máte na operačnom systéme Windows vytvorený administrátorský účet, aplikácie pre bezpečnosť nefungujú vždy splnými administrátorskými práv ...

Ako na to 2

Tipy a triky: Ako vypnúť uzamykaciu obrazovku vo Windows 10?

29.11.2016 00:10

Rozčuľuje vás, že pred každým prihlásením doúčtu vášho počítača musíte prejsť uzamykacou obrazovkou? Windows 10 na tejto obrazovke ukazuje čas,dátum anejakú zaujímavú fotografiu zrôznych kútov sveta. ...

Žiadne komentáre

Vyhľadávanie

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

Najnovšie videá