Obsah Úvod
11
KAPITOLA 1 Nástroje pro vývoj Co budete potřebovat
13 13
Instalace programovacího jazyka Java Java 8 Vývojové prostředí Eclipse Instalace a konfigurace Android SDK a doplňků ADT
Vytvoření emulátoru Vytvoření emulátoru platformy Android 4.4 Wearable Spouštění aplikací na reálném zařízení
Ověření konfigurace na cvičném projektu Expresní seznámení se s vývojovým prostředím Dalvik Debug Monitor Server (DDMS) Spuštění aplikace v emulátoru Spuštění aplikace na reálném zařízení
Android Studio Import projektů z Eclipse
Embarcadero RAD Studio XE6
20 22 23
24 29 30 30 32
33 37
38
Vizuální návrh aplikací v C++ pro Android FireMonkey App Tethering
39 39 41
Xamarin MonoTouch a Mono for Android Game Maker Studio na vývoj her
41 41
Příklad vytvoření nejjednodušší hry
KAPITOLA 2 Architektura Operační systém Android Historie verzí
Android 5.0 Lollipop (API 21) Jakou nejstarší verzi Androidu podporovat v aplikaci Knihovny pro dopřednou kompatibilitu
Stručně o architektuře Androidu Linux Kernel Libraries
K2170_sazba.indd 3
13 14 15 15
42
47 47 48
50 54 55
56 57 58
8.12.2014 13:31:27
Obsah
Android Runtime Application Framework Aplikace
Bezpečnost na platformě Android Oprávnění pro aplikaci
59 59
Základní součásti aplikace pro Android
62
Aktivity (Activity) Služby (Services) Broadcast Receivers Poskytovatelé obsahu (Content providers)
62 62 63 63
Aktivita a její životní cyklus Životní cyklus aktivity Intent (záměr) Předávání údajů a výsledků Intent Filter
Úvod do asynchronního programování AsyncTask AsyncTaskLoader IntentService Handler
Možnosti ukládání údajů KAPITOLA 3 Základní principy aplikace pro Android Příklad – vytvoření projektu Vytvoření projektu Specifikace verzí Ikony pro aplikaci Výběr typu hlavní aktivity Anatomie projektu Definice objektů ve zdrojích (resources) Aplikační manifest Návrh uživatelského rozhraní Přizpůsobení rozlišení obrazovky Obrázek 9-patch
Kontejnery na rozmístění prvků LinearLayout RelativeLayout FrameLayout TableLayout GridLayout Vnoření kontejnerů ScrolView
K2170_sazba.indd 4
58 58 59
63 64 67 68 69
72 73 74 74 74
74
75 75 75 77 77 78 81 84 88 91 92 93
94 95 96 98 99 101 103 104
8.12.2014 13:31:27
Obsah
Příklad – definice rozložení prvků Obsluha události
Příklad – spuštění jiné aktivity Aplikační logika Vytvoření nové aktivity
Ladění aplikace Příklad – Ohodnocení Příklad – zjištění informací o vašem zařízení
105 111
112 113 116
119 121 124
KAPITOLA 4 Vizuální návrh uživatelského rozhraní Námět příkladu Rozbor řešení Návrh uživatelského rozhraní Programování aplikační logiky Domácí úkol Shrnutí
129 129 129 130 135 139 139
KAPITOLA 5 Interakce s uživatelem Nabídka funkcionality – menu Navigace pomocí lišty Action Bar
141 141 141
Přizpůsobení a rozdělení lišty Action Bar Navigace na jinou aktivitu (a zpět) Přidání widgetu na lištu Action Bar
Dotyky a gesta
152
Multitouch
152
Příklad – zobrazení vícenásobných dotyků Detekce standardně používaných gest Příklad – univerzální počítadlo Příklad – využití vlastních gest KAPITOLA 6 Notifikace, alarmy Notifikace Příklad – zobrazení toastu s vlastním designem Příklad – poslání notifikace
Alarmy Vytvoření alarmu Příklad – ověření funkcionality alarmů
K2170_sazba.indd 5
145 146 148
154 158 158 162
167 167 167 169
172 172 173
8.12.2014 13:31:27
Obsah
KAPITOLA 7 Seznamy objektů Námět příkladů Řešení s využitím ListActivity ListActivity s formátovaným zobrazováním položek Návrh uživatelského rozhraní Aplikační kód
ListActivity s kontextovým menu položky Řešení s využitím ListView a statickými údaji v poli řetězců Návrh uživatelského rozhraní Aplikační kód
Řešení s využitím ListView a údaji v kódu
180 182
184 186 186 187
188
Návrh uživatelského rozhraní Aplikační kód
188 189
Výběr více položek ze seznamu
190
Návrh uživatelského rozhraní Aplikační kód
190 191
Zobrazení hierarchické struktury Návrh uživatelského rozhraní Aplikační kód
Seznam objektů s obrázky Návrh uživatelského rozhraní Aplikační kód
KAPITOLA 8 Fragmenty Námět příkladu Rozbor řešení
Fragmenty Životní cyklus fragmentu Vytvořte kompatibilní projekt Zobrazení detailních informací Zobrazení seznamu objektů Aktivity na zapouzdření fragmentů
KAPITOLA 9 Broadcasty Broadcast Receiver Příklad – Broadcast Receiver registrovaný v aplikačním manifestu Příklad – dynamicky registrovaný Broadcast Beceiver Příklad – indikace příchozího hovoru
K2170_sazba.indd 6
177 177 177 180
193 194 195
200 200 201
207 207 208
209 210 212 214 215 216
221 221 223 225 227
8.12.2014 13:31:27
Obsah
KAPITOLA 10 Ukládání údajů Ukládání údajů Třída SharedPreferences Příklad – uložení nejvyššího dosaženého skóre hry Příklad – PreferenceFragment
Ukládání údajů do souboru Příklad – ukládání do souboru v interní paměti Příklad – ukládání do souboru v externí paměti
Ukládání dočasných souborů Databáze SQLite Interakce aplikace s databází Příklad – čtenářský deník
229 230 232
235 236 238
241 242 242 243
Rozbor řešení
243
Datový model
246
Vytvoření databázové tabulky Vkládání záznamů do databáze Aktualizace záznamů Vymazání záznamů Výběr údajů z databázové tabulky
Návrh uživatelského rozhraní Hlavní aktivita Aktivita na přidání záznamu Aktivita na editování existujícího záznamu
248 249 250 250 251
252 253 256 257
Programování aplikační logiky
260
Hlavní aktivita Aktivita na přidání záznamu Aktivita na editování záznamu
260 261 262
KAPITOLA 11 Aplikace pracující s údaji JSON, XML Námět Rozbor zadání
267 267 267
Zdroj údajů pro aplikaci Návrh uživatelského rozhraní Aplikace na načítání údajů ve formátu JSON Aplikace na načítání údajů ve formátu XML
268 270 272 276
Varianta využívající Document Object Model Varianta využívající XmlPullParser
276 279
Statická data ve formátu XML Aplikační kód
K2170_sazba.indd 7
229 229
284 286
8.12.2014 13:31:27
Obsah
KAPITOLA 12 Grafika a animace Zobrazení obrázku přes XML návrh Zobrazení obrázku programově Zobrazení obrázku z Internetu.
291 292 293 294
Rozbor řešení Povolení přístupu k Internetu Návrh uživatelského rozhraní Aplikační kód
294 295 295 296
Vykreslování základních grafických tvarů Vykreslování na Canvas Kreslení dotykem na Canvas Dynamické vykreslování na Canvas s využitím View Dynamické vykreslování na Canvas s využitím SurfaceView Animace Metody klasické animace Příklad animace TransitionDrawable Příklad animace AnimationDrawable Příklad animace Tween Property Animation Příklad na ilustraci principu fungování Property Animation Příklad komplexnějšího využití Property Animation
298 302 304 305 308 312 312 312 313 315 318 319 321
KAPITOLA 13 Multimédia Pasivní a aktivní konzumace multimédií Příklad – přehrání zvukového efektu a ovládání hlasitosti Příklad – přehrání videa Příklad – nahrávání zvuku Příklad – Snímání fotografie I Příklad – Snímání fotografie II Příklad – Snímání fotografie s využitím externí aplikace
325 325 326 330 332 336 341 344
KAPITOLA 14 Senzory, mapové služby Integrované senzory chytrých telefonů a tabletů
347 347
Získávání údajů ze senzorů Příklad – zobrazení údajů z akcelerometru Příklad – zobrazení filtrovaných údajů z akcelerometru Příklad – magnetický kompas
348 349 352 355
K2170_sazba.indd 8
8.12.2014 13:31:27
Obsah
Senzor osvětlení Náklonoměr
Lokalizační a mapové služby Příklad – určení polohy zařízení Příklad – určení polohy zařízení
Zobrazení polohy na mapě Přípravné kroky Příklad zobrazení polohy na mapě Příklad – zobrazení polohy v jiné aplikaci schopné zobrazit mapy
KAPITOLA 15 Služby a broadcasty Služba a její životní cyklus Příklad – přehrávání hudby na pozadí
359 359
360 361 364
368 369 373 376
381 382 384
KAPITOLA 16 Poskytování obsahu Třída ContentProvider Příklad – přístup ke kontaktům v zařízení Příklad – přístup ke kontaktům, načítání údajů na pozadí Příklad – aktualizace údajů Příklad – vytvoření aplikace, která bude poskytovat údaje
389 389 390 393 395 398
KAPITOLA 17 Připojení ke cloudovým službám a sociálním sítím Trendy a doporučení Google Cloud Messaging for Android
403 404 405
Získání klíče Simple API Access Vytvoření projektu na Google Cloud Console
Implementace na straně serveru Vytvoření Azure Notification Hub
Vytvoření aplikace pro Android vysílající a přijímající notifikace Posílání notifikací
Připojení aplikace pro Android k mobilní službě Microsoft Azure Mobile Services Vytvoření nové mobilní služby
405 406
408 409
411 419
421 421 422
Vytvoření aplikace pro Android využívající mobilní službu 424 Úprava existující aplikace pro Android, aby mohla využívat mobilní službu430 Připojení aplikace k sociálním sítím 430 Vytvoření aplikace pracující s Facebookem 432 Vytvoření aplikace pro Android přihlašující se k Facebooku
K2170_sazba.indd 9
434
8.12.2014 13:31:27
Obsah
KAPITOLA 18 Publikování aplikací do služby Google Play Registrace vývojářského účtu Vytvoření balíčku aplikace na publikování Publikování aplikace Příprava záznamu pro obchod
KAPITOLA 19 Nové platformy – Android Wear a Google Glass Android Wear Nabídka: Kontextový stream Dotaz: Cue cards Vytvoření emulátoru Android Wear Projekt aplikace pro Android Wear
Google Glass Technické údaje Návrh designu aplikací Vývoj aplikací
Rejstřík
K2170_sazba.indd 10
439 439 440 441 442
447 447 448 449 451 453
455 456 456 457
461
8.12.2014 13:31:27