iX 11/2018
S. 58
Review
IoT
Aufmacherbild

Googles Android für IoT-Geräte

Dehnbar

Mit Android Things hat Google eine IoT-Version seines Smartphone-Betriebssystems entwickelt. Es läuft auch auf dem preiswerten Raspberry Pi.

Mit Android Things, ursprünglich Brillo, hat Google ein standardisiertes Betriebssystem für das Internet der Dinge vorgestellt, das auf diversen Endgeräten laufen soll. Wesentliche Randbedingung: Die verwendete Hardware verfügt nur über begrenzte „Pferdestärken“ und Energie. Genau darin hat das IoT ein gewisse Ähnlichkeit mit dem Computermarkt in den 1990ern. Die Vielfalt der Hardware ist fast unendlich und Softwareentwickler müssen dies bei der Bereitstellung ihrer Programme bedenken.

Das Betriebssystem kann aber eine Abstraktionsschicht bereitstellen, die die extreme Heterogenität der Hardware versteckt. Kenner der Szene wissen, dass diese Vereinheitlichung schon ein zweites Mal stattgefunden hat und Google maßgeblich beteiligt war. Die Rede ist von den Smartphones und Android. Die vielen IoT-Geräte sind den „aufgemotzten“ Mobiltelefonen gar nicht so unähnlich. Es verwundert daher nicht, dass Android die Basis von Brillo war.

Mit der Umbenennung von Brillo in Android Things integrierte Google das Projekt auch dem Namen nach in die Betriebssystemfamilie, zu der schon Android TV und Android Auto zählen. Außerdem erleichterte der Internetgigant den Einstieg mit der Bereitstellung fertiger und direkt verwendbarer Abbilder für eine Reihe kleiner ARM-Geräte einschließlich Sensoren und anderer Spielereien.

Android Things ist eine abgespeckte und leicht modifizierte Android-Variante. Neu ist die Things Support Library (Abb. 1).

Hinter Android Things verbirgt sich eine etwas abgespeckte und modifizierte Android-Variante. Das Grundgerüst besteht aus dem Linux-Kernel, einer Abstraktionsschicht für die Hardware und den C/C++-Bibliotheken für systeminterne und zeitkritische Prozesse. Dazu findet man die Java-Laufzeitumgebung und ein paar Google-Dienste (siehe Abbildung 1).

Darüber hinaus bringt Android Things einen weiteren Bibliothekssatz mit. Die sogenannte Things Support Library soll die Interaktion mit der Hardware erleichtern und stellt weitere APIs für den Entwickler bereit. Bekannte Beispiele sind die Schnittstellen für Bluetooth- und WLAN-Verbindungen oder das Verteilen von Updates. Letzteres kennt man als OTA (Over the Air) auch von den Smartphones. Eine vollständige Auflistung mit detaillierter Beschreibung findet der Leser in der Projektdokumentation (siehe ix.de/ix1811058).

Verzicht auf Benutzerinteraktion

Von den APIs des traditionellen Android hat Google eine ganze Reihe, aber nicht alle für Things übernommen. Als Faustregel gilt: Erfordert die Schnittstelle eine Benutzereingabe oder Authentisierung, ist sie für das Android der Dinge nicht verfügbar. Dazu zählen etwa Drive oder Play Games. Mit an Bord ist die letzte stabile Version der Google-Play-Dienste. Den Store sucht man dagegen vergeblich. Während Erstere notwendig sind, um die zahlreichen Google-Dienste per API anzusprechen, würde Letzterer zu ungewollten Inkompatibilitäten durch automatische Softwareaktualisierung führen.

Beim vorgefertigten Abbild für den Raspberry Pi 3 erscheint das GUI des IoT-Launcher auf dem angeschlossenen Display (Abb. 2).

Zudem bringt Android Things nur eine Untermenge der Systemanwendungen seines Smartphone-Bruders mit. Funktionen zum Pflegen von Kalendereinträgen und Kontakten, der Medienspeicher oder das Telefon sind hier fehl am Platze. Auch verhält sich das System etwas anders. Android Things ist auf das Ausführen einer einzelnen Anwendung ausgelegt. Ihr Start ist der letzte Schritt beim Hochfahren des Systems. Verfügt die Anwendung über eine grafische Ausgabe, ersetzt sie das Android-GUI (siehe Abbildung 2). Dem Entwickler stehen die vom traditionellen Android bekannten Werkzeuge zur Verfügung. Allerdings gibt es weder Statusleiste noch Navigationstasten. Genau genommen benötigen weder Android Things noch seine Anwendungen ein Display.

Vom Smartphone zum Allesnetz

Hinter den vielen Gemeinsamkeiten steckt Absicht: Wer bereits Anwendungen für Android entwickelt, findet einen kinderleichten Einstieg in Googles IoT-Welt. Zum Schreiben des Quelltextes verwendet man dieselbe Software – Android Studio. Notwendig dazu sind die SDK-Tools in der Version 25.0.3 oder höher sowie ein Update des SDK mit Android 8.1 (Oreo) und API 27 oder höher. Einfachste Anwendungen sollten sich prinzipiell schlicht übertragen lassen. Aber auch der Neueinstieg ist dank sogenannter Starterkits inzwischen recht einfach.