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.)
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.
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.
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