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