Android App Entwicklung für Dummies - Michael Burton - E-Book

Android App Entwicklung für Dummies E-Book

Michael Burton

2,0
21,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Haben Sie eine kreative Idee für eine eigene App und Vorkenntnisse in Java und XML? Dann erfahren Sie in diesem Buch, wie Sie Ihre Idee umsetzen und eine App mit allen Schikanen für Android-Smartphones programmieren können. Der Autor erklärt, wie Sie die kostenlosen Programme Android Studio und Java Development Kit herunterladen, wie Sie den Emulator nutzen und wie Sie Ihre App im Google Play Store veröffentlichen. Schritt für Schritt erläutert er anhand von zwei Beispielen das Know-how der App-Entwicklung. Außerdem erklärt er Ihnen, wie Sie Ihre App für Tablets optimieren. Die vollständigen Quelltexte werden zum Download angeboten. Legen Sie los!

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 472

Bewertungen
2,0 (16 Bewertungen)
0
0
6
4
6
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

3., aktualisierte Auflage 2016

© 2016 WILEY-VCH Verlag GmbH % Co. KGaA, Weinheim Original English language edition Android App Development For Dummies © 2015 by Wiley Publishing, Inc.

All rights reserved including the right of reproduction in whole or in part in any form.

This translation published by arrangement with John Wiley and Sons, Inc.

Copyright der englischsprachigen Originalausgabe Android App Development For Dummies © 2015 by Wiley Publishing, Inc.

Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Diese Übersetzung wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.

Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley % Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.

Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley % Sons, Inc., USA, Deutschland und in anderen Ländern.

Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.

Coverfoto: vege/Fotolia.comKorrektur: Petra Heubach-Erdmann, DüsseldorfSatz: inmedialo Digital- und Printmedien UG, Plankstadt

Print ISBN: 978-3-527-71149-9ePub ISBN: 978-3-527-69248-4mobi ISBN: 978-3-527-69247-7

Über den Autor

Michael Burton ist der leitende Android-Entwickler bei Groupon. Er hat beispielsweise die Android-Apps Groupon, Digg, TripIt und OpenTable erstellt. Eines seiner Projekte ist mit dem Space Shuttle in den Weltraum gereist. Er hat bei Konferenzen in London, Boston, Silicon Valley, Rio de Janeiro und anderen Orten Reden über die Android-Anwendungsentwicklung gehalten. Und er ist der Autor von RoboGuice, dem Open-Source-Dependency-Injection-Framework, das beispielsweise von Google und Facebook verwendet wird. Folgen Sie Michael Burton auf Twitter (@roboguice) oder sehen Sie sich RoboGuice unter http://roboguice.org an.

Widmung

Für BugDroid.

Danksagung

Großer Dank gebührt Donn Felker, der die ursprüngliche Version dieses Buches verfasst und mir das Projekt dann überlassen hat. Hoffentlich werden wir zukünftig noch bei vielen erfolgreichen Projekten zusammenarbeiten können!

Ein großes Dankeschön geht auch an die erweiterte Open-Source-Gemeinde rund um Android und insbesondere Carlos Sessa, Manfred Moser, Donn und Jake Wharton, die mit ihrem Code, ihren Kenntnissen und ihrer Kritik zu diesem Buch beigetragen haben.

Dank gilt auch meinem Team bei Groupon und damit Chris, Alex, Robyn, Eric, Aubrey und David, die mir dabei geholfen haben, die Android-Plattform besser zu verstehen, als es mir allein möglich gewesen wäre.

Und schließlich will ich auch meinen Freunden und meiner Familie danken, die mich während der Abende meiner Arbeit an diesem Projekt unterstützt haben. Die Gesellschaft unseres Welpen und ein paar belohnende Leckereien für fertige Kapitel haben mir wirklich über diese langen Wochenenden hinweggeholfen!

Inhaltsverzeichnis

Über den Autor

Widmung

Danksagung

Einführung

Über dieses Buch

Wie Sie dieses Buch benutzen sollten

Törichte Annahmen über den Leser

Wie dieses Buch aufgebaut ist

Teil I: Android-Grundlagen

Teil II: Ihre erste Android-App erstellen und veröffentlichen

Teil III: Eine umfassende App erstellen

Teil IV: Bei Android geht es nicht etwa nur um Telefone

Teil V: Der Top-Ten-Teil

Symbole, die in diesem Buch verwendet werden

Wie es weitergeht

Teil I Android-Grundlagen

1 Spektakuläre Android-Apps entwickeln

Warum für Android entwickeln?

Marktanteil

Zeit für die Vermarktung

Offene Plattform

Gerätekompatibilität

Kombinierbarkeit (Mashups)

Grundlagen der Android-Programmierung

Java: Ihre Android-Programmiersprache

Activities

Fragmente

Intents

Cursorlose Steuerelemente

Views

Hintergrundoperationen

Hintergrunddienste

Android Support Library

Aktionsleiste

Widgets und Benachrichtigungen

Hardwarefunktionen

Touchscreen

GPS

Beschleunigungssensor

SD-Speicherkarte

Softwarewerkzeuge

Internet

Audio- und Videounterstützung

Kontakte

Sicherheit

Google-APIs

2 Die Vorbereitung Ihrer Entwicklungszentrale

Entdecken Sie den Android-Entwickler in sich

Zusammenstellung Ihres Werkzeugkastens

Linux-Kernel

Android-Framework

Anwendungsframework

Java-Kenntnisse

Optimierung der Hardware

Betriebssystem

Computerhardware

Hilfsprogramme installieren und konfigurieren

Android Studio installieren

Mac-Benutzer

Windows-Benutzer

Java 8 installieren

SDK-Pakete hinzufügen

Machen Sie sich mit dem Android-SDK vertraut

Android-Plattformen spezifizieren

SDK-Tools zur allgemeinen Programmentwicklung nutzen

Lernen Sie den Emulator kennen

Kooperation mit echten Android-Geräten (Windows)

Beseitigung von Programmfehlern

Probieren Sie die API- und SDK-Beispiele aus

Sehen Sie sich die API-Demos im Testlauf an

Teil II Ihre erste Android-App erstellen und veröffentlichen

3 Ihr erstes Android-Projekt

Ein neues Projekt in Android Studio anlegen

Auf Fehlermeldungen reagieren

Einen Emulator einrichten

Die App »Hello Android« starten

Die App im Emulator ausführen

App-Logs überprüfen

Die Projektstruktur

Durch die Ordner Ihrer App navigieren

Die Manifest-Datei Ihrer App

Die Datei »build.gradle«

Bedeutung der Versionen von Compile SDK, Minimum SDK und Target SDK

Compile SDK Version

Minimum SDK Version

Target SDK Version

Was als Nächstes kommt

4 Entwicklung der Benutzeroberfläche

Erstellen der App »Silent Mode Toggle«

Layout der Anwendung

Mit Views arbeiten

Die Layoutwerkzeuge von Android nutzen

Bilder zu Ihrer App hinzufügen

Ein Startsymbol für die App erstellen

Ein eigenes Startsymbol entwerfen

Ein eigenes Startsymbol hinzufügen

Vorschau auf die App im Visual Designer

5 Code für Ihre App

Grundlagen von Aktivitäten

Der Lebenszyklus von Aktivitäten

Den Lebenszyklus einer Aktivität verfolgen

Ihre erste Aktivität erstellen

Wir beginnen mit »onCreate«

Android die Benutzeroberfläche anzeigen lassen

Umgang mit Benutzereingaben

Ihre erste Ereignisbehandlungsroutine für Klicks

Mit den Klassen des Android-Frameworks arbeiten

Dienste nutzen

Den Lautlosmodus mit AudioManager umschalten

Ihre Anwendung installieren

Zurück zum Emulator

Apps auf Android-Geräten installieren

Material Design

Oh je! Auf Fehler reagieren

Die Android-View benutzen

Den Debugger von Android Studio nutzen

Über Anwendungsgrenzen hinweg denken

Mit Ihrer Anwendung interagieren

Prüfen Sie, ob Ihre App funktioniert

6 Grundlagen von Android-Ressourcen

Ressourcen verstehen

Abmessungen

Styles (Formatvorlagen)

Themes (Schemas)

Werte

Menüs

Farben

Arbeiten mit Ressourcen

Strings in Ressourcen verschieben

Der Kampf mit den Bildern

Globalisierung von Apps mit Ressourcen

Unterschiedlicher Text für unterschiedliche Anwender: Die Verwendungvon Resource Qualifier Directories

Standardressourcen verwenden

Übersetzung in eine andere Sprache

Umgang mit unterschiedlichen Bildschirmgrößen

7 Umwandlung Ihrer Applikation in ein App-Widget

In Android mit App-Widgets arbeiten

Arbeiten mit RemoteView

»AppWidgetProvider« nutzen

Mit Intents und PendingIntent arbeiten

Das Intent-System von Android verstehen

Intent-Daten verstehen

Intents auswerten

»PendingIntent« nutzen

Das App-Widget erstellen

»AppWidgetProvider« implementieren

Kommunikation mit dem App-Widget

Das Layout des App-Widgets erstellen

Arbeit in »AppWidgetProvider« verrichten

Arbeiten mit den Metadaten des App-Widgets

Die neuen Komponenten mit der Manifest-Datei registrieren

8 Veröffentlichung Ihrer App über Google Play Store

Eine verteilbare Datei erstellen

Auswahl der Werkzeuge

Anwendungen digital signieren

Erstellen der APK-Datei

Ein Google-Play-Entwicklerprofil erstellen

Preisgestaltung für Ihre Anwendungen

Argumente für das kostenpflichtige Modell

Argumente für das kostenlose Modell

Bildschirmfotos Ihrer Anwendung

Ihre Anwendung auf Google Play Store hochladen

Installationshäufigkeit überwachen

Teil III Eine umfassendere App erstellen

9 Entwurf der Tasks-App

Die grundlegenden Anforderungen

Daten speichern

Einplanung eines Erinnerungsskripts (also Alarmierung!)

Benachrichtigung des Benutzers

Die Bildschirme für die Applikation erstellen

Das neue Projekt wird gestartet!

Die »TaskListActivity« aufräumen

Die Layout-Datei »activity_task_list.xml« wird bearbeitet

Die Aktionsleiste einrichten

Das »TaskListFragment« erstellen

