Android - Der schnelle und einfache Einstieg in die Programmierung und Entwicklungsumgebung
von: Dirk Louis, Peter Müller
Carl Hanser Fachbuchverlag, 2016
ISBN: 9783446451124
Sprache: Deutsch
462 Seiten, Download: 22620 KB
Format: EPUB, PDF, auch als Online-Lesen
Mehr zum Inhalt
Android - Der schnelle und einfache Einstieg in die Programmierung und Entwicklungsumgebung
Inhalt | 6 | ||
Vorwort | 16 | ||
Teil I: Einführung | 20 | ||
1 Der Rechner wird vorbereitet | 22 | ||
1.1 Die nötigen Hilfsmittel | 22 | ||
1.2 Installation des JDK | 23 | ||
1.3 Installation von Android Studio | 24 | ||
1.3.1 Erster Start | 26 | ||
1.4 Der Android-SDK-Manager | 28 | ||
1.4.1 Die Android-Versionen | 28 | ||
1.4.2 APIs/SDKs und anderes nachinstallieren | 29 | ||
1.4.3 Dokumentation und API-Referenz | 31 | ||
1.5 Wo Sie weitere Hilfe finden | 33 | ||
1.6 Nächste Schritte | 34 | ||
1.7 Frage und Antworten | 34 | ||
1.8 Übungen | 34 | ||
2 Auf die Plätze, fertig .?.?. App! | 36 | ||
2.1 Die Ruhe vor dem Sturm | 36 | ||
2.2 Das Projekt | 37 | ||
2.3 Das vorgegebene Codegerüst | 45 | ||
2.3.1 Die package-Anweisung | 47 | ||
2.3.2 Die import-Anweisungen | 47 | ||
2.3.3 Die Klassendefinition | 48 | ||
2.4 Layout und Ressourcen | 50 | ||
2.4.1 XML-Layouts | 50 | ||
2.4.2 Ressourcen | 53 | ||
2.5 Die App bauen (Build) | 56 | ||
2.6 Die App im Emulator testen | 57 | ||
2.6.1 AVD für Emulator anlegen | 57 | ||
2.6.2 Die App testen | 60 | ||
2.7 Die App auf Smartphone oder Tablet testen | 64 | ||
2.8 Nächste Schritte | 66 | ||
2.9 Fragen und Antworten | 66 | ||
2.10 Übungen | 67 | ||
3 Was wann wofür | 68 | ||
3.1 Was ist zu tun? – Die drei Pfeiler der App-Erstellung | 68 | ||
3.2 Wer hilft uns? – Bausteine und Klassen | 69 | ||
3.2.1 Bausteine für den App-Aufbau | 69 | ||
3.2.2 Klassen zur Adressierung spezieller Aufgaben | 73 | ||
3.3 Wo wird was gespeichert? – Dateitypen, die Sie kennen sollten | 74 | ||
3.3.1 Quelldateien | 75 | ||
3.3.2 Die Datei R.java | 75 | ||
3.3.3 Assets | 76 | ||
3.3.4 Die Ressourcendateien | 76 | ||
3.3.5 Die Manifestdatei AndroidManifest.xml | 77 | ||
3.3.6 Die APK-Datei | 78 | ||
3.4 Frage und Antworten | 78 | ||
3.5 Übung | 79 | ||
Teil II: Grundlagen | 80 | ||
4 Code | 82 | ||
4.1 Der Editor | 82 | ||
4.1.1 Syntaxhervorhebung | 83 | ||
4.1.2 Code Folding (Code-Gliederung) | 84 | ||
4.1.3 Code Completion (Code-Vervollständigung) | 86 | ||
4.1.4 Syntaxfehler beheben | 88 | ||
4.1.5 Informationen über Klassen und Methoden | 90 | ||
4.1.6 Klammerpaare identifizieren | 93 | ||
4.1.7 Zeilennummern einblenden | 93 | ||
4.1.8 Code generieren | 94 | ||
4.1.9 Refactoring (Code umstrukturieren) | 97 | ||
4.1.10 Dateiverlauf (Local History) | 100 | ||
4.2 Neue Klassen anlegen | 100 | ||
4.3 Fragen und Antworten | 103 | ||
4.4 Übungen | 103 | ||
5 Benutzeroberfläche und Layout | 104 | ||
5.1 Einführung | 104 | ||
5.2 Der Layout-Designer | 105 | ||
5.2.1 Die Text-Ansicht (XML-Code) | 107 | ||
5.2.2 Die Design-Ansicht | 111 | ||
5.3 Layouts (ViewGroups) | 114 | ||
5.3.1 Die allgemeinen Layoutparameter | 115 | ||
5.3.2 ViewGroups | 118 | ||
5.3.3 Hintergrundfarbe (oder -bild) | 128 | ||
5.3.4 Der Hierarchy Viewer | 131 | ||
5.4 UI-Elemente | 133 | ||
5.5 Richtlinien für das Design von Benutzeroberflächen | 137 | ||
5.6 Praxisbeispiel: eine Quiz-Oberfläche | 140 | ||
5.7 Hoch- und Querformat | 145 | ||
5.8 Das App-Symbol | 146 | ||
5.9 Views im Code verwenden | 147 | ||
5.9.1 Layouts laden | 147 | ||
5.9.2 Zugriff auf UI-Elemente | 148 | ||
5.10 Fragen und Antworten | 150 | ||
5.11 Übung | 150 | ||
6 Ressourcen | 152 | ||
6.1 Der grundlegende Umgang | 152 | ||
6.1.1 Ressourcen anlegen | 153 | ||
6.1.2 Ressourcen verwenden | 155 | ||
6.1.3 Ressourcen aus dem Projekt entfernen | 159 | ||
6.2 Welche Arten von Ressourcen gibt es? | 159 | ||
6.2.1 Größenangaben | 159 | ||
6.2.2 Farben | 160 | ||
6.2.3 Strings | 161 | ||
6.2.4 Strings in mehreren Sprachen (Lokalisierung) | 163 | ||
6.2.5 Bilder | 164 | ||
6.2.6 Layouts | 165 | ||
6.2.7 Menüs | 166 | ||
6.2.8 Roh- und Multimediadaten | 166 | ||
6.2.9 Stile | 167 | ||
6.3 Alternative Ressourcen vorsehen | 171 | ||
6.3.1 Das Grundprinzip | 171 | ||
6.3.2 Wie stellt man konfigurationsspezifische Ressourcen bereit? | 172 | ||
6.4 Fragen und Antworten | 174 | ||
6.5 Übungen | 175 | ||
7 Mit dem Anwender interagieren | 176 | ||
7.1 Das Grundprinzip | 176 | ||
7.1.1 Auf ein Ereignis reagieren | 177 | ||
7.1.2 Welche Ereignisse gibt es? | 180 | ||
7.1.3 Hintergrund der Ereignisverarbeitung | 181 | ||
7.2 Vereinfachte Ereignisbehandlung | 183 | ||
7.2.1 Ereignisbehandlung mit anonymen Listener-Klassen | 184 | ||
7.2.2 Ereignisbehandlung mit anonymen Listener-Objekten | 185 | ||
7.2.3 Ereignisbehandlung mithilfe der Activity-Klasse | 185 | ||
7.3 Eine Behandlungsmethode für mehrere Views | 186 | ||
7.4 Auf Tipp- und Wischereignisse reagieren | 187 | ||
7.4.1 Tippereignisse | 187 | ||
7.4.2 Wischereignisse | 189 | ||
7.5 Multi-Touch und Gesten erkennen | 191 | ||
7.5.1 Multi-Touch | 191 | ||
7.5.2 Gestenerkennung | 193 | ||
7.6 Frage und Antworten | 195 | ||
7.7 Übung | 195 | ||
8 App-Grundlagen und Lebenszyklus | 196 | ||
8.1 Die Android-Architektur | 196 | ||
8.2 Der App-Lebenszyklus | 198 | ||
8.3 Der Activity-Lebenszyklus | 200 | ||
8.4 Lebenszyklusdemo | 202 | ||
8.5 Fragen und Antworten | 206 | ||
8.6 Übung | 206 | ||
Teil III: Weiterführende Themen | 208 | ||
9 In Views zeichnen | 210 | ||
9.1 Das Grundprinzip | 210 | ||
9.1.1 Die Leinwand | 210 | ||
9.1.2 Das Atelier | 210 | ||
9.1.3 Die Zeichenmethoden und -werkzeuge | 211 | ||
9.1.4 Wie alles zusammenwirkt | 211 | ||
9.2 Grafikprimitive zeichnen | 215 | ||
9.3 Bilder laden | 219 | ||
9.4 In Bilder hineinzeichnen | 220 | ||
9.5 Bilder bewegen | 222 | ||
9.6 Verbesserungen | 227 | ||
9.7 Fragen und Antworten | 228 | ||
9.8 Übung | 228 | ||
10 Menüs, Fragmente und Dialoge | 230 | ||
10.1 Menüs | 230 | ||
10.1.1 Menüverwirrungen | 231 | ||
10.1.2 Menüressourcen | 232 | ||
10.1.3 Menüeinträge in der ActionBar (AppBar) | 234 | ||
10.1.4 Das Optionen-Menü | 235 | ||
10.1.5 Das Kontextmenü | 236 | ||
10.1.6 Popup-Menü | 238 | ||
10.1.7 Untermenüs | 239 | ||
10.1.8 Auf die Auswahl eines Menüeintrags reagieren | 240 | ||
10.2 Fragmente | 242 | ||
10.2.1 Was ist ein Fragment? | 242 | ||
10.2.2 Ein Fragment erzeugen | 243 | ||
10.2.3 Fragment zur Activity hinzufügen | 244 | ||
10.2.4 Ein Fragmentbeispiel | 245 | ||
10.2.5 Definition der Fragment-Klassen | 248 | ||
10.2.6 Die Activity | 250 | ||
10.3 Dialoge | 252 | ||
10.3.1 Dialoge erzeugen | 253 | ||
10.3.2 Dialoge anzeigen | 254 | ||
10.3.3 Standarddialoge mit AlertDialog | 254 | ||
10.3.4 Dialoge für Datums- und Zeitauswahl | 256 | ||
10.3.5 Der Fortschrittsdialog | 259 | ||
10.3.6 Eigene Dialoge definieren | 261 | ||
10.4 Benachrichtigungen mit Toasts | 263 | ||
10.4.1 Toasts im Hintergrund-Thread | 263 | ||
10.5 Fragen und Antworten | 264 | ||
10.6 Übungen | 265 | ||
11 Mehrseitige Apps | 266 | ||
11.1 Intents | 266 | ||
11.1.1 Was sind Intents? | 267 | ||
11.1.2 Explizite und implizite Intents | 268 | ||
11.1.3 Intent-Filter | 268 | ||
11.2 Activities starten mit Intents | 269 | ||
11.2.1 Intent-Objekte erzeugen | 270 | ||
11.3 Intents empfangen | 272 | ||
11.4 Ein Demo-Beispiel | 272 | ||
11.5 Ergebnisse zurücksenden | 275 | ||
11.6 Fragen und Antworten | 276 | ||
11.7 Übung | 276 | ||
12 Daten speichern | 278 | ||
12.1 Preferences | 278 | ||
12.2 Dateizugriffe | 279 | ||
12.2.1 Zugriff auf internen Speicher | 280 | ||
12.2.2 Externer Speicher (SD-Karte) | 283 | ||
12.3 Die Reaktions-App | 286 | ||
12.4 Fragen und Antworten | 291 | ||
12.5 Übungen | 291 | ||
13 Quiz-Apps | 292 | ||
13.1 Aufbau und Benutzeroberfläche | 292 | ||
13.2 Die Activity (QuizActivity.java) | 293 | ||
13.3 Die Fragen (Frage.java) | 295 | ||
13.4 Die Spielsteuerung (SpielLogik.java) | 296 | ||
13.5 Verbesserungen | 298 | ||
13.6 Frage und Antwort | 299 | ||
13.7 Übung | 299 | ||
14 Multimedia | 300 | ||
14.1 Audioressourcen | 300 | ||
14.2 Soundeffekte mit SoundPool | 301 | ||
14.3 Das Universalgenie: MediaPlayer | 303 | ||
14.3.1 Audioressourcen abspielen | 303 | ||
14.3.2 Audiodateien vom Dateisystem abspielen | 304 | ||
14.3.3 Audiodateien aus dem Internet abspielen | 304 | ||
14.3.4 Auf das Abspielende reagieren | 305 | ||
14.3.5 MediaPlayer-Objekte wiederverwenden | 306 | ||
14.3.6 Ressourcen freigeben | 308 | ||
14.3.7 Audiodateien wiederholt abspielen | 309 | ||
14.4 Piepen und andere Töne | 309 | ||
14.5 Bilddateien anzeigen | 311 | ||
14.6 Videos abspielen | 312 | ||
14.7 Fotos und Videos aufnehmen | 314 | ||
14.8 Fragen und Antworten | 317 | ||
14.9 Übungen | 317 | ||
15 Sensoren | 318 | ||
15.1 Zugriff | 318 | ||
15.1.1 Was Sie benötigen | 319 | ||
15.1.2 Welche Sensoren sind verfügbar? | 319 | ||
15.1.3 Anmeldung beim Sensor | 321 | ||
15.2 Sensordaten auslesen | 322 | ||
15.2.1 Beschleunigungswerte ermitteln | 324 | ||
15.2.2 Lagedaten ermitteln | 328 | ||
15.3 Fragen und Antworten | 331 | ||
15.4 Übung | 332 | ||
16 Einsatz der Datenbank SQLite | 334 | ||
16.1 Was ist eine relationale Datenbank? | 334 | ||
16.2 Datenbank anlegen/öffnen | 335 | ||
16.2.1 onCreate() | 336 | ||
16.2.2 onUpgrade() | 338 | ||
16.2.3 close() | 338 | ||
16.2.4 Datenbanken als Ressourcen mitgeben | 338 | ||
16.3 Datenzugriffe | 339 | ||
16.4 Datenbankinhalte mit ListView anzeigen | 344 | ||
16.5 Fragen und Antworten | 348 | ||
16.6 Übung | 349 | ||
17 Geolokation | 350 | ||
17.1 Zugriff | 350 | ||
17.1.1 Verfügbarkeit feststellen | 350 | ||
17.1.2 Daten empfangen | 351 | ||
17.1.3 Empfänger abmelden | 352 | ||
17.2 Geokoordinaten | 353 | ||
17.2.1 Sexagesimale und dezimale Darstellung | 353 | ||
17.2.2 Das Location-Objekt | 353 | ||
17.3 Eine GPS-Tracker-App | 355 | ||
17.4 Fragen und Antworten | 359 | ||
17.5 Übung | 359 | ||
18 Brettspiel-Apps (TicTacToe) | 360 | ||
18.1 Aufbau und Benutzeroberfläche | 360 | ||
18.2 Die Start-Activity (MainActivity) | 362 | ||
18.3 Spielfeld und Logik (TicTacToeView) | 363 | ||
18.3.1 Vorbereitungen | 363 | ||
18.3.2 Spielfeld zeichnen | 364 | ||
18.3.3 Spielerzug durchführen | 366 | ||
18.3.4 Computerzug mit AsyncTask durchführen | 367 | ||
18.4 Verbesserungen | 370 | ||
18.5 Frage und Antwort | 370 | ||
18.6 Übung | 371 | ||
19 Tipps und Tricks | 372 | ||
19.1 Das Smartphone vibrieren lassen | 372 | ||
19.2 UI-Code periodisch ausführen lassen | 373 | ||
19.3 Bildergalerien mit GridView und BaseAdapter | 376 | ||
19.3.1 Die Bildressourcen | 377 | ||
19.3.2 Die Adapter-Klasse | 377 | ||
19.3.3 Die GridView | 380 | ||
19.3.4 Angeklickte Bilder als Vollbild anzeigen | 381 | ||
19.4 Spinner verwenden (Listenfelder) | 383 | ||
19.4.1 Den Spinner mit Daten füllen | 384 | ||
19.4.2 Ereignisbehandlung | 385 | ||
19.5 Mehrsprachige Apps | 386 | ||
19.6 Schlussbemerkung | 389 | ||
Teil IV: Anhänge | 390 | ||
Anhang A: Apps veröffentlichen oder weitergeben | 392 | ||
A.1 Die App vorbereiten | 392 | ||
A.2 Digitales Signieren | 394 | ||
A.3 Die App exportieren und signieren | 395 | ||
A.4 Bei Google Play registrieren | 397 | ||
A.4.1 Steuerliche Aspekte bei App-Verkauf | 398 | ||
A.5 App hochladen | 399 | ||
A.6 Weitergabe an Bekannte | 399 | ||
Anhang B: Android Studio | 402 | ||
B.1 Android-Projekt anlegen | 402 | ||
B.2 Projekt bauen (Build) | 402 | ||
B.3 Projekte löschen | 404 | ||
B.4 Eclipse-ADT-Projekt importieren | 404 | ||
B.5 Run-Konfigurationen anpassen | 404 | ||
B.6 Fenster zurücksetzen | 405 | ||
B.7 Apps exportieren | 405 | ||
B.8 Kleines Android Studio-Wörterbuch | 405 | ||
Anhang C: Emulator, ADM & Debugger | 408 | ||
C.1 Der Emulator | 408 | ||
C.1.1 AVD-Dateien | 409 | ||
C.1.2 Emulator starten | 412 | ||
C.1.3 Die Emulator-Bedienung | 414 | ||
C.1.4 Apps installieren und deinstallieren | 415 | ||
C.2 Android Device Monitor (ADM) | 415 | ||
C.3 Der Debugger | 420 | ||
C.3.1 Debug-Lauf starten | 420 | ||
C.3.2 Debug-Möglichkeiten | 421 | ||
C.4 Debugging-Beispiel | 423 | ||
Anhang D: Das Material zum Buch | 428 | ||
Anhang E: Lösungen | 430 | ||
Anhang F: Glossar | 446 | ||
Index | 456 |