Publikované pred rokom: 13.04.2011 / Ľuboslav Lacko, čítaní: 6345
V predchádzajúcej prípravnej časti sme prebrali,
aké komponenty treba nainštalovať pri vývoji
aplikácií pre mobilné telefóny a tablety s operačným
systémom Android. Budete nevyhnutne
potrebovať:
- Android SDK Tools
(http://developer.android.com/sdk/ index.html)
- Vývojové prostredie Eclipse
(http://www.eclipse.org/downloads)
- Android Development Tools
(inštaluje sa ako doplnok do Eclipse z
https://dl-ssl.google.com/android/eclipse )
Vytvorenie nového projektu Android
Mnohí sa čudujú, prečo v klasických (a teda dobrých)
učebniciach programovania sa vždy začína
aplikáciou typu „Hello World“, ak chcete po našom,
„Zdravíme svet“. Dôvod je jednoduchý. Ak takáto
aplikácia funguje, dokážete vypísať akýkoľvek text,
napríklad aj obsah premenných, čo významne
uľahčuje ladenie a zároveň máte istotu, že všetko
je správne nainštalované a nakonfigurované. A ak
bude vaša snaha zvŕšená prenosom aplikácie do
mobilného zariadenia a jej spustením v reálnom
prostredí, uspeli ste na výbornú a môžete sa
smelo pustiť do zložitejších projektov.
Vo vývojovom prostredí pomocou menu File >
New > Project vytvorte nový projekt Android.
Eclipse implicitne ukladá projekty do adresára
C:\Users\
Treba vybrať takú verziu Androidu, aká sa predpokladá na cieľovom zariadení, prípadne nižšiu.Keby ste postupovali opačne, na zariadeniach so staršou verziou operačného systému by aplikácia, prípadne časť jej funkcionality nemusela pracovať korektne.
Aby sme boli úplne presní, aplikáciu typu „Hello Word“ vlastne nemusíte tvoriť, implicitne sa vytvorila ako základná šablóna projektu. Takže nechajme písanie kódu zatiaľ bokom a poďme sa aspoň letmo oboznámiť s vývojovým prostredím a „anatómiou“ projektu, teda z akých komponentov a súborov projekt aplikácie pozostáva. Vľavo v okne Package Explorer otvorte súbor ZoznamovaciaAplikacia.java. Nájdete ho v zložke ZoznamovaciaAplikacia> src > com.example.zo - zna movaciaaplikacia
import android.app.Activity;
import android.os.Bundle;
public class ZoznamovaciaAplikacia extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Fungovanie aplikácie je založené na triede Activity, ktorá, ako avizuje názov, slúži na vykonanie akcie. Aplikácia môže zapuzdrovať viac samostatných aktivít, no tie sú vzhľadom na možnosti platformy radené sériovo, čiže používateľ s nimi pracuje postupne. Metóda OnCreate () je volaná operačným systémom pri vstupe do akcie, takže v tejto metóde sa spravidla vykonáva inicializácia používateľského rozhrania. Šablóna kódu na výpis oznamu Hello Word je súbore /res/layout/main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
Presnejšie v tomto súbore je len zakomponovanie textového reťazca do obrazovkového kontextu. Definícia reťazca, ktorý sa bude vypisovať, je v súbore /values/string.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, ZoznamovaciaAplikacia!Zoznamovacia Aplikacia
Kliknutím na zelenú šípku môžete aplikáciu spustiť v emulátore mobilného zariadenia. Po nábehu emulátora a jeho odomknutí sa vaša aplikácia automaticky spustí. Vaša? Zatiaľ ste v šablóne zmenili len jeden textový reťazec z anglického na slovenský. Preto pre pocit dobre vykonanej práce použijeme na výpis textu iný spôsob.
Programovanie používateľského rozhrania
V predchádzajúcej stati bol text vypísaný pomocou
vloženia textového reťazca do obrazovkového
kontextu v kóde XML. Rovnaký efekt dosiahnete
aj pomocou kódu v programovacom jazyku Java
v tele metódy OnCreate (). Na výpis textu treba
vytvoriť widget TextView a pomocou metódy
setText("---textový reťazec---") zadať text, ktorý
chcete zobraziť. Widget musíte najskôr importovať.
import android.widget.TextView;
Kompletný kód bude takýto:
package com.example.zoznamovaciaaplikacia;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class ZoznamovaciaAplikacia extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Vitajte v aplikácii pre os Android");
setContentView(tv);
}
}
V čom sme to vlastne programovali?
Kód v predchádzajúcej stati sa bude zdať familiárne
známy znalcom programovacích jazykov
Java aj C#. Už to, že ako vývojové prostredie sa využíva Eclipse, jednoznačne svedčí o tom, že
programujete v Jave, presnejšie v Jave SE s využitím
funkcií Android API. Okrem toho sa často
používajú ďalšie API na sofistikované snímanie
gest na dotykovom displeji, pokročilú hernú grafiku,
GPS a podobne. V príklade bol použitý balíček Android widget. Kompletný zoznam balíčkov
nájdete na http://developer.android.com/reference/
packages.html.
Vytvorenie nového projektu Android
Zadanie parametrov projektu
Používateľské rozhranie vývojového prostredia
Spustenie aplikácie
Schéma architektúry operačného systému Android
Nezabúdajte, že v prípade mobilných platforiem obzvlášť platí úslovie, že všetkého veľa škodí, v tomto prípade pokročilá grafika a iné funkcie (GPS, Bluetooth...) výrazne znižujú výdrž batérie. Počas kompilácie je aplikácia preložená a zostavená s knižnicami jar Android frameworku a výsledný súbor zbalený v binárnom súbore .dex je zavedený do Dalvik Virtual Machine.
Stručný úvod do architektúry
operačného systému Android
Pri odpovedi na otázku, ako to funguje, zákonite
skôr či neskôr bude nevyhnutné mať aspoň základnú
predstavu o architektúre operačného systému.
Aplikácia Android je samostatný proces
využívajúci vlastnú inštanciu virtuálneho stroja
Dalvik. Ten zabezpečuje beh spustiteľných súborov
s príponou (.Dex). Dalvik je optimalizovaný
pre mobilné zariadenia, to znamená obmedzené
možnosti napájania, menšiu pamäť a podobne.
Súčasne môže bežať viac inštancií virtuálneho
stroja.
Základný pilier architektúry Androidu je Linux Kernel. Toto jadro sa stará o priamu interakciu s hardvérom mobilného zariadenia, čím zabezpečuje úplnú abstrakciu od hardvéru pre vyššie vrstvy. Zabezpečuje správu pamäte, správu procesov, sieťovú vrstvu, správu napájania, grafiku a ovládače pre moduly GSM, Bluetooth, EDGE, 3G, Wi-Fi, fotoaparát, GPS, kompas a akcelerometer.
Nad jadrom je súprava knižníc, ktoré poskytujú prístup aplikácií k rôznym komponentom systému Android. Na tejto úrovni sú implementované knižnice médií, grafické 2D a 3D knižnice, pričom 3D knižnice využívajú podporu OpenGL ES 1.0 s voliteľnou možnosťou využitia grafických akcelerátorov. Aplikácie môžu pre svoju internú potrebu využívať integrovaný prehliadač webového obsahu na báze open source WebKit engine. Databázový engine SQLite riadi štruktúrované úložisko údajov.
Android Runtime obsahuje súpravu základných knižníc. Aplikačný framework obsahuje objekty na tvorbu používateľského rozhrania a aplikačnej logiky. Aplikácie sú na najvyššej úrovni architektúry.
Finále – spustenie aplikácie na reálnom zariadení
Aby bolo možné spustiť aplikáciu na reálnom zariadení
pripojenom cez USB, sú potrebné ovládače
USB pre ADB (Android Debug Bridge). Ako bolo
opísané v predošlej časti, vo vývojovom prostredí
v záložke Available packages v skupine Third party
Add-ons doinštalujte príslušný ovládač, buď univerzálny
od spoločnosti Google, alebo proprietárny
pre dané zariadenie.
Nakoniec treba upraviť v projekte súbor
Android Manifest.xml – do sekcie
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.zoznamovaciaaplikacia"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" >
<activity android:name=".ZoznamovaciaAplikacia"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Nastavenie ladenia cez USB
Spustenie aplikácie na reálnom zariadení
Aplikácia bude umiestnená v mobilnom zariadení a dostupná cez jeho menu
V nasledujúcej časti sa zameriame na prvky používateľského rozhrania.
Zdroj: INFOWARE 3/2011
Dĺžka:00:17:22
Dĺžka:00:25:58
Dĺžka:00:07:11
Dĺžka:00:55:21