Once upon a time...
Ciele
- Oboznámiť sa s modulárnym vývojovým prostredím Eclipse.
- Prispôsobiť vývojové prostredie pre tvorbu aplikácií na platforme Android.
- Vytvoriť virtuálne Android zariadenie (AVD).
- Vytvoriť jednoduchý projekt.
- Spustiť vytvorený projekt v emulátore.
Úvod
Na tomto cvičení si pripravíte vývojové prostredie pre tvorbu aplikácií
na platforme Android vrátanie vytvorenia virtuálneho Android zariadenia.
Pripomeniete si základné komponenty a štruktúru aplikácií a následne
tieto poznatky využijete pri tvorbe jednoduchého 'Hello Android' projektu.
Tento projekt bude tvoriť základ pre ďalšie cvičenia a jeho finálna verzia
bude všetkým určite veľmi dobre známa hra -
puzzle 15.
Postup
-
Cieľom tejto úlohy je prispôsobiť vývojové prostredie pre tvorbu Android aplikácií.Úloha: Stiahnite a nainštalujte modulárne vývojové prostredie Eclipse. [oficiálna stránka]Úloha: Stiahnite a nainštalujte štartovací balík Android SDK. [oficiálna stránka]Úloha: Nainštalujte ADT(Android Development Tools) plugin pre Eclipse podľa inštrukcií.Úloha: Pridajte referenciu na balík SDK v Eclipse Window -> Preferences v záložke Android.Úloha: Oboznámte sa s možnosťami SDK/AVD manažéra v Eclipse Window -> Android SDK and AVD Manager.Poznámka: Je nevyhnutné mať v prostredí stiahnutú minimálne 1 platformu, aby bolo možné kompilovať budúce vytvorené projekty a spúšťať aplikácie v emulátore.Poznámka: Nezabúdajte na pravidelnú kontrolu aktualizácií pre nainštalované nástroje a platformu.
-
Táto úloha slúži na vytvorenie a oboznámenie sa s emulátorom.Úloha: Vytvorte nové virtuálne zariadenie prostredníctvom SDK/AVD manažéra Virtual devices -> New.Pre testovacie účely použite nasledujúcu konfiguráciu:
- Target: Android 2.2 - API Level 8
- SD Card: 64 MiB
- Skin: HVGA
Poznámka: Je nutné brať do úvahy API level vytváraného projektu, teda cieľová platforma virtuálneho zariadenia určeného na emuláciu daného projektu musí byť rovnakého alebo vyššieho levelu.Poznámka: Popis rôznych hardérových nastavení pri vytváraní AVD nájete tuÚloha: Spustite emulátor s virtuálnym zariadením vytvoreným v predchádzajúcej úlohe prostredníctvom SDK/AVD manažéra Virtual devices -> Start.Úloha: Oboznámte sa s možnosťami ovládania emulátora cez konzolu.Prístup k bežiacej inštancii emulátora z príkazového riadka:telnet localhost [port]
Poznámka: Prvej bežiacej inštancii emulátora je pridelený port pre konzolu 5554. Pre každú ďalšiu inštanciu sa hodnota zvyšuje o 2 oproti predchádzajúcej.Poznámka: Popis použiteľných príkazov pre zmenu vzhľadu a správania emulátora nájdete tu .Úloha: Pristúpte ku príkazovému riadku simulovaného Android zariadenia.Konzolu vyvoláte z príkazového riadku príkazom:Cesta:\k_nainštalovanému_Android_SDK_balíku\platform-tools\adb shell
Poznámka: Zoznam dostupných príkazov je umiestnený v /system/bin/ .Úloha: Oboznámte sa so základnými použiteľnými príkazmi pre prácu s virtuálnym Android zariadením.Pre manipuláciu s aplikáciami sa využívajú príkazy:-
adb push
-
adb pull
-
adb install
-
adb uninstall
-
adb logcat
Poznámka: Popis použiteľných príkazov nájdete tu .Poznámka: V Eclipse je dostupný aj jednoduchý File Explorer pre spustené AVD pod Window -> Open Perspective -> Other -> DDMS . -
Cieľom tohto kroku je vytvorenie prvej jednoduchej Android aplikácie s pripomenutím si poznatkov o základných komponentoch a štruktúre.Úloha: Zopakujte si základné komponenty a štruktúru aplikácií vytváraných pre platformu Android.Úloha: Vytvorte vo vývojovom prostredí Eclipse nový Android projekt bez testovacieho projektu s parametrami:
- Project name: HelloAndroid
- Target name: Android 2.2
- Application name: HelloAndroid
- Package name: tuke.fei.hello
- Create Activity: Hello
- Min SDK Version: 8
Úloha: Spustite vytvorenú aplikáciu na bežiacom AVD vyvolaním kontextového menu nad projektom -> Run As -> Android ApplicationPoznámka: Predvolené nastavenie umožňuje automaticky spúšťať aplikáciu na dostupnom bežiacom AVD. Zmena konfigurácie je dostupná v Eclipse Run -> Run Configurations... v záložke Target vybraného projektu.Poznámka: Ak by pri vytváraní projektu nebola zvolená možnosť Create Activity, výsledkom pokusu o spustenie aplikácie na AVD by bola iba samotná inštalácia aplikácie na AVD.Úloha: Preštudujte si nasledujúce súbory vo vytvorenom projekte:- /src/tuke.fei.hello/Hello.java
- /AndroidManifest.xml
- /res/layout/main.xml
- /res/values/strings.xml
-
V tomto kroku vytvoríme jednoduché úvodné menu aplikácie pozostávajúce z dvoch tlačidiel, jedno slúžiace pre výpis jednoduchej informácie o aplikácii a druhé zatvárajúce aplikáciu.Úloha: Pripomeňte si životný cyklus AktivityÚloha: Pripomeňte si základné objekty, na ktorých je založené používateľské rozhranie:
- ViewGroup - rodičovská trieda pre návrhové prvky (podtriedy), ktoré vytvárajú rozličnú návrhovú architektúru.
- View - základná jednotka používateľského rozhrania, dátová štruktúra uchovávajúca návrhové parametre a obsah pre špecifickú obdĺžnikovú oblasť na displeji.
Poznámka: Jednoduchý popis základných návrhových objektov tuKaždý View objekt môže byť v štruktúre definovaný jedinečným identifikátorom, uvedeným v XML návrhovom súbore v atribúte id. Syntax pre pridanie identifikátora objektu:android:id="@+id/jedinecny_nazov_identifikatora
Pre každý View objekt je potrebné definovať šírku a výšku (atribúty layout_width a layout_height). Používané konštanty:- wrap_content - veľkosť udávaná obsahom.
- fill_parent - veľkosť udávaná rodičovským ViewGroup objektom.
- px (pixels)
- in (inches)
- mm (millimeters)
- pt (points) - 1/72 palca
- dp,dip (density-independent pixels) - abstraktná jednotka založená na hustote obrazovky, na obrazovke so 160 dpi platí 1dp = 1px.
- sp (scale-independent pixels) - podobná dp, škálovateľná podľa nastavenej veľkosti písma
Poznámka: Aby vaša aplikácia bola použiteľná pre akékoľvej zobrazenie, budete v aplikácii využívať jednotky sp pre nastavenia písma, inak dp.Úloha: Upravte v návrhovom súbore main.xml element TextView podľa hodnôt nasledujúcich atribútov:android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Android15" android:layout_marginBottom="25dip" android:layout_gravity="center" android:textSize="40sp" android:textColor="#ff624E5A"
Úloha: Pridajte element Button s hodnotami nasledujúcich atribútov:android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="About" android:id="@+id/mbutton_about"
Úloha: Pridajte v návrhovom súbore main.xml element Button s hodnotami nasledujúcich atribútov:android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Exit" android:id="@+id/mbutton_exit"
Úloha: Spustite upravený projekt.Úloha: Upravte hlavnú Aktivitu Hello.java tak, aby implementovala rozhranie View.OnClickListener.Poznámka: Trieda View obsahuje kolekciu rozhraní On[akcia]Listener so spätným volaním metódy On[akcia]().Úloha: Doplňte metódu onClick() o akcie vyvolané stlačením jednotlivých tlačidiel.Poznámka: Trieda R vygenerovaná počas buildovania aplikácie obsahuje používateľovi dostupné referencie na definované zdroje, v tomto prípade využijeme referencie na identifikátory tlačidiel definované v návrhovom súbore main.xmlPoznámka: Bližšie informácie o zdrojoch nájdete tu.Využitím predchádzajúcich informácií bude telo metódy vyzerať nasledovne:public void onClick(View theView) { switch(theView.getId()) { // stlacene tlacidlo bolo tlacidlo About case R.id.mbutton_about: break; // stlacene tlacidlo bolo tlacidlo Exit case R.id.mbutton_exit: finish(); break; } }
Poznámka: Metóda triedy Activity finish() vyvoláva ukončenie danej Aktivity.Úloha: Doplňte metódu onCreate() o vyhľadanie tlačidiel pomocou metódy findViewById() a ich asociáciu s OnClickListener-om.Pre tlačidlo About môže vyzerať kód takto:View aboutButton = (View) findViewById(R.id.mbutton_about); aboutButton.setOnClickListener(this);
Úloha: Spustite projekt a overte vykonanie akcie asociovanej so stlačením tlačidla Exit.Úloha: Vytvorte nový návrhový XML súbor v adresári res/layout/ cez kontextové menu New -> Other -> Android -> Android XML File s parametrami:- file: about
- type of resource: Layout
- folder: /res/layout
- element root: ScrollView
Úloha: Upravte element ScrollView o hodnoty atribútov:android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dip"
Úloha: Pridajte element TextView s hodnotami atribútov:android:id="@+id/about_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello Android!"
Úloha: Vytvorte novú Aktivitu s názvom About.java v koreňovom adresári.Úloha: Implementujte metódu onCreate() :@Override public void onCreate(Bundle theSavedInstanceState) { super.onCreate(theSavedInstanceState); setContentView(R.layout.about); }
Poznámka: Každá nová Aktivita musí byť pridaná do AndroidManifest.xmlÚloha: Pridajte Aktivitu do manifestu využitím nasledujúcich atribútov:android:name=".[nazov_triedy]" android:label="[zobrazovany_nazov]"
Úloha: Pridajte v súbore Hello.java v metóde onClick() akciu na stlačenie tlačidla About - zobrazenie novej Aktivity.Poznámka: Základné komponenty aplikácie (Aktivity, servisy, ..) sa aktivujú pomocou objektov typu Intent, pasívnych dátových štruktúr obsahujúcich opis pripravovanej akcie.Intent aboutIntent = new Intent(this, About.class); startActivity(aboutIntent);
Úloha: Spustite projekt a vychutnajte si svoju prvú Android aplikáciu :)
Doplňujúce úlohy
-
Vycentrujte umiestnenie obsiahnutých elementov úvodnej obrazovky
aj vertikálne za pomoci kombinácie návrhových objektov.
Ďalšie zdroje
- Všetko o Androide pre vývojárov - Android Developers
- Použitie, formát a syntax použiteľných zdrojov v Android aplikáciách
- Hello, Views - jednoduchý úvod do dizajnu aplikácií
- R. Meier: Professional Android 2 Application Development
- Ed Burnette : Hello, Android: Introducing Google's Mobile Development Platform
- Slovenské fórum venované Androidu.