Das Fragment veranlassen, eine Liste anzuzeigen

Verleihen Sie Ihrer Aktivität Stil

10 Die Task-Detailseite erstellen

Die »TaskEditActivity« erstellen

Verknüpfung der Listen-View mit der Bearbeitungs-View

Das »TaskEditFragment« erstellen

Das Layout erstellen

Das Fragment erstellen

Jetzt geben Sie das Fragment in die Aktivität und schütteln alles gut durch

Die Stile aktualisieren

Ein Sonderbonus

11 Menüs gestalten

Grundlagen von Options- und Kontextmenüs

Ihr erstes Menü erstellen

Die XML-Datei definieren

Umgang mit Benutzeraktionen

Ein zweites Menü erstellen

Eine Langdruck-Aktion erstellen

12 Verarbeitung von Benutzereingaben

Schnittstellen für Benutzereingaben erstellen

Ein EditText-Widget erstellen

Anzeige einer Bildschirmtastatur

Auswahl von Datum und Uhrzeit

Auswahl-Schaltflächen erstellen

Datums- und Zeitauswahlen

Datum und Zeit des Tasks anzeigen

Datums- und Zeitauswahlen erstellen

Datum- und Zeitwähler mit dem Fragment verknüpfen

Ein eigenes Alert-Dialogfeld erstellen

Warum Sie mit Dialogen arbeiten sollten

Den geeigneten Dialog für eine Aufgabe auswählen

Einen eigenen »AlertDialog« erstellen

Eingaben prüfen

Toast-Meldungen

Andere Prüfungsverfahren nutzen

13 Eingegebene Daten dauerhaft speichern

Orte zum Speichern von Daten

Die verschiedenen Speicheroptionen

Auswahl einer Speicheroption

Verstehen, wie der SQLite ContentProvider funktioniert

Die SQLite-Datenbank Ihrer Applikation erstellen

Die SQL-Tabelle visualisieren

Die Datenbanktabelle erstellen

ContentProvider-URIs auflösen

CRUD

Erstellen (Create)

Aktualisieren (Update)

Löschen (Delete)

Lesen (Read)

Die Speichern-Schaltfläche implementieren

Die Listen-View implementieren

Loader verwenden

Adapter verwenden

Einen Task löschen

Daten in die Bearbeitungsseite einlesen

14 Terminerinnerungen

Warum der »AlarmManager« benötigt wird

Den Benutzer um Erlaubnis bitten

Welchen Einfluss Berechtigungen auf die Benutzerfreundlichkeit haben

Berechtigungen über die Datei »AndroidManifest.xml« anfordern

Einen Prozess mit AlarmManager aufwecken

Den ReminderManager-Helfer erstellen

Die Benachrichtigung in »OnAlarmReceiver« erstellen

Eine Benachrichtigung aktualisieren

Eine Benachrichtigung löschen

Geräte neu starten

Einen »BootReceiver« erzeugen

Funktion von BootReceiver prüfen

15 Arbeiten mit dem Android-Preference-Framework

Das Android-Preference-Framework verstehen

Grundlagen der Klasse »PreferenceFragment«

Einstellungen dauerhaft speichern

Das Layout von Einstellungsbildschirmen

Einen eigenen Einstellungsbildschirm erstellen

Eine Datei für die Einstellungen erstellen

String-Ressourcen hinzufügen

Die Klasse »PreferenceFragment« nutzen

Starten der Klasse »PreferencesActivity«

Verarbeitung der Menüauswahl

Während der Programmausführung mit Einstellungen in Aktivitäten arbeiten

Werte von Einstellungen ermitteln

Werte von Einstellungen programmgesteuert setzen

Teil IV Bei Android geht es nicht etwa nur um Telefone

16 Apps für Tablets entwickeln

Berücksichtigung der Unterschiede zwischen Smartphone und Tablet

Optimierung der Tasks-App für Tablets

Variable Layouts für ein reagierendes Layout

Weitere Fragmente hinzufügen

Verschiedene Layouts für unterschiedliche Geräte erstellen

Einen Tablet-Emulator konfigurieren

Eine neue Produktvariante erstellen

Ein »AndroidManifest« für Smartphones erstellen

Den »TaskListAdapter« verschieben

Den Google Play Store informieren

Eine Android-Manifest-Datei für Tablets erstellen

Die »TaskListAndEditorActivity« für Tablets erstellen

Die Tablet-Aktivitätsklasse erstellen

Das Tablet-Layout hinzufügen

Die Tablet-App erstellen

Die App-Callbacks hinzufügen

Noch etwas ...

17 Ältere Android-Versionen unterstützen

»AppCompat« verstehen

Die »build«-Datei aktualisieren

Die Symbolleiste hinzufügen

Das »AppCompat«-Thema verwenden

Ihre App testen

Mit Rechts-nach-links-Sprachen arbeiten

Das Menü zum Hinzufügen von Tasks reparieren

Die Fensteroptionen reparieren

Neuere APIs verwenden

Android Lint verwenden

18 Die Tasks-App am Körper tragen

Vorbereitung Ihrer Entwicklungsumgebung

Vorbereitung Ihres Android-Smartphones

Einen Android-Wear-Emulator einrichten

Ihr Smartphone mit dem Wear-Emulator paaren

Eine neue Wear-App erstellen

Ein neues Modul erstellen

»MainActivity« bearbeiten

Google Play Services für die Datensynchronisierung hinzufügen

Den Adapter erstellen

Die Daten von Ihrem Smartphone veröffentlichen

Den Build des Smartphones konfigurieren

Daten vom Smartphone veröffentlichen

Die Synchronisierung testen

Die App ohne Android Studio ausführen

Die App verpacken

Was kommt als Nächstes?

19 Schnell, Mama, ich bin im Fernsehen!

Richtlinien für die Entwicklung von TV-Apps

Änderungen für TV-Apps

Die »BrowseActivity« hinzufügen

Das TV-Browse-Fragment erstellen

Den »MainFragment«-Entwurf erzeugen

Daten aus der Datenbank lesen

Datenbank-Cursor auf Tasks abbilden

Den »CardPresenter« erstellen

Die App ausführen

Elemente einfügen und bearbeiten

Hintergründe erstellen

Weitere Filter erstellen

20 Jenseits von Google

Google-Funktionen umgehen

Das Fire-SDK einrichten

Ihr Fire oder einen passenden Emulator einrichten

Einen Fire-ähnlichen Emulator erstellen

Entwickleroptionen aktivieren

Den USB-Treiber installieren (nur Windows)

Anschließen an ADB

Android-Apps bei Amazon veröffentlichen

Teil V Der Top-Ten-Teil

21 Zehn tolle kostenlose Beispielanwendungen und SDKs (mit Code!)

Beispiele aus Android

Die Google I/O App

K-9 Mail

GitHub Android App

Facebook-SDK für Android

Notepad Tutorial

U+2020

Lollipop Easter Egg

Android Bootstrap

Das AOSP

22 Zehn Tools, die Ihnen Ihr Entwicklerleben erleichtern

Android Lint

Android Systrace

RoboGuice und Dagger

Translator Toolkit

Hierarchy Viewer

UI/Application Exerciser Monkey

Git und GitHub

Picasso und OkHttp

Memory Analyzer Tool

Travis-ci

Stichwortverzeichnis

Einführung

Willkommen bei Android App Entwicklung für Dummies.

Als Android 2005 von Google übernommen wurde (ja, Android war einmal ein junges, aufstrebendes Unternehmen), stieß das zunächst einmal auf kein verbreitetes Interesse, da Google im Mobilbereich noch gar nicht aktiv geworden war. Nur wenige Jahre später war es dann aber so weit, als Google mit dem G1 sein erstes Android-Smartphone vorstellte. Und es bedeutete den Startschuss einer wahrlich enormen Entwicklung.

Das G1 war das erste frei verfügbare Android-Gerät. Es konnte seinerzeit zwar nicht mit der großen Funktionsvielfalt des iPhones mithalten, die Plattform genoss aber Vertrauen. Und mit der Veröffentlichung von Donut (Android 1.6) wurde klar, dass Google erhebliche Anstrengungen in das Produkt investierte. Und tatsächlich erschien bereits direkt nach der Version 1.6 die Version 2.0 am Horizont.

Aktuell sind wir bei der Version 5.0 der Android-Plattform angekommen, und noch gibt es keine Anzeichen, dass sich das Entwicklungstempo verlangsamen würde. Zweifellos handelt es sich immer noch um aufregende Zeiten im Bereich der Android-Entwicklung.

Über dieses Buch

Android App Entwicklung für Dummies soll Sie beim Einstieg in die Entwicklung von Android-Anwendungen unterstützen. Sie benötigen dazu keine Vorkenntnisse in der Android-Anwendungsentwicklung.

Android ist eine geräteunabhängige Plattform. Sie können daher Anwendungen für unterschiedliche Geräte entwickeln. Dabei handelt es sich nicht nur um Telefone, Uhren, Tablets, Autos, E-Book-Reader, Netbooks, Fernseher und GPS-Geräte.

Wenn Sie wissen, wie Sie Anwendungen für die Android-Plattform entwickeln können, erschließen Sie sich damit eine Vielzahl von Optionen. In diesem Buch werden Hunderte, wenn nicht Tausende Seiten an Android-Dokumentation, Tipps, Tricks und Tutorials in einem kurzen, besser verdaulichen Format zusammengefasst, damit es Ihnen als Sprungbrett in eine Zukunft als Android-Entwickler dienen kann. In diesem Buch finden Sie keine fertigen Rezepte, es stattet Sie aber mit den grundlegenden Kenntnissen aus, die Sie benötigen, um mit den verschiedenen Android-Bausteinen interaktive und überzeugende Anwendungen erstellen zu können.

Wie Sie dieses Buch benutzen sollten

In diesem Buch nutzen Sie die Klassen des Android-Frameworks und werden Java-Klassen und XML-Dateien erstellen.

Quelltextbeispiele werden in diesem Buch in einer nichtproportionalen Schriftart dargestellt, damit sie sich vom übrigen Text abheben. Codebeispiele sehen daher so aus:

public class MainActivity

