Vývoj pro Android
Co je to vlastně ten ANDROID?
Android je první bezplatná, otevřená, mobilní open source platforma, která je určena zejména pro mobilní zařízení (chytré mobilní telefony, tablety a PDA). Tato platforma obsahuje operační systém (založený na jádru systému Linux), middleware, uživatelské rozhraní a aplikace. Za vývojem stojí konsorcium Open Handset Alliance (což je skupina 84 technologických a mobilních společností, mezi nichž patří giganti jako Google, HTC, Intel, LG, Motorola, NVidia, Qualcomm, Samsung, Texas Instrument a další). Cílem této skupiny je progresivní rozvoj mobilních technologií, které budou mít výrazně nižší náklady na vývoj a distribuci, a zároveň spotřebitelům přinese inovativní uživatelsky přívětivé prostředí. Při vývoji systému byla brána v potaz omezení, která jsou příznačná pro klasická mobilní zařízení, např. výdrž baterie, menší výkonnost a omezené množství dostupné paměti. Zároveň bylo jádro Androidu navrženo pro běh na různém hardwaru. Systém lze tudíž používat bez ohledu použitý chipset, velikost či rozlišení obrazovky.
Samotná mobilní platforma Android dává k dispozici nejen operační systém s uživatelským prostředím pro koncové uživatele, ale i kompletní řešení nasazení operačního systému (specifikace driverů atd.) pro mobilní operátory a výrobce zařízení a v neposlední řadě pro vývojáře aplikací poskytuje efektivní nástroje pro jejich vývoj – SDK (Software Development Kit).
Architektura
Architektura operačního systému Android je rozdělen do pěti vrstev: jádro, knihovny, aplikační framework, běhové prostředí a aplikace. Každá vrstva má svůj účel a nemusí být přímo oddělena od ostatních vrstev.
Nejnižší vrstvou architektury je jádro operačního systému, které tvoří abstraktní vrstvu mezi používaným hardwarem a zbytkem softwaru ve vyšších vrstvách. Jádro mobilního operačního systému Androidu je postaveno na Linuxu ve verzi 2.6. Využívá celé řady jeho vlastností, např. podpory správy paměti, správy sítí, zabudované ovladače nebo správy procesů, například souběžného běhu aplikací, které běží jako samostatné procesy s oprávněním definovaným systémem, což přispívá ke stabilitě a také zabezpečení systému. Naopak systém Android nepodporuje grafické uživatelské rozhraní X Window System a ani úplnou sadu GNU knihoven. Důvodem použití jádra systému Linux byla také vlastnost poměrně snadného sestavení na různých zařízeních a tím zaručená přenositelnost.
Další vrstvou jsou knihovny, které jsou napsány v jazyce C/C++, a které využívají různé komponenty systému. Tyto funkce jsou vývojářům poskytnuty prostřednictvím Android Application Framework. Mezi příklady takových knihoven patří:
- Systémová knihovna C (libc) – odvozená BSD standardní knihovna systému C vyladěná pro embedded linuxová zařízení.
- Media Libraries – knihovna založená na OpenCORE od PacketVideo, která podporuje přehrávání a záznam oblíbených video a audio formátů a také grafických souborů, např. MPEG4, H.264, MP3, AAC, AMR, JPG a PNG.
- LibWebCore – moderní engin webového prohlížeče.
- SGL – 2D grafický engin
- 3D knihovny – implementace na základě API OpenGL ES 1.0; knihovny používají hardwarovou 3D akcelaraci nebo vysoce optimalizovaný 3D softwarový resterizér.
- SQLite – odlehčená relační databázová knihovna
- FreeType – knihovna pro rendering bitmapových a vektorových fontů.
Android Runtime vrstva obsahuje aplikační virtuální stroj označovaný jako Dalvik, který byl vyvíjen od roku 2005 speciálně pro platformu Android, týmem v Googlu pod vedením Dana Bornsteina. Dalvik Virtual Machine (DVM) je registrově orientovaná architektura, využívá základních vlastností linuxového jádra, např. správa paměti nebo práce s vlákny. Vznik nového virtuálního stroje byl iniciován ze dvou důvodů. Prvním důvodem byla licenční práva, kdy jazyk Java a jeho knihovny jsou volně šiřitelné, kdežto JVM nikoliv. Dalším důvodem byla optimalizace virtuálního stroje pro mobilní zařízení a to především v oblasti poměru úspory energie a výkonu. V této vrstvě jsou také obsaženy základní knihovny programovacího jazyka Java. Knihovny se svým obsahem blíží platformě Java Standard Edition. Hlavní rozdíl je v nepřítomnosti knihoven pro uživatelské rozhraní (AWT a Swing), které byly nahrazeny knihovnami uživatelského rozhraní pro Android nebo přidání knihovny Apache pro práci se sítí. Překlad aplikace napsané pro Android probíhá zkompilováním zdrojového kódu v jazyce Java do Java byte kódu pomocí stejného kompilátoru, jako je používán v případě překladu Java aplikací. Poté se překompiluje Java byte kód pomocí Dalvik kompilátoru a výsledný Dalvik byte kód je spuštěn na DVM. Každá spuštěná Android aplikace běží ve svém vlastním procesu s vlastní instancí DVM.
Aplikační vrstva (Application framework) je pro vývojáře nejdůležitější. Poskytuje přístup k velkému počtu služeb, které mohou být použity přímo v aplikacích. Tyto služby mohou zpřístupňovat data v jiných aplikacích, prvky uživatelského rozhraní, aplikace spuštěné na pozadí, hardware používaného zařízení a mnoho dalších služeb a funkcí. Základní sada služeb zahrnuje především:
- Sada prvků View – které lze používat pro sestavení uživatelského rozhraní aplikací, jedná se např. o seznamy, textové pole, tlačítka, zaškrtávací políčka a další.
- Content providers – Umožňuje aplikacím přístup k datům jiných aplikací (např. kontakty) nebo sdílení vlastních dat.
- Resource manager – Poskytuje přístup „neprogramovým“ zdrojům, jako jsou lokalizační řetězce, grafika a soubory designu.
- Notification manager – Umožňuje všem aplikacím zobrazit vlastní upozornění ve stavovém řádku.
- Activity manager – Řídí životní cyklus aplikací a poskytuje orientaci v zásobníku s aplikacemi.
Nejvyšší vrstvu systému tvoří aplikace, které využívají běžní uživatelé. Může jít o aplikace předinstalované nebo dodatečně stažené z Android Marketu. Například e-mailový klient, program pro zasílání SMS, kalendář, mapy, prohlížeč, kontakty a další aplikace třetích stran.
Jak na vývoj aplikací pro platformu Android
- Historie verzí systému Android
- Co je potřeba k vývoji aplikací pro Android
- Zařízení se systémem Android
- Jak vytvořit jednoduchou aplikaci pro Android
- Tvorba GUI pro Android
- Upgrade verze verze systému Android 2.2 na 2.3 (LG Optimus One)
Česká Android komunita
Další informace o platformě Android najdete na komunitních webech. Existují české weby, které sdružují část české a slovenské komunity lidí jakkoliv dotčených platformou Android.
23. září 2008 bylo založeno české android fórum. Kolem tohoto fóra existuje rozsáhlá (více než 11 000 členů) android komunita.
V polovině ledna 2010 došlo ke sjednocení tří velkých českých komunitních webů o platformě Android (android-google.cz, mujandroid.cz, googleandroid.cz) pod novou doménou svetandroida.cz.
Důležité weby:
http://www.eclipse.org/ – IDE Eclipse
http://developer.android.com – oficiální web pro vývoj Androidu