Einführung in die Android-Entwicklung

Book description

Für Android-Smartphones zu programmieren ist eine feine Sache: Entwickelt wird in Java, das können sowieso viele, Googles Android Market ist im Gegensatz zu Apples App Store keinen Kontrollen durch das Unternehmen unterworfen, und man kann seine Apps sowieso auch über andere, eigene Kanäle vertreiben.

Allerdings ist die Android-Plattform komplex. Der Linux-Kern, die eigene Virtual Machine namens Dalvik, die Anwendungsschicht, all die Interfaces, Adapter und Dienste…. Auch ein erfahrener Java-Entwickler kann da gut einen Wegweiser durch den Dschungel gebrauchen.

Marko Gargenta ist erfahrener Android-Trainer und begleitet den Leser auf seinen ersten Schritten der Android-Entwicklung bis hin zu den echten professionellen Anwendungsfällen.

Table of contents

  1. Einführung in die Android-Entwicklung
  2. Vorwort
    1. Der Inhalt
    2. Die in diesem Buch verwendeten Konventionen
    3. Verwendung der Codebeispiele
    4. Danksagungen
  3. 1. Android im Überblick
    1. Was ist Android?
      1. Was »umfassend« bedeutet
      2. Open Source-Plattform
      3. Speziell für Mobilgeräte
    2. Geschichte
      1. Googles Motivation
      2. Open Handset Alliance
    3. Android-Versionen
    4. Zusammenfassung
  4. 2. Die Systemstruktur
    1. Architekturüberblick
    2. Linux
      1. Portabilität
      2. Sicherheit
      3. Funktionsumfang
    3. Native Bibliotheken
    4. Dalvik
      1. Android und Java
    5. Das Application-Framework
    6. Die Apps
      1. Die APK-Datei
      2. App-Signierung
      3. App-Vertrieb
        1. Was ist mit Viren, Malware, Spyware und anderen bösen Dingen?
    7. Zusammenfassung
  5. 3. Kurzeinführung
    1. Das Android-SDK installieren
      1. Einen PATH zu den Werkzeugen einrichten
      2. Eclipse installieren
      3. Eclipse-Arbeitsbereiche
      4. Die Android-Entwicklungswerkzeuge einrichten
    2. Hallo Welt
      1. Ein neues Projekt erstellen
      2. Die Manifestdatei
      3. Der Layout-XML-Code
      4. Die Datei strings
      5. Die R-Datei
      6. Der Java-Quellcode
    3. Der Emulator
      1. Emulator vs. echtes Gerät
    4. Zusammenfassung
  6. 4. Die grundlegenden Bausteine
    1. Was sind die grundlegenden Bausteine?
    2. Ein praxisnahes Beispiel
    3. Activities
      1. Der Lebenszyklus von Activities
        1. Startender Zustand
        2. Laufender Zustand
        3. Ausgesetzter Zustand
        4. Angehaltener Zustand
        5. Zerstörter Zustand
    4. Intents
    5. Services
    6. Content-Provider
    7. Broadcast-Receiver
    8. Der Application-Context
    9. Zusammenfassung
  7. 5. Überblick über das Yamba-Projekt
    1. Die Yamba-App
    2. Die Entwurfsstrategie
    3. Der Projektentwurf
    4. Teil 1: Android-Benutzerschnittstelle
      1. Eine Activity erstellen
      2. Netzwerk und Multithreading
      3. Android-Apps debuggen
    5. Teil 2: Einstellungen, Dateisystem, Optionsmenü und Intents
      1. Die Activity
      2. Das Menüsystem und Intents
      3. Das Dateisystem
    6. Teil 3: Android-Services
      1. Services
      2. Das Application-Objekt
    7. Teil 4: Mit Datenbanken arbeiten
      1. Androids SQLite-Unterstützung
      2. Erneute Umgestaltung des Codes
    8. Teil 5: Listen und Adapter
      1. Die Timeline-Activity
      2. Noch mehr Refactoring?
    9. Teil 6: Broadcast-Receiver
      1. Boot- und Netzwerk-Receiver
      2. Der Timeline-Receiver
      3. Berechtigungen
    10. Teil 7: Content-Provider
      1. Die Nachrichtendaten
      2. Android-Widgets
    11. Teil 8: System-Services
      1. Kompass und Position
      2. Intent-Service, Alarm und Notifikationen
    12. Zusammenfassung
  8. 6. Android-Benutzerschnittstelle
    1. Zwei Verfahren zur Erstellung von Benutzerschnittstellen
      1. Deklarative Benutzerschnittstellen
      2. Benutzerschnittstellen programmieren
      3. Das Beste aus beiden Welten
    2. Views und Layouts
      1. LinearLayout
      2. TableLayout
      3. FrameLayout
      4. RelativeLayout
      5. AbsoluteLayout
    3. Erste Schritte im Yamba-Projekt
    4. Das Layout der StatusActivity
      1. Wichtige Widget-Eigenschaften
      2. String-Ressourcen
    5. Die StatusActivity-Java-Klasse
      1. Den App-spezifischen Objekt- und Initialisierungscode erstellen
      2. Code kompilieren und Projekte erstellen: Dateien speichern
      3. Die jtwitter.jar-Bibliothek einfügen
      4. Die Manifestdatei für die Internetberechtigungen aktualisieren
    6. Logging unter Android
      1. LogCat
        1. LogCat aus der Eclipse-DDMS-Perspektive
        2. LogCat von der Kommandozeile
    7. Threading unter Android
      1. Nur ein Thread
      2. Ausführung mit mehreren Threads
      3. AsyncTask
    8. Andere UI-Events
    9. Farben und Bilder ergänzen
      1. Bilder hinzufügen
        1. Den Eclipse-WYSIWYG-Editor nutzen
        2. XML-Code direkt modifizieren
      2. Etwas Farbe reinbringen
    10. Alternative Ressourcen
    11. Die Benutzerschnittstelle optimieren
      1. Der Hierarchy Viewer
    12. Zusammenfassung
  9. 7. Einstellungen, das Dateisystem, das Optionsmenü und Intents
    1. Einstellungen
      1. Prefs-Ressource
      2. Die PrefsActivity
      3. Die Manifestdatei aktualisieren
    2. Das Optionsmenü
      1. Die Menüressource
      2. Android-Systemressourcen
      3. Die StatusActivity aktualisieren, um das Menü zu laden
      4. Eine Verarbeitung der Menüevents in die StatusActivity einbauen
      5. Strings-Ressource
    3. SharedPreferences
    4. Das Dateisystem
      1. Expedition ins Dateisystem
      2. Dateisystempartitionen
      3. Systempartition
      4. SD-Karten-Partition
      5. Die Benutzerdatenpartition
      6. Dateisystemsicherheit
    5. Zusammenfassung
  10. 8. Services
    1. Das Yamba-Application-Objekt
      1. Die Klasse YambaApplication
      2. Die Manifestdatei aktualisieren
      3. StatusActivity vereinfachen
    2. UpdaterService
      1. Die Java-Klasse UpdaterService erstellen
      2. Die Manifestdatei aktualisieren
      3. Menüelemente einfügen
      4. Die Verarbeitung des Optionsmenüs aktualisieren
      5. Den Service testen
    3. Schleifen im Service
      1. Den Service testen
    4. Daten abrufen
      1. Den Service testen
    5. Zusammenfassung
  11. 9. Die Datenbank
    1. Über SQLite
    2. SQLiteOpenHelper
      1. Das Datenbankschema und seine Erstellung
      2. Die vier Grundoperationen
      3. Cursor
    3. Erstes Beispiel
    4. Den UpdaterService anpassen
      1. Den Service testen
        1. Prüfen, ob die Datenbank erstellt wurde
        2. sqlite3 nutzen
      2. Datenbank-Constraints
    5. Die Nachrichtendaten isolieren
    6. Zusammenfassung
  12. 10. Listen und Adapter
    1. Die TimelineActivity
    2. Elementares TimelineActivity-Layout
      1. Der ScrollView
      2. Die Klasse TimelineActivity erstellen
    3. Über Adapter
      1. Der TimelineActivity einen ListView hinzufügen
        1. ListView vs. ListActivity
      2. Ein RowLayout erstellen
      3. In TimelineActivity.java einen Adapter erstellen
    4. TimelineAdapter
    5. ViewBinder: eine bessere Alternative für TimelineAdapter
    6. Die Manifestdatei aktualisieren
      1. Anfängliche App-Einrichtung
    7. Eine Activity-Unterklasse als gemeinsame Basis
      1. Service-An/Aus-Schalter
    8. Zusammenfassung
  13. 11. Broadcast-Receiver
    1. Über Broadcast-Receiver
    2. Der BootReceiver
      1. Den BootReceiver in der Android-Manifestdatei registrieren
      2. Den BootReceiver testen
    3. Der TimelineReceiver
    4. Intents per Broadcast absetzen
    5. Der Network-Receiver
    6. Eigene Berechtigungen zum Senden und Empfangen von Broadcasts einführen
      1. Berechtigungen in der Manifestdatei deklarieren
      2. Den Service anpassen, um die Berechtigung einzufordern
      3. Den TimelineReceiver anpassen, um Berechtigungen einzufordern
    7. Zusammenfassung
  14. 12. Content-Provider
    1. Einen Content-Provider erstellen
      1. Den URI definieren
      2. Daten einfügen
      3. Daten aktualisieren
      4. Daten löschen
      5. Daten abfragen
      6. Den Datentyp ermitteln
      7. Die Android-Manifestdatei aktualisieren
    2. Den Content-Provider in einem Widget nutzen
      1. Die Klasse YambaWidget implementieren
      2. Das XML-Layout erstellen
      3. Die AppWidgetProviderInfo-Datei erstellen
      4. Die Manifestdatei aktualisieren
      5. Das Widget testen
    3. Zusammenfassung
  15. 13. System-Services
    1. Kompass-Demo
      1. Allgemeine Schritte bei der Verwendung von System-Services
      2. Benachrichtigungen durch den Kompass
      3. Kompass-Haupt-Activity 
      4. Das Rose-Widget
    2. Der Location-Service
      1. Wo bin ich?-Demo
        1. Das Layout
        2. Die Activity für unseren Location-Listener
        3. Die Manifestdatei
    3. Den Location-Service in Yamba integrieren
      1. Die Einstellungen anpassen
      2. Die YambaApplication anpassen
      3. Die StatusActivity anpassen
    4. Intent-Service
      1. Alarme
        1. PendingIntent
      2. Den Einstellungen ein Intervall hinzufügen
      3. Den BootReceiver anpassen
    5. Benachrichtigungen senden
    6. Zusammenfassung
  16. 14. Die Android Interface Definition Language
    1. Den entfernten Service implementieren
      1. Die AIDL schreiben
      2. Den Service implementieren
      3. Ein Parcel implementieren
      4. In der Manifestdatei registrieren
    2. Den entfernten Client implementieren
      1. An den entfernten Service binden
      2. Testen, ob alles funktioniert
    3. Zusammenfassung
  17. 15. Das Native Development Kit (NDK)
    1. Wozu das NDK gedacht ist (und wozu nicht)
    2. Probleme, die das NDK löst
      1. Die Toolchain
      2. Die Bibliotheken verpacken
      3. Dokumentation und Header-Dateien
    3. Ein NDK-Beispiel: Fibonacci
      1. FibLib
      2. Die JNI-Header-Datei
      3. C-Implementierung
      4. Das Makefile
      5. Die Shared-Library erstellen
      6. Die Fibonacci-Activity
      7. Testen, ob alles funktioniert
    4. Zusammenfassung
  18. Stichwortverzeichnis
  19. Kolophon

Product information

  • Title: Einführung in die Android-Entwicklung
  • Author(s): Marko Gargenta
  • Release date: July 2011
  • Publisher(s): O'Reilly Verlag
  • ISBN: 97833868991147