Java ist eine Hochsprache, die zwischen Groß- und Kleinschreibung unterscheidet. Daher müssen Sie den Text genau so in den Editor eingeben, wie er im Buch abgedruckt ist. Ich werde mich im Buch zudem an die üblichen Java-Konventionen halten. Das erleichtert die Austauschbarkeit zwischen meinen Beispielen und denen aus dem Android-SDK (Android Software Development Kit). Für Klassennamen wird zum Beispiel immer ein Format mit Binnenversalien (PascalCase) verwendet.

Auch alle im Buch angegebenen Internetadressen (URLs) werden in der für Quellcode verwendeten Schriftart dargestellt:

http://d.android.com

Törichte Annahmen über den Leser

Für den Einstieg in die Android-Programmierung benötigen Sie einen Computer, auf dem eines der folgenden Betriebssysteme läuft:

Windows 2003, Vista, 7 oder 8

Mac OS X 10.5.8 oder höher

Linux GNOME oder KDE

Sofern sich diese Programme nicht bereits auf Ihrem Rechner befinden, müssen Sie sich darüber hinaus Android Studio (kostenlos) und das Java Development Kit (das JDK ist ebenfalls kostenlos) herunterladen. In Kapitel 2 werde ich die Installation der Tools und Frameworks ausführlich darstellen.

Da Android-Apps in der Programmiersprache Java entwickelt werden, müssen Sie diese – wie bereits erwähnt – verstehen. Zudem macht Android bei der Definition verschiedener Ressourcen innerhalb der Anwendungen recht intensiv von XML Gebrauch, weshalb Sie auch mit XML vertraut sein sollten. Sie müssen aber kein Experte in diesen Sprachen sein.

Sie benötigen auch kein Android-Gerät, da alle in diesem Buch erstellten Applikationen im Emulator funktionieren.

Wie dieses Buch aufgebaut ist

Android App Entwicklung für Dummies besteht aus fünf Teilen, die ich in den folgenden Abschnitten beschreiben werde.

Teil I: Android-Grundlagen

In Teil I werden die von Ihnen bei der Entwicklung von Android-Anwendungen verwendeten Tools und Frameworks vorgestellt. Hier werden auch die verschiedenen SDK-Komponenten und deren Einsatz im Android-Entwicklungssystem erläutert.

Teil II: Ihre erste Android-App erstellen und veröffentlichen

In Teil II werden Sie Ihre erste Android-Applikation schreiben, Silent Toggle Mode, einen Umschalter in den stummen Modus. Nach Fertigstellung der Rohanwendung werden Sie dafür ein Steuerelement erstellen, das auf dem Startbildschirm eines Android-Geräts abgelegt werden kann. Anschließend werde ich Ihnen zeigen, wie Sie Ihre Anwendung im Google Play Store genannten Marktplatz für Android-Apps veröffentlichen können.

Teil III: Eine umfassende App erstellen

Teil III stellt dann etwas höhere Anforderungen an Ihre Fähigkeiten und zeigt Ihnen schrittweise die Erstellung einer Anwendung, mit der Sie Termine für Aufgaben festlegen und sich daran erinnern lassen können. Im Rahmen dieser aus mehreren Bildschirmen bestehenden Anwendung werden Sie auch eine SQLite-Datenbank implementieren. Zudem werden Sie erfahren, wie Sie in der Android-Statusleiste Meldungen anzeigen lassen und die Benutzerfreundlichkeit Ihrer Anwendungen damit steigern können.

Teil IV: Bei Android geht es nicht etwa nur um Telefone

In Teil IV werden wir die in Teil III erstellte App noch ein wenig optimieren, um sie auch auf anderen Geräten sinnvoll nutzen zu können, wie beispielsweise Tablets, Wearables, Fernsehgeräten und dem Amazon Fire.

Teil V: Der Top-Ten-Teil

In Teil V erhalten Sie einen Überblick über Beispielanwendungen, die sich als phänomenale Einstiegshilfen für Ihre eigenen Android-Apps erweisen können, und ich werde Ihnen nützliche Android-Bibliotheken vorstellen, mit denen Sie sich Ihr Leben als Android-Entwickler erheblich erleichtern können.

Symbole, die in diesem Buch verwendet werden

Dieses Symbol verweist auf Informationen, die Sie keinesfalls überspringen sollten.

Dieses Symbol soll Sie höflich auf wichtige Dinge aufmerksam machen, die Sie beim Lesen des jeweiligen Abschnitts nicht vergessen sollten.

Dieses Symbol weist darauf hin, dass die entsprechenden Erläuterungen zwar informativ sind, aber für das Verständnis der Android-Anwendungsentwicklung nicht zwingend benötigt werden. Wenn Sie wollen, können Sie diese Absätze überspringen.

Dieses Symbol weist auf potenziell auftretende Probleme hin. Lesen und merken Sie sich diese weisen Hinweise, um möglichen Ärger zu vermeiden.

Wie es weitergeht

Nun ist es an der Zeit, die Android-Plattform zu erforschen! Sie können Ihre Scheu ablegen und loslegen. Ein wenig Nervosität ist angesichts des aufregenden neuen Themas aber sicherlich verständlich.

Wenn Sie nicht gerne tippen: Sie können die vollständigen Quelltexte auf den Dummies-Webseiten herunterladen – www.wiley-vch.de/publish/dt/books/ISBN3-527-71149-X.

Teil I

Android-Grundlagen

 

In diesem Teil . . .

In Teil I stelle ich Ihnen die Android-Plattform vor und werde erläutern, was eine spektakuläre Android-Applikation ausmacht. Dabei werde ich kurz verschiedene Teile des Android-SDK (Software Development Kits) vorstellen und Ihnen erläutern, wie Sie sie in Ihren Apps nutzen können. Im Verlauf des Kapitels werden Sie die zur Entwicklung von Android-Apps erforderlichen Tools und Frameworks installieren.

1

Spektakuläre Android-Apps entwickeln

In diesem Kapitel

Gründe für die Entwicklung von Android-Apps erkennen

Erste Schritte in der Android-Programmierung unternehmen

Mit der Hardware arbeiten

Sich mit der Software vertraut machen

Google ist Spitze! Google übernahm 2005 die Android-Plattform (siehe Kasten »Die Wurzeln von Android« weiter hinten in diesem Kapitel), um ein Betriebssystem für Mobilgeräte zu entwickeln und es als offene Plattform zur Verfügung zu stellen. Google investiert weiterhin Zeit und Ressourcen in das Android-Projekt. Obwohl es die Geräte erst seit Oktober 2008 gibt, wurden mittlerweile über eine Milliarde Android-Geräte aktiviert, und täglich kommen mehr als eine Million hinzu. Innerhalb weniger Jahre konnte Android riesigen Einfluss gewinnen!

Nie war es für Android-Entwickler einfacher, Geld mit der App-Entwicklung zu verdienen. Android-Anwender vertrauen Google. Und da Ihre App im GooglePlay Store angeboten wird, sind auch viele Anwender bereit, Ihrer App zu vertrauen.

Die Wurzeln von Android

Es ist nur wenig bekannt, dass Google das Android-Projekt nicht ins Leben gerufen hat. Anfangs wurde das Betriebssystem Android von einem kleinen Start-up-Unternehmen in Silicon Valley namens Android, Inc. entwickelt, das dann im August 2005 von Google übernommen wurde. Die Unternehmensgründer kamen aus verschiedenen Technologieunternehmen des Internet-Bereichs, wie zum Beispiel Danger, Wildfire Communications,T-Mobile und WebTV. Google übernahm sie mit in das Google-Team, um dort das heute umfassende Android-Betriebssystem für Mobilgeräte zu entwickeln.

Warum für Android entwickeln?

Die Frage sollte eigentlich »Warum nicht für Android entwickeln?« lauten. Wollen Sie, dass Ihre App weltweit für Millionen Anwender verfügbar ist? Wollen Sie Apps sofort nach Abschluss der Entwicklung und Tests veröffentlichen? Gefällt es Ihnen, für offene Plattformen zu entwickeln? Wenn Sie eine dieser Fragen bejaht haben, dürften Sie die Antwort kennen. Sollten Sie aber noch unentschlossen sein, lesen Sie einfach weiter.

Marktanteil

Als Entwickler können Sie Apps für einen boomenden Markt entwickeln. Die Anzahl der genutzten Android-Geräte ist größer als die Anzahl aller Geräte unter anderen Betriebssystemen für Mobilgeräte zusammen. Über den Google Play Store gelangt Ihre App direkt und einfach zum Anwender. Die Anwender müssen nicht das Internet nach zu installierenden Apps durchsuchen. Sie müssen nur den auf ihren Geräten vorinstallierten Google Play Store nutzen, um an alle Ihre Apps zu kommen. Da der Google Play Store auf den meisten Android-Geräten vorinstalliert ist (ein paar Ausnahmen sind in Kapitel 19 aufgelistet), suchen Anwender üblicherweise erst einmal im Google Play Store nach von ihnen benötigten Apps. Es ist daher gar nicht so ungewöhnlich, wenn die Anzahl der Downloads einer App binnen weniger Tage förmlich explodiert.

Zeit für die Vermarktung

Angesichts all der APIs (Anwendungsprogrammierschnittstellen – Application Programming Interfaces), die sich mit im Lieferumfang von Android befinden, lassen sich innerhalb relativ kurzer Zeit umfassende Anwendungen entwickeln. Nach der Registrierung beim Google Play Store müssen Sie Ihre Apps nur noch hochladen und veröffentlichen. Im Unterschied zu den Marktplätzen anderer Mobilgeräte gibt es beim Google Play Store keine Genehmigungsverfahren für Apps. Sie müssen Ihre Apps nur entwickeln und veröffentlichen.

Grundsätzlich kann jeder Apps veröffentlichen, es dürfte aber besser sein, wenn Sie sich an die Google-Bedingungen halten und Ihre Apps familienfreundlich gestalten. Vergessen Sie nicht, dass Android-Anwender aus den verschiedensten Regionen der Welt und allen Alterskategorien kommen.

Offene Plattform

Das Android-Betriebssystem ist eine offene Plattform und damit an keinen Hardwarehersteller und/oder Anbieter gebunden. Wie man sich leicht vorstellen kann, konnte Android durch seine freie Verfügbarkeit schnell Marktanteile gewinnen. Nichts hält Sie davon ab, sich den Android-Quellcode anzusehen. Sie können ihn über https://source.android.com herunterladen. Durch den quelloffenen Code können Hersteller eigens angepasste Benutzeroberflächen oder auch Bedienoberflächen (UI – User Interface) erstellen und sogar neue Funktionen für bestimmte Geräte hinzufügen.

Gerätekompatibilität

Android läuft auf vielen Geräten mit unterschiedlichen Bildschirmabmessungen und Auflösungen, wie beispielsweise Uhren, Handys, Tablets, Fernsehgeräten und anderen. Zudem enthält es die Werkzeuge zur Entwicklung von Apps, die verschiedene Gerätetypen unterstützen. Wenn Ihre App beispielsweise nur mit einer Kamera an der Vorderseite des Geräts funktioniert, wird sie im Google Play Store nur bei Benutzung entsprechend ausgestatteter Geräte angezeigt. Diese Art der Hardwareerkennung wird bei Android Feature Detection genannt. (Mehr zur Veröffentlichung Ihrer Apps im Google Play Store erfahren Sie in Kapitel 8.)

Kombinierbarkeit (Mashups)

Wenn Sie zwei oder mehr Dienste kombinieren, um eine App zu erstellen, wird dies Mashup genannt. Sie können beispielsweise ein Mashup erstellen, wenn Sie die Kamera und die Ortungsdienste von Android nutzen, um ein Foto aufzunehmen, in dem die genaue Positionsangabe angezeigt wird. Oder Sie können die Map-API mit der Kontaktliste kombinieren, um all Ihre Kontakte in einer Landkarte anzeigen zu lassen. Die folgenden Mashup-Beispiele sollen Ihre Fantasie noch ein wenig stärker anregen:

Geolokation und soziale Netze: Nehmen wir an, Sie wollen eine App schreiben, die Ihren aktuellen Standort mittels geologischer Ortsbestimmung (Geolokation) über den gesamten Tag hinweg alle zehn Minuten auf Twitter meldet. Kein Problem. Dazu müssen Sie nur die Lokalisierungsdienste von Android und die Twitter-API eines Drittanbieters (zum Beispiel iTwitter) miteinander kombinieren.

Geolokation und Spiele: Ortsabhängige Spiele werden immer beliebter und bieten tolle Möglichkeiten, Anwender in Spiele einzubinden. Ein Spiel könnte als Hintergrunddienst laufen, den aktuellen Standort eines Spielers feststellen und diesen dann mit den Standorten anderer Anwender in derselben Gegend vergleichen. Befindet sich dann beispielsweise ein anderer Anwender in weniger als einem Kilometer Entfernung, könnte der erste Spieler benachrichtigt werden und ihn zum (Spiele-)Kampf herausfordern. Ermöglicht wird dies durch die leistungsfähigen Technologien von GPS und Android. Falls Sie daran interessiert sind, Spiele für Android zu entwickeln, lesen Sie unter https://developers.google.com/games/services/ nach. Dort finden Sie weitere Informationen über die Google-Play-Games-Services.

Kontakte und Internet: Angesichts der Vielzahl der verfügbaren nützlichen APIs lassen sich über die Kombination von Funktionen mehrerer APIs leicht umfassende Apps erstellen. Sie können beispielsweise die Namen aus Kontaktlisten und das Internet gemeinsam dazu benutzen, um Grußkarten-Apps zu erstellen. Sie könnten den Anwendern über Ihre App auch die Kontaktaufnahme mit sich erleichtern oder ihnen die Weiterleitung der App an Freunde ermöglichen. All dies ist mit den integrierten APIs machbar. (Mehr über APIs erfahren Sie im Abschnitt »Google-APIs« weiter hinten in diesem Kapitel.)

Entwicklern bietet Android nahezu grenzenlose Möglichkeiten, mit denen Sie jedoch vorsichtig umgehen sollten. Bilden Sie sich selbst ein möglichst objektives Urteil, bevor Sie Ihre Apps veröffentlichen und der Masse zugänglich machen. Dass Ihnen als Hintergrundmotiv dieses Filmchen gefällt, in dem Sie auf Ihrer Geburtstagsparty den Hula tanzen, bedeutet nicht zwangsläufig, dass andere das auch sehen wollen oder sehen sollten.

Grundlagen der Android-Programmierung

Sie müssen glücklicherweise nicht Mitglied des Mensa-Clubs sein, um Android-Apps programmieren zu können. Dass Java als Standardsprache dient, erleichtert die Android-Programmierung. Aber auch wenn sich Android-Programme relativ leicht schreiben lassen, ist der Programmcode im Allgemeinen nicht unbedingt ein Kinderspiel.

Wenn Sie bisher noch nie Apps entwickelt haben, bildet dieses Buch vielleicht nicht den optimalen Einstieg. Zum Erlernen der Grundlagen empfehle ich Ihnen das Buch Java für Dummies (Wiley-VCH). Wenn Sie erst einmal die Java-Grundlagen beherrschen, sollten Sie auf das vorliegende Buch besser vorbereitet sein.

Auch wenn das Betriebssystem Android hauptsächlich aus Java-Code besteht, gibt es einige kleinere Teile des Frameworks, die nicht in Java geschrieben sind. Android-Apps verwenden neben Java auch kleine XML-Abschnitte. Daher sollten Ihnen für das vorliegende Buch auch die XML-Grundlagen halbwegs vertraut sein.

Java: Ihre Android-Programmiersprache

Android-Apps werden in Java geschrieben. Dabei handelt es sich zwar nicht um das ausgewachsene Java, an das die Entwickler für die Java-Unternehmensplattform (JEE – Java Platform, Enterprise Edition) gewöhnt sind, aber doch um eine für Android sehr praktische Java-Untermenge, die einige Klassen ausspart, die für Mobilgeräte sinnlos sind. Wenn Sie bereits Erfahrungen in Java gesammelt haben, sollten Sie sich im Bereich der App-Entwicklung für Android direkt heimisch fühlen.

Selbst wenn Sie kein Java-Referenzhandbuch griffbereit halten, können Sie, wenn Sie bestimmte Befehle nicht ganz verstehen, immer noch danach googeln, beispielsweise unter www.google.com oder www.stackoverflow.com. Da Java keineswegs neu ist, finden Sie für nahezu alle Einsatzzwecke eine Menge Beispiele im Web.

Nicht alle Klassen, die Java-Programmierer nutzen können, sind auch unter Android verfügbar. Prüfen Sie vor deren Nutzung, ob sie bereitstehen. Falls nicht, gibt es aber wahrscheinlich für Ihre Zwecke passende Alternativen in den Android-APIs.

Activities

Android-Apps bestehen aus einer oder mehreren Activities. Ihre Android-App muss mindestens eine Activity enthalten, kann aber auch mehrere umfassen. Eine Activity ist eine Art Container für Teile der Benutzeroberfläche und den für deren Ausführung benötigten Code. Sie können sich Activities als einzelne Seiten Ihrer App vorstellen – eine Seite entspricht einer Activity. Activities werden in den Kapiteln 3 und 5 ausführlicher behandelt.

Fragmente

Bei den einzelnen »Seiten« einer Android-App handelt es sich um jeweils eigenständige Activities. In älteren Android-Versionen haben Sie ein Element, das Sie auf dem Bildschirm anzeigen wollten, direkt in der Activity-Klasse abgelegt. Diese Vorgehensweise funktionierte zufriedenstellend bei kleinen Smartphonebildschirmen, auf denen typischerweise nicht sonderlich viele Informationen gleichzeitig dargestellt werden können. Darauf lässt sich vielleicht eine Aufgabenliste oder ein zu bearbeitender Text anzeigen, beide Elemente gleichzeitig auf diesen kleinen Bildschirmen darzustellen, ist aber unmöglich.

Auf den Bildschirmen von Tablets haben Sie hingegen massig Platz. Hier ist es nicht nur sinnvoll, Benutzern eine Aufgabenliste auf dem Bildschirm anzuzeigen und sie diese auf derselben Seite bearbeiten zu lassen, es würde vielmehr sogar recht umständlich wirken, wenn man anders vorgehen würde. Die Bildschirme der meisten Tablets bieten einfach zu viel Platz, um sie mit einzelnen langen Listen oder einer Menge Leerraum zu füllen.

Unter Android lassen sich zwei Activities nicht so einfach gleichzeitig auf den Bildschirm bringen. Was also ist zu tun? Fragmente sind die Lösung.

Wenn Sie Fragmente benutzen, kann eine Liste die eine Hälfte des Bildschirms belegen, während der Bearbeitungsbereich die andere Hälfte benutzt. Wie Sie Fragmente in Ihrer Smartphoneanwendung nutzen können, werden Sie in Kapitel 9 erfahren. Wie Sie bei der Skalierung Ihrer App für Tablets vorgehen können, erfahren Sie dann in Kapitel 17.

Fragmente können Sie sich als Mini-Activities vorstellen: Da alle Fragmente einen eigenen Lebenszyklus besitzen, wissen Sie unter anderem, wann sie erzeugt und zerstört werden. Fragmente werden in Aktivitäten eingebettet.

Intents

Intents bilden den Kern des Nachrichtensystems von Android. Intents bestehen aus zwei Elementen:

Einer Aktion. Die allgemeine Aufgabe (Anzeigen, Bearbeiten, Wählen und so weiter), die nach dem Empfang eines Intents ausgeführt werden soll.

Daten. Die Daten, die von einer Aktion verarbeitet werden sollen, wie beispielsweise der Name eines Kontakts.

Intents werden zum Starten von Aktivitäten und für die Kommunikation zwischen den verschiedenen Teilen des Android-Systems genutzt. Applikationen können Intents senden und empfangen.

Messages mit Intents versenden

Wenn Sie einen Intent senden, handelt es sich dabei um eine Message (Systemnachricht), die Android mitteilt, dass es etwas geschehen lassen soll. Ein Intent könnte Android aus Ihrer App heraus zum Starten einer neuen Activity oder einer anderen App bewegen.

Intent-Filter registrieren

Nur weil Sie einen Intent versenden, muss noch lange nicht automatisch etwas passieren. Sie müssen einen Intent-Filter registrieren, der auf die Intents wartet und Android dann mitteilt, was es tun soll und ob die Task eine neue Activity oder eine andere App starten will. Wenn mehrere Empfänger (Receiver) mit einem bestimmten Intent etwas anzufangen wissen, kann ein Chooser (Auswahlmenü) erstellt werden, über den der Anwender entscheiden kann, mit welcher App eine Activity weiterverarbeitet werden soll. Ein Beispiel dafür ist die YouTube-App, die den Anwender entscheiden lässt, ob er Videos in der YouTube-App oder in einem Browser anzeigen will.

Verschiedene registrierte Receiver wie beispielsweise die Gmail- oder Hangouts-Apps wissen standardmäßig, was mit Intents zum Teilen von Bildern zu tun ist. Wenn es mehrere mögliche Intent-Filter gibt, wird dem Anwender ein Auswahlmenü angezeigt, in dem er gefragt wird, wie weiter vorgegangen werden soll: das E-Mail-Messaging verwenden oder eine andere Applikation, wie in Abbildung 1.1 gezeigt.

 

Abbildung 1.1: Ein Auswahlmenü (Chooser)

Wenn das Android-System keinen passenden Empfänger für einen gesendeten Intent findet und manuell kein Chooser erzeugt wurde, stürzt die App zur Laufzeit mit einem Ausnahmefehler (run-time exception) ab und es kommt zu einem nicht behebbaren Fehler in der App. Android erwartet von Entwicklern, dass sie wissen, was sie tun. Weitere Informationen über die Verwendung von Intent-Choosern finden Sie unter http://d.android.com/training/basics/intents/sending.html.

Cursorlose Steuerelemente

Anders als beim PC, bei dem Sie einen Zeiger mit der Maus über den Bildschirm schubsen, ersetzen Ihre Finger bei Android-Geräten nahezu alle Funktionen einer Maus. Und was ist mit dem Rechtsklick? Bei Android wird der Rechtsklick durch den Langdruck ersetzt. Wenn Sie Ihren Finger über längere Zeit hinweg auf eine Schaltfläche (auch Knopf für Linux-Anwender), ein Symbol oder den Bildschirm legen, wird ein Kontextmenü angezeigt.

Als Entwickler können Sie Kontextmenüs erstellen und ändern. Zudem können Sie bei Android-Geräten beispielsweise zwei Finger anstelle nur eines Mauszeigers verwenden. Denken Sie aber daran, dass Finger unterschiedlich groß sind, und entwerfen Sie Ihre Benutzeroberflächen entsprechend. Die Schaltflächen sollten groß genug sein und ausreichend Abstand untereinander haben, damit selbst Anwender mit riesigen Pranken Ihre Apps auf kleinen Smartphones und Tablets leicht bedienen können.

Views

Was ist denn das nun schon wieder? Bei einer View handelt es sich um ein Grundelement der Android-Benutzeroberfläche, einen rechteckigen Bereich auf dem Bildschirm, der Objekte anzeigt und Ereignisse verarbeitet. Views sind also grundlegende Bausteine von Android-Benutzeroberflächen, ganz ähnlich wie Absatz- oder Anker-Tags (<p> und <a>) Bausteine einer HTML-Seite sind. Einige Beispiele für Views, die in Android-Apps verwendet werden können, sind TextView, ImageView, Layout und Button, es gibt jedoch noch unzählige andere, die Sie auch unbedingt kennenlernen sollten. Und Sie können auch Ihre eigenen, benutzerdefinierten Views implementieren.

Es gibt also noch viel mehr Views, die auf Sie warten. Einzelheiten dazu finden Sie bei den Paketen android.widget und android.view in der Android-Dokumentation unter http://developer.android.com/reference/packages.html.

Hintergrundoperationen

In Android gibt es verschiedene Möglichkeiten, mehrere Operationen gleichzeitig ausführen zu lassen, ohne selbst Threads verwalten zu müssen (was jedoch generell nicht zu empfehlen ist). Wenn Sie Daten aus einer Datenbank laden, um diese auf dem Bildschirm anzuzeigen, verwenden Sie im Allgemeinen Loader. Loader übernehmen die Verwaltung der Hintergrund-Threads für Sie und überwachen außerdem Ihre Datenbank auf Änderungen, sodass Ihre Benutzeroberfläche aktualisiert wird, sobald sich Daten ändern. Weitere Informationen über Loader finden Sie in Kapitel 13.

Für andere Hintergrundoperationen könnten Sie beispielsweise die Klasse AsyncTask verwenden, um eine Operation als Hintergrund-Thread auszuführen. Mit AsyncTask können Sie einen Task im Hintergrund starten und sein Ergebnis an Ihren Vordergrund-Thread weitergeben, sodass Sie Ihre Benutzeroberfläche aktualisieren können. Damit erhalten Sie ein sauberes Programmiermodell für die asynchrone Verarbeitung.

Mithilfe von Threads können Sie auf einem Gerät mehrere Anweisungsmengen gleichzeitig ausführen. Sie verwenden alle denselben Speicher und dieselbe CPU, aber wenn ein Thread unterbrochen wird, weil er beispielsweise auf etwas anderes wartet, können andere Threads fortgesetzt werden, damit die CPU immer etwas zu tun hat.

Die asynchrone Verarbeitung sollten Sie für Tasks nutzen, deren Ausführung länger als nur ein paar Sekundenbruchteile dauert, also beispielsweise für die Netzwerkkommunikation (Internet) oder das Lesen/Schreiben von Daten auf Speichermedien. Wenn die Anwender auf die Ergebnisse Ihres Tasks warten müssen, sollten Sie einen asynchronen Aufruf und ein Element auf der Benutzeroberfläche verwenden, um ihnen mitzuteilen, dass gerade irgendetwas passiert.

Wenn Sie kein asynchrones Programmiermodell nutzen, könnten Anwender Ihre App (berechtigterweise) für fehlerhaft halten. Es dauert beispielsweise ein wenig, die neuesten Twitter-Mitteilungen aus dem Internet herunterzuladen. Wenn das Netzwerk stark ausgelastet ist und Ihre App nicht asynchron arbeitet, hängt sie scheinbar und reagiert nicht mehr auf Eingaben, woraufhin Anwender meinen könnten, dass ein Fehler aufgetreten ist. Wenn eine App nicht innerhalb eines angemessenen Zeitrahmens reagiert, wird ein Dialogfeld angezeigt, das den Anwender darüber informiert, dass die App nicht mehr reagiert (siehe Abbildung 1.2). Dann kann der Anwender entscheiden, ob er die App schließen oder auf ihre Wiederherstellung warten will. Größtenteils klicken die Benutzer auf OK und schließen Ihre App.

 

Abbildung 1.2: Hier wird gemeldet, dass eine App nicht mehr reagiert.

Am besten betten Sie CPU-lastigen oder länger laufenden Code in einen anderen Thread ein. Die Vorgehensweise wird auf der Seite Keeping Your App Responsive auf der Website für Android-Entwickler unter http://d.android.com/guide/practices/design/responsiveness.html beschrieben.

Hintergrunddienste

Sie wissen möglicherweise, was ein Dienst (Service) ist, nämlich eine im Hintergrund laufende Anwendung, die nicht notwendigerweise eine Benutzeroberfläche besitzen muss. Klassische Beispiele sind die üblicherweise als Hintergrunddienst laufenden Antivirenprogramme. Auch wenn sie auf dem Bildschirm unsichtbar bleiben, wissen Sie doch, dass sie laufen.

Auch Android-Apps können Hintergrunddienste verwenden. Die meisten als Download im Google Play Store erhältlichen Audioplayer können Sie als Hintergrunddienst laufen lassen. Auf diese Weise können Sie beim Abruf Ihrer E-Mails oder der Erledigung anderer Aufgaben, für die der Bildschirm benötigt wird, weiter Musik hören.

Android Support Library

Natürlich macht es am meisten Spaß, Apps für die neuesten und leistungsstärksten Geräte zu entwickeln! Es kommt jedoch auch immer wieder vor, dass Sie ältere Geräte unterstützen müssen. Schließlich verwenden nicht alle Ihre Anwender garantiert immer die allerneueste Version von Android.

Glücklicherweise bietet Android aber auch hier eine Lösung. Sie können nämlich die Android Support Library benutzen, um Ihre Apps mit allen Geräten bis zurück in die Android-Steinzeit (etwa 2010 nach Christus) kompatibel zu machen.

Diese Hilfsbibliotheken unterstützen nicht nur Fragmente und Loader, sondern erweitern die alten Geräte auch um einige neuere APIs wie:

RecyclerView: Erzeugt eine endlos blätterbare View-Liste.

CardView: Eine »Karte«, die Sie mit einer RecyclerView nutzen können, um eine blätterbare Liste mit Karten in Ihren Apps zu erstellen.

ViewPager: Seiten nach links und rechts wischen.

ShareCompat: Zum Teilen aller möglichen Dinge mit Freunden.

Eine vollständige Liste der Funktionen der Android Support Library finden Sie unter https://developer.android.com/tools/support-library/features.html. Unter https://developer.android.com/about/dashboards erfahren Sie, wie viele Android-Benutzer welche Android-Versionen verwenden.

Aktionsleiste

In der Aktionsleiste bringen Sie zahlreiche Schaltflächen und Menüs unter, die den Anwendern gestatten, mit Ihrer App zu interagieren. Die Aktionsleiste wird fast immer oben quer über den Bildschirm angezeigt – man kann sie also kaum übersehen. Abbildung 1.3 zeigt ein Beispiel für die Aktionsleiste der YouTube-App.

 

Abbildung 1.3: Die YouTube-Aktionsleiste für ein Android-Demovideo

Beachten Sie diese Elemente in der Aktionsleiste:

Aufwärts-Schaltfläche, App-Logo: Tippen Sie das App-Logo in der Aktionsleiste an, um eine Ebene aufwärtszugehen.

Beachten Sie den feinen Unterschied zwischen der Aufwärts- und der Zurück-Schaltfläche. Über die Zurück-Schaltfläche kehrt der Benutzer zur vorherigen Aktivität zurück, wobei die benutzte App keine Rolle spielt. Die Aufwärts-Schaltfläche bringt den Benutzer hingegen zurück zur letzten Aktivität in der aktuellen Anwendung, selbst wenn es sich bei dieser nicht um die Aktivität handelt, die er zuletzt genutzt hat.

Angenommen, Sie betrachten eine Webseite im Chrome-Browser und tippen einen Link an, um die YouTube-App zu starten. Wenn Sie dann die Zurück-Schaltfläche antippen, kehren Sie damit zu Chrome zurück. Über die Aufwärts-Schaltfläche gelangen Sie hingegen zur Startseite der YouTube-App.

Seitentitel: Neben dem Symbol der Anwendung wird der Titel der aktuellen Seite in der Aktionsleiste angezeigt. Wenn sich auf der aktuellen Seite Ihrer App die Daten irgendwie filtern lassen, können Sie dort ein Dropdown-Menü einfügen, über das sich der Filter wechseln lässt.

Aktion: Am rechten Ende der Aktionsleiste können Sie verschiedene Aktionen sehen, die Benutzer ausführen können. In der YouTube-App in Abbildung 1.4 können Benutzer Videos zu einer Liste hinzufügen, sie weiterempfehlen oder nach weiteren Videos suchen. Für die Aktionsschaltflächen können Texte und/oder Symbole angezeigt werden. Sie können beliebig viele Aktionen hinzufügen. Aktionen, für die der Platz auf dem Bildschirm nicht mehr ausreicht, werden ganz rechts in ein Untermenü ausgelagert.

Kontext-Aktionsleiste (nicht gezeigt): Das Aussehen der Aktionsleiste kann geändert und an die jeweiligen Aktivitäten der Benutzer angepasst werden. Werden beispielsweise mehrere Elemente in einer Liste ausgewählt, können Sie die Standard-Aktionsleiste durch eine kontextbezogene Aktionsleiste ersetzen, um Benutzern die Auswahl auf der Grundlage dieser Elemente zu ermöglichen. Wenn beispielsweise mehrere Dateien gleichzeitig gelöscht werden können sollen, können Sie eine Löschen-Schaltfläche in die Kontext-Aktionsleiste aufnehmen.

Unter http://d.android.com/guide/topics/ui/actionbar.html finden Sie weitere Informationen über die vielseitigen Möglichkeiten, die dieses Element der Benutzeroberfläche in Ihren Apps bieten kann.

 

Abbildung 1.4: Audio-App mit Menü in der Aktionsleiste

Unter Android 2.x und in noch älteren Versionen existiert die Aktionsleiste schlichtweg nicht! In diesen Android-Versionen werden in Ihren Apps enthaltene Aktionsleisten nicht angezeigt. Sie können jedoch die Aktionsleiste auch in 2.1 oder früher mithilfe der Support Library nutzen.

Widgets und Benachrichtigungen

Möglicherweise wollen die Anwender auf Informationen Ihrer App zugreifen, ohne diese explizit zu starten. Denken Sie beispielsweise an die Gmail-App, die es den Anwendern ermöglicht, eine Vorschau auf ihre E-Mails in einer Benachrichtigung anzuzeigen, bevor sie die Gmail-App öffnen, oder wie Sie die aktuelle Zeit auf Ihrem Launcher anzeigen, ohne dass Sie die UhrApp öffnen müssen. Dies sind Beispiele für die Verwendung von Benachrichtigungen und Launcher-Widgets.

Launcher-Widgets: Widgets sind eine Art »Mini-Apps«, die Zugriff auf die Funktionalität Ihrer App direkt vom Launcher des Smartphones (auch als Startbildschirm bezeichnet) aus ermöglichen. Widgets sind in der Applikationsliste leicht zu finden. Sie können Informationen anzeigen, Schaltflächen und sogar Listenansichten enthalten, innerhalb derer ein begrenztes Wischen und Blättern möglich ist.

Benachrichtigungen: Benachrichtigungen in Android können erweitert und verkleinert werden, sodass mehr Informationen angezeigt werden können. Wenn Ihnen beispielsweise Ihre Mutter ein Foto ihres neuen Hündchens in einer Textnachricht zuschickt, lässt es sich direkt in der Benachrichtigung anzeigen, ohne dass dazu erst die App geöffnet werden müsste. In einer Benachrichtigung über eine neue E-Mail-Nachricht kann eine Vorschau des Nachrichtentextes angezeigt werden, sodass er direkt gelesen werden kann.

Zudem können Benutzer unabhängig von der benutzten App direkt auf Benachrichtigungen reagieren. Um beispielsweise auf eine Geburtstags-E-Mail Ihrer Oma zu antworten, müssen Sie nur noch »Antworten« in der Benachrichtigung antippen, um Gmail samt Editor zu starten und sich bei ihr bedanken zu können.

Hardwarefunktionen

Google hat eine Unmenge an Funktionen in Android integriert und stellt Entwicklern alle benötigten Werkzeuge zur Verfügung, um hervorragende und umfassende Apps für Mobilgeräte entwickeln zu können. Google macht es Ihnen leicht, die Funktionen der verfügbaren Hardwarekomponenten zu nutzen.

Um eine spektakuläre Android-App zu entwickeln, sollten Sie die Vorteile der verfügbaren Hardwarekomponenten nutzen. Aber verstehen Sie mich hier nicht falsch: Wenn Sie eine Idee für eine App haben, die ohne Hardwareunterstützung auskommt, dann ist auch das völlig in Ordnung.

Android-Geräte sind mit verschiedenen Hardwarekomponenten ausgestattet, die Sie im Rahmen Ihrer Apps nutzen können und die in Tabelle 1.1 im Überblick dargestellt werden.

HardwarekomponenteFunktionBeschleunigungssensorRegistriert Bewegungen des SmartphonesBluetooth-FunkErmöglicht beispielsweise den Anschluss eines Bluetooth-Kopfhörers oder einer externen TastaturKompassStellt fest, in welche Richtung das Gerät zeigtKameraNimmt Fotos oder Videoclips aufGPS-EmpfängerErmittelt, wo sich das Gerät befindet

Tabelle 1.1: Android-Gerätehardware

Die meisten Android-Geräte sind zwar mit den in den folgenden Abschnitten beschriebenen Komponenten ausgestattet, deren Leistungsdaten unterscheiden sich aber zum Teil erheblich. Da Android von Hardwareherstellern kostenlos vertrieben werden darf, wird es für eine breite Gerätepalette genutzt. Bei kleineren Herstellern kann daher bei den Geräten schon einmal die eine oder andere Komponente fehlen oder auch zusätzlich hinzukommen.

Android-Geräte sind in den verschiedensten Formen und Abmessungen erhältlich, wie zum Beispiel als Mobiltelefon, Tablet-PC, E-Book-Reader, Uhren, Fernsehgeräte und Autos. Die Android-Entwickler stellen Werkzeuge bereit, mit denen Sie leicht Apps für unterschiedlich dimensionierte und auflösende Bildschirme erstellen können. Und da Ihnen die Android-Entwickler bereits die wirklich schweren Aufgaben abnehmen, brauchen Sie sich auch in dieser Hinsicht keine Sorgen zu machen. Die Grundlagen der Unterstützung verschiedener Bildschirmabmessungen und Auflösungen finden Sie in Kapitel 4.

Touchscreen

Android-Mobiltelefone werden über Touchscreens bedient, die weitreichende Möglichkeiten zur Verbesserung der Bedienung der Apps bieten. Anwender können beispielsweise durch Antippen, Drehen, Ziehen, Wischen und Drücken mit einem oder mehreren Fingern ein Bild auswählen und vergrößern. Entwickler können in Apps sogar angepasste Gesten definieren, um sich noch mehr Möglichkeiten zu erschließen.

Android unterstützt auch Multitouch-Gesten, bei denen der gesamte Bildschirm gleichzeitig mit mehreren Fingern berührt wird.

Echte Schalter an Geräten sind nichts Neues. An vielen Android-Geräten (insbesondere Tablets) finden Sie aber neben einem Standby-Schalter nur noch einen Lautstärkeregler. Wenn Sie eine geeignete Benutzeroberfläche für Ihre App erstellen, können Sie beliebig aussehende Schaltflächen an einer beliebigen Stelle auf dem Bildschirm positionieren.

GPS

Wenn das Android-Betriebssystem mit dem GPS-Empfänger eines Geräts zusammenarbeitet, können entsprechend entwickelte Apps jederzeit den aktuellen Standort eines Anwenders feststellen. Sie können auch dessen Bewegungen und Ortswechsel aufzeichnen.

Ein weiteres nützliches Beispiel ist die Maps-App, mit der die Position des Anwenders auf einer Karte bestimmt und Wegbeschreibungen zu einem angegebenen Ziel angezeigt werden können. Mit Android und der GPS-Hardware können Sie auf einige Meter genau die jeweilige Geräteposition feststellen. Viele Apps nutzen diese Funktion, um angeben zu können, wo sich Tankstellen, Restaurants, Parkhäuser, öffentliche Toiletten oder andere interessante Einrichtungen befinden.

Beschleunigungssensor

Android unterstützt einen Beschleunigungssensor (Accelerometer), mit dem ermittelt werden kann, ob das Gerät bewegt oder geschüttelt wird und in welche Richtung es gedreht wird. Diese Informationen können Sie zur Steuerung Ihrer Apps nutzen.

Damit lässt sich beispielsweise feststellen, ob der Bildschirm gerade auf dem Kopf steht und Ihre App darauf reagieren sollte. Oder vielleicht wollen Sie ein Würfelspiel entwickeln, bei dem Ihre Anwender ihr Smartphone zum Wurf schütteln müssen. Durch derartige Funktionen heben sich Mobilgeräte von typischen Desktop-PCs ab.

Android verfügt über eine eingebaute Aktivitätserkennung, wofür verschiedene Sensoren verwendet werden, wie beispielsweise der Beschleunigungssensor und das GPS, um festzustellen, ob Ihr Anwender gerade geht, läuft, fährt oder mit dem Rad fährt. Weitere Informationen über die Verwendung der Aktivitätserkennung finden Sie unter http://d.android.com/training/location/activity-recognition.html.

SD-Speicherkarte

Android sorgt für alle für den Zugriff (Speichern und Laden von Dateien) auf die SD-Speicherkarte erforderlichen Funktionen. Bei vielen Mobiltelefonen und Computern lassen sich SD-Speicherkarten einsetzen und zur Speicherung von Daten nutzen. Wenn ein Gerät mit einer SD-Speicherkarte ausgerüstet ist, können Sie darauf alle von Ihrer App benötigten Dateien speichern und darauf zugreifen. Um den internen Gerätespeicher nicht unnötig für benötigte Zusatzressourcen zu verschwenden, können Sie diese oft auch ganz oder teilweise von einem Webhost herunterladen und auf SD-Karte speichern. Benutzer finden dies vielleicht besser und werden Ihre App dann nicht so schnell deinstallieren, um Speicherplatz für andere Apps freizumachen.

SD-Speicherkarten sind zwar bei vielen, aber längst nicht allen Geräten auch wirklich vorinstalliert. Bevor Sie versuchen, in Ihren Apps Daten auf SD-Karte zu speichern, sollten Sie daher zunächst immer erst einmal prüfen, ob eine SD-Karte installiert ist und ob darauf noch genug Platz für die zu speichernden Dateien vorhanden ist. Denken Sie außerdem daran, dass Dateien auf einer SD-Speicherkarte nicht sicher sind und von allen anderen Apps auf dem Smartphone des Anwenders gelesen werden können.

Softwarewerkzeuge

Beim Schreiben von Android-Apps stehen Ihnen verschiedene Werkzeuge zur Verfügung. In den folgenden Abschnitten werde ich Ihnen einige der beliebtesten Tools kurz vorstellen, die Sie im Rahmen Ihrer alltäglichen Android-Entwicklungsarbeit nutzen werden.

Internet

Dank der Internetfähigkeit von Android-Geräten lassen sich aktuelle Daten leicht abrufen. Als Anwender können Sie das Internet nutzen, um sich über die Anfangszeit des nächsten Films oder die Ankunftszeit der nächsten Straßenbahn zu informieren. Als Entwickler können Sie das Internet in Ihren Apps für den Zugriff auf aktuelle Wetterdaten, Nachrichten und Sportergebnisse nutzen. Sie können das Web aber (wie Pandora und YouTube) auch dazu benutzen, um dort die Symbole und Abbildungen Ihrer Apps zu speichern.

Lassen Sie es nicht damit bewenden. Falls sinnvoll, können Sie auch Teile Ihrer App auf einen Webserver auslagern! Dadurch lässt sich manchmal sogar viel Verarbeitungszeit einsparen und dafür sorgen, dass Ihre Android-App schlank bleibt. Diese Vorgehensweise wird Client-Server-Computing genannt. Bei dieser verbreiteten Softwarearchitektur richtet der Client Anforderungen an einen Server, der nur darauf wartet, etwas zu tun zu bekommen. Die integrierte Maps-App ist ein gutes Beispiel für eine Anwendung, bei der ein Client auf die auf einem Webserver abgelegten Karten und Standortdaten zurückgreift.

Audio- und Videounterstützung

Mit dem Android-Betriebssystem lässt sich in Ihren Apps auch Audio und Video spielend leicht nutzen. Dabei werden viele Standardformate unterstützt. Das Einbinden multimedialer Inhalte in Ihre Apps könnte kaum einfacher sein. Toneffekte, Anleitungsvideos, Hintergrundmusik, Videostreams und Audio aus dem Internet lassen sich problemlos zu Ihren Apps hinzufügen. Lassen Sie Ihrer Kreativität freien Lauf. Ihren Möglichkeiten sind kaum Grenzen gesetzt.

Kontakte

Ihre App kann auf die auf dem Gerät gespeicherten Kontaktdaten zugreifen. Diese Funktion können Sie nutzen, um Kontakte auf neue Weise oder einfach anders anzuzeigen. Vielleicht gefällt Ihnen die bereits vorhandene App zur Verwaltung der Kontakte nicht. Da Sie auf die auf dem Gerät gespeicherten Kontakte zurückgreifen können, hält Sie nichts davon ab, sich Ihre eigene App zu schreiben. Vielleicht kombiniert diese ja auch Ihre Kontakte mit dem GPS-System und benachrichtigt den Anwender, wenn er sich in der Nähe einer der Kontaktadressen befindet.

Nutzen Sie Ihre Fantasie, gehen Sie dabei aber verantwortungsvoll vor. Keinesfalls sollten Sie Kontaktdaten missbrauchen (siehe nächster Abschnitt).

Sicherheit

Stellen Sie sich nur einmal vor, dass jemand eine App veröffentlicht, die Kontaktlisten durchsucht und sie komplett irgendwo auf einen Server überträgt, um die Daten dann für eigene Zwecke zu missbrauchen. Anhand dieses Gedankens sollte Ihnen klar geworden sein, warum den meisten Funktionen, die die Gerätekonfiguration ändern oder auf geschützte Inhalte zugreifen, speziell entsprechende Berechtigungen eingeräumt werden müssen. Angenommen, Sie wollen ein Bild aus dem Web herunterladen und auf der SD-Karte speichern. Dazu benötigen Sie eine Berechtigung für den Zugriff auf das Internet. Sie benötigen auch entsprechende Berechtigungen, um Dateien auf der SD-Karte speichern zu können. Zu Beginn der Installation einer App wird deren Benutzer darüber informiert, welche Berechtigungen sie erfordert. Dann kann er entscheiden, ob die Installation fortgesetzt werden soll. Um eine Berechtigung anzufordern, müssen Sie nur eine Zeile Code in die Manifest-Datei Ihrer App einfügen. (Manifest-Dateien werden in Kapitel 3 beschrieben.)

Google-APIs

Das Android-Betriebssystem lässt Sie nicht nur telefonieren, Kontakte verwalten oder Apps installieren. Es bietet weit mehr. Als Entwickler bieten sich Ihnen weitreichende Möglichkeiten. Sie können beispielsweise sogar Landkarten in Ihre Apps integrieren. Dazu brauchen Sie nur die Google-Maps-API.

Positionen in Landkarten kennzeichnen

Vielleicht wollen Sie eine App schreiben, die Ihren Freunden Ihren aktuellen Aufenthaltsort mitteilt. Für die Entwicklung eines Kartensystems könnten Sie entweder Hunderte Stunden Entwicklungszeit aufwenden – oder einfach die Google-Maps-API nutzen. Sie können die API einbinden und jede Menge Entwicklungszeit sparen, ohne dass es Sie auch nur einen einzigen Cent kosten würde. Mit der Maps-API können Sie fast alles nur über eine Adresse finden. Die Möglichkeiten sind schier grenzenlos. Zeigen Sie den Aufenthaltsort Ihrer Freundin, die nächste Bäckerei, die nächste Tankstelle oder andere Dinge über deren Adresse an.

Es ist zwar nett, Ihre Freunde über Ihren aktuellen Aufenthaltsort zu informieren, aber das ist noch längst nicht alles! Die Google-Maps-API kann auch auf Googles Navigation-API zugreifen. Und schon können Sie Ihren Anwendern nicht nur Ihre aktuelle Position, sondern auch den Weg dorthin anzeigen.

Cloud-Messaging

Noch so ein obskurer Begriff! Beim Cloud-Computing befinden sich die Rechner, die irgendwelche Dienste bereitstellen, irgendwo in den »Wolken« (clouds), ohne dass sich ihr Standort (im Internet) genau ausmachen ließe. Sie könnten die Daten Ihrer App beispielsweise irgendwo in der Wolke (dem Internet) speichern und die benötigten Daten beim ersten Starten Ihrer App herunterladen. Was aber, wenn diese sich später ändern? Damit die App aktualisiert werden kann, muss sie darüber benachrichtigt werden. Dazu können Sie Ihrer App beziehungsweise dem Gerät vom Server aus im Web eine Mitteilung zukommen lassen (Cloud-to-Device Message), die dafür sorgt, dass es die aktualisierten Daten herunterlädt. Das funktioniert sogar, wenn Ihre App nicht läuft. Sobald das Gerät die Benachrichtigung erhält, sorgt es dafür, dass Ihre App gestartet wird, und leitet die entsprechenden Maßnahmen ein.

Das KISS-Prinzip

Bei der Entwicklung von Anwendungen kann man es leicht übertreiben und übermäßig komplizierte Lösungen entwickeln. Denken Sie daher an das KISS-Prinzip, das für »Keep It Simple, Stupid« steht und sinngemäß bedeutet, dass man seine Lösungen möglichst einfach halten sollte. Wenn man einfach loslegt, ohne die integrierten APIs wirklich zu verstehen und ohne zu wissen, was sie eigentlich machen, wird der eigene Code leicht übermäßig kompliziert. Sie können zwar so vorgehen, aber das könnte Sie viel mehr Zeit als das Überfliegen der Android-Dokumentation kosten. Sie müssen sich nicht alles merken, sollten sich aber selbst den Gefallen tun und einen Blick in die Dokumentation werfen. Dann wissen Sie, wie leicht Sie die bereits integrierten Funktionen nutzen und wie viel Entwicklungszeit Sie mit ihnen sparen können. Leicht können Sie viele Zeilen Code schreiben, um etwas zu machen, was sich eigentlich mit einer einzigen Zeile erledigen ließe. Die Lautstärke der Audiowiedergabe zu verändern oder ein Menü zu erstellen, ist zwar eigentlich einfach, aber wenn Sie die APIs nicht kennen, werden Sie vielleicht nur auf weitere Probleme stoßen, wenn Sie versuchen, die entsprechenden Funktionen neu zu schreiben.

Durch Hinzufügen von eigentlich gar nicht benötigten Funktionen kann man eigene Projekte auch wirklich gründlich in den Sand setzen. Sie sollten möglichst die einfachsten Lösungen bevorzugen. Erstellen Sie also keine aufwendigen Dialogfelder mit Registerkarten, wenn es bereits ein paar Menüelemente tun würden. Android verfügt über genug vorgefertigte Steuerelemente (Widgets), mit denen sich nahezu alle Aufgabenstellungen bewältigen lassen. Zudem haben es Benutzer Ihrer App bei den vorgefertigten Widgets mit ihnen bereits vertrauten, geschätzten und daher leicht nutzbaren Bedienelementen zu tun.

2

Die Vorbereitung Ihrer Entwicklungszentrale

In diesem Kapitel

Android-Anwendungsentwickler werden

Ihren Werkzeugkasten zusammenstellen

Das Android Software Development Kit (SDK) herunterladen und installieren

Android Studio erhalten und installieren

Mit den Android-Entwicklungswerkzeugen (ADT) arbeiten

Die gesamte Software, die Sie für die Entwicklung von Android-Apps benötigen, ist kostenlos! Das ist das Schöne an der Entwicklung von Android-Anwendungen. Sicherlich freut es Sie, zu hören, dass die für die Entwicklung umfangreicher Android-Apps benötigten Basiskomponenten, die Werkzeuge, Frameworks und selbst Quellcode kostenlos erhältlich sind. Einen kostenlosen Computer bekommen Sie zwar nicht dazu, aber Sie können damit Ihre Entwicklungsumgebung einrichten und ohne weitere Kosten und somit unschlagbar günstig mit der Entwicklung von Apps beginnen. Nun, vielleicht können Sie das jetzt noch nicht, aber Sie werden schnell dazu in der Lage sein.

In diesem Kapitel zeige ich Ihnen schrittweise, wie Sie die Werkzeuge und Frameworks installieren können, um anschließend mit der Erstellung aufsehenerregender Android-Anwendungen beginnen zu können.

Entdecken Sie den Android-Entwickler in sich

Es ist nicht schwierig, Android-Entwickler zu werden. Eigentlich ist es sogar viel leichter, als Sie vielleicht denken. Stellen Sie sich selbst die folgenden Fragen, um festzustellen, was dazugehört:

Will ich Android-Apps entwickeln?

Sagen mir kostenlose Software-Entwicklungswerkzeuge zu?

Will ich lieber keine Entwicklungsgebühren bezahlen?

Besitze ich einen Rechner, den ich zur Entwicklung nutzen kann?

Wenn Sie all diese Fragen mit Ja beantworten können, ist heute Ihr Glückstag. Sie sind darauf vorbereitet, ein Android-Entwickler zu werden.

Irgendeinen Haken muss es aber doch geben, oder? Sie können zwar nach Lust und Laune entwickeln, aber sobald Sie Ihre Anwendung über Google Play (hier laden Sie Ihre Apps hoch und veröffentlichen sie) anbieten wollen, müssen Sie eine geringe Registrierungsgebühr entrichten. Momentan beläuft sich diese auf 25 Dollar.

Wenn Sie Apps für einen Kunden entwickeln, können Sie ihm diese auch als verteilbares Paket übergeben. Ihr Auftraggeber kann die Anwendung dann über Google Play unter Verwendung seines Google-Kontos veröffentlichen. Auf diese Weise können Sie sicherstellen, dass Sie keine Gebühren für Auftragsarbeiten zahlen müssen. Selbst als echter Android-Entwickler müssen Sie dann nie Gebühren zahlen. Das ist doch wirklich toll.

Zusammenstellung Ihres Werkzeugkastens

Wenn Sie bereit sind, ein Android-Entwickler zu werden, können Sie sich Ihren Computer schnappen und geschwind die zur Erstellung Ihrer ersten Hit-Anwendung benötigten Werkzeuge und Frameworks installieren.

Android-Quellcode

Sie sollten wissen, dass Android komplett Open Source ist. Sie dürfen die Android-Quelltexte also nicht nur kostenlos nutzen, sondern auch ändern. Es steht Ihnen frei, sich diese herunterzuladen und selbst eine neue Android-Version zu erstellen. Die offenen Quelltexte des Android-Projekts finden Sie unter https://source.android.com.

Linux-Kernel

Android basiert auf dem quelloffenen Linux-Kernel. Die Android-Entwickler haben sich für diesen Kernel entschieden, weil er bewährte Kernfunktionen bereitstellt, auf denen die Entwicklung des Android-Betriebssystems aufsetzen kann. Unter anderem bietet der Linux-Kernel die folgenden Funktionen:

Sicherheitsmodell: Der Linux-Kernel kümmert sich um die Sicherheit zwischen den Apps und dem System.

Speicherverwaltung: Der Kernel übernimmt die Speicherverwaltung, wodurch Sie sich voll auf die Entwicklung Ihrer App konzentrieren können.

Prozessverwaltung: Der Linux-Kernel verwaltet auch die Prozesse und weist diesen bei Bedarf die benötigten Ressourcen zu.

Netzwerkstapel: Der Linux-Kernel kümmert sich auch um die Netzwerkkommunikation.

Treibermodell: Linux soll dafür sorgen, dass alles funktioniert. Hardwarehersteller können ihre Treiber in das Linux-Betriebssystem integrieren.

Abbildung 2.1 zeigt eine Liste gebräuchlicher Android-Bibliotheken.

 

Abbildung 2.1: Android und andere Bibliotheken von Drittherstellern setzen auf dem Linux-3.4-Kernel auf.

Android-Framework

Aufsetzend auf dem Linux-Kernel wurde das Android-Framework mit verschiedenen Funktionen entwickelt. Sie wurden von zahlreichen quelloffenen Projekten übernommen. Die Ergebnisse dieser Projekte führten zu folgender Zusammenstellung:

Die Android-Laufzeitumgebung: Die Android-Laufzeitumgebung besteht aus den Java-Kernbibliotheken und ART (die Android Run Time). Ältere Versionen von Android (4.x und früher) verwenden die Dalvik-Laufzeitumgebung.

Open GL (Grafikbibliothek): Diese sprachunabhängige und plattformübergreifende Anwendungsprogrammierschnittstelle (API – Application Program Interface) wird für die Erzeugung von 2D- und 3D-Computergrafiken genutzt.

WebKit: Diese quelloffene Webbrowser-Engine bietet Funktionen zur Anzeige von Webinhalten und vereinfacht das Laden von Seiten.

SQLite: Diese quelloffene Engine für relationale Datenbanken wurde entwickelt, um in Geräte integriert zu werden.

Media Frameworks: Diese Bibliotheken ermöglichen die Aufnahme und Wiedergabe von Audio und Video.

Secure Sockets Layer (SSL): Diese Bibliotheken sind für die Internet-Sicherheit zuständig.

Abbildung 2.1 können Sie eine Liste der verbreiteten Android-Bibliotheken entnehmen.

Anwendungsframework

Nach dem Lesen des letzten Abschnitts werden Sie jetzt wahrscheinlich denken: »Das ist zwar schön und gut, aber was habe ich als Entwickler mit diesen Bibliotheken am Hut?« Das ist einfach, denn Sie können über Android auf all diese quelloffenen Frameworks zurückgreifen. Sie müssen sich nicht darum kümmern, wie Android mit SQLite und der Schnittstellenverwaltung zusammenarbeitet, sondern können sie einfach selbst als Android-Werkzeuge nutzen.

Das Android-Team hat selbst auf einen Satz bewährter Bibliotheken zurückgegriffen und stellt sie Ihnen über Android-Schnittstellen bereit. Diese umschließen die verschiedenen Bibliotheken und machen sie für die Android-Plattform und Entwickler nutzbar. Bei Android arbeiten all diese Bibliotheken im Hintergrund und stellen Ihnen ihre Funktionen bereit, ohne dass Sie die angebotenen Funktionen selbst programmieren müssen. Bei diesen Schnittstellen handelt es sich unter anderem um:

Activity Manager: Kümmert sich um die Lebensdauer der Aktivitäten.

Telephony Manager: Bietet Zugriff auf Telefoniedienste und einige Abonnentendaten, wie zum Beispiel Telefonnummern.

View System: Kümmert sich um die Steuerelemente (Views) und das Layout der Elemente, aus denen die Bedienschnittstelle (UI – User Interface) besteht.

Location Manager: Ermittelt die geografische Position des Geräts.

Abbildung 2.2 können Sie entnehmen, aus welchen Bibliotheken das Anwendungsframework besteht.

 

Abbildung 2.2: Ein kurzer Blick auf einen Teil des Android-Anwendungsframeworks

Vom Kernel bis hin zu den Anwendungen wurde das Android-Betriebssystem mit bewährten quelloffenen Technologien entwickelt. Dadurch können Entwickler leistungsfähige Anwendungen erstellen, die gewissermaßen von der Open-Source-Gemeinde gepflegt wurden. Abbildung 2.3 zeigt eine vollständige Übersicht über die Schichten des Android-Anwendungsframeworks.

 

Abbildung 2.3: Die Schichten des Android-Anwendungsframeworks

Bei der Entwicklung von Android-Apps werden Sie manchmal Ressourcen nutzen wollen, auf die auch der Android-Systemkern zurückgreift. Ein gutes Beispiel wäre ein Symbol für eine Menüoption EINSTELLUNGEN. Dazu können Sie auf die Android-Quelltexte zugreifen, die verschiedenen Ressourcen durchsuchen und die für Ihr Projekt benötigten herunterladen. Durch die zugänglichen Quelltexte können Sie auch tiefer eintauchen und genau sehen, wie Android seine Aufgaben erledigt. Bei der Übernahme dieser Ressourcen müssen Sie allerdings gewisse Lizenzanforderungen beachten und die Google-Markenrichtlinien einhalten, über die Sie unter http://d.android.com/distribute/googleplay/promote/brand.html mehr erfahren können.

Java-Kenntnisse

Bei der Programmiersprache Java handelt es sich um eines der wunderbaren Werkzeuge, durch die die Android-Programmierung im Gegensatz zu anderen Mobilplattformen fast zum Kinderspiel wird. Während Sie bei anderen Sprachen den Speicher verwalten und Bytes zur Verfügung stellen und wieder freigeben müssen und dann Bits wie beim Dominospielen herumschieben müssen, gibt es bei Java die Java Virtual Machine (JVM), die Ihnen diese Aufgabe abnimmt. Durch die Java-Laufzeitumgebung können Sie sich auf das Schreiben von Code konzentrieren und zwar in einer sauberen, verständlichen Programmiersprache. Sie müssen sich also nicht mit der Schmutzarbeit herumplagen, nur damit Ihre Programmfenster auch angezeigt werden.

Bevor Sie Ihre erste Android-Anwendung schreiben, sollten Sie die Java-Grundlagen beherrschen. Wenn Sie sich ein wenig eingerostet fühlen und einen Java-Auffrischungskurs benötigen, können Sie eine der Websites mit Java-Tutorials besuchen, wie etwa http://docs.oracle.com/javase/tutorial (englisch) oder http://www.java-tutorial.org/ (deutsch).

Zwar finden Sie auch im vorliegenden Buch bereits einige Informationen zu Java, aber vielleicht wollen Sie Ihre Kenntnisse mit einem guten Buch wie Java für Dummies (Wiley-VCH) ja zusätzlich noch ein wenig auffrischen und/oder erweitern.

Optimierung der Hardware

Sie können Android-Apps unter verschiedenen Betriebssystemen entwickeln, zu denen Windows, Linux und Mac OS X zählen. Ich habe für dieses Buch zwar Windows 8 verwendet, Sie können stattdessen aber auch Mac OS X oder Linux benutzen.