Cord Jastram Freiberuflicher Softwareentwickler

„Die Einstiegshürden sind gering, da geeignete Hardware mit einer Grundausstattung an Sensoren und mit einer Kamera für unter 100 Euro erhältlich ist. Die gute Unterstützung mit Dokumentation und Tutorials erleichtert den Einstieg, außerdem macht die Entwicklung auch noch Spaß.“

Mit Android Things möchte Google den Erfolg der Android-Plattform in den Bereichen Internet of Things (IoT) und Embedded Devices wiederholen. Das Erfolgsrezept, das nach zwei weniger gelungenen Anläufen in diesem Marktsegment den Durchbruch bringen soll, lautet: „Ein sicheres Betriebssystem ohne Fragmentierung“ und „Jeder Android-Entwickler ist auch ein Android-Things-Entwickler.“

Android Things ist ein Betriebssystem für das Internet of Things (IoT). Die ersten Versuche, im IoT-Markt Fuß zu fassen, verliefen 2011 mit Android@Home und 2016 mit Brillo nicht wie gewünscht, was 2011 dem Fehlen geeigneter Hardware und 2016 der aufwändigen Programmierung in C/C++ geschuldet war. Beim dritten Anlauf setzt Google auf günstige Hardwareplattformen, auf Java als Programmiersprache und auf die möglichst einfache Integration mit dem Android-Ökosystem. Android Things liegt zurzeit (April 2018) noch als Developer Preview in der Version 0.7 vor, und man kann noch keine auf Android Things basierten Geräte kaufen. Aber das von Google geschnürte Paket ist so verlockend, dass es sich schon jetzt lohnt, einen ersten Blick auf Android Things zu werfen.

Die Android-Things-Infrastruktur

Die von Google zur Verfügung gestellte Infrastruktur basiert auf vier Komponenten:

  1. Eine für IoT-Szenarien optimierte Version des Android-Betriebssystems mit langfristiger Unterstützung durch Google.
  2. Direkt von Google zur Verfügung gestellte Updates des Betriebssystems einschließlich einer sicheren Infrastruktur für Over-the-Air-(OTA-)Updates.
  3. Von Google zertifizierte Hardware mit Board Support Packages (BSP), wobei zurzeit Raspberry Pi 3 und NXP Pico als Developerboards unterstützt werden.
  4. Die Entwicklung von Anwendungen für Android Things und für Android-Smartphones erfolgt mit den gleichen Tools und nutzt dort, wo es sinnvoll ist, auch die gleichen Programmierschnittstellen. Android-Things-spezifische Erweiterungen sind dabei so implementiert, dass sich ein Android-Entwickler heimisch fühlt.

Google hält bei Android Things die Zügel bei Hardware und Betriebssystem fest in der Hand. Die Hersteller der Hardware haben keine Möglichkeit, in Eigenregie Änderungen am Betriebssystem vorzunehmen. Die für die jeweilige Hardwareplattform benötigten Anpassungen von Android Things werden in Zusammenarbeit mit Google entwickelt und in Form der Board Support Packages auf den Geräten installiert. Aber auch hier ist Google wieder für den Updateprozess verantwortlich. Mit dieser Reglementierung soll dem vielleicht größten Problem des Android-Universums, der Fragmentierung, ein Riegel vorgeschoben werden. Updates, das Erstellen von Bugfixes und Security-Patches sowie die Infrastruktur für die Softwareverteilung liegen in der Hand von Google.

Was unterscheidet Android Things von Android?

Android Things ist dafür optimiert, eine einzelne Anwendung auszuführen, die beim Hochfahren des Systems automatisch gestartet wird. Es gibt keinen Play Store und keine Möglichkeit für den Endanwender, zusätzliche Anwendungen zu installieren. Klassische Systemanwendungen wie z. B. Kalender, Telefonie, Downloadmanager oder die Kontaktverwaltung sind nicht vorhanden. Android Things benutzt zwar das gleiche User Interface (UI) Toolkit wie das klassische Android, ein Display ist allerdings optional.

Ein Android-Things-Rechner ist im Gegensatz zu einem Android-Smartphone ein offenes System, an das über vordefinierte Schnittstellen auch unbekannte externe Hardware angebunden werden kann. Die dazu benötigten Programmierschnittstellen befinden sich in der Things Support Library. Es handelt sich dabei um das Peripherial I/O API und das User Driver API. Das Peripherial I/O API unterstützt die folgenden Schnittstellen:

  • GPIO (General Purpose Input/Output) für die Ansteuerung einfacher Geräte, die nur die Stati EIN und AUS kennen.
  • PWM (Pulse Width Modulation) für die Ansteuerung von Geräten, die zur Steuerung eine variable Signalstärke benötigen, wie z. B. Servomotoren.
  • Serielle Verbindungen per SPI (Serial Peripherial Interface), I2C (Inter-Integrated Circuit) und UART (Universal).

Über das User Driver API kann der Entwickler Sensoren so in Android Things einbinden, dass sie sich transparent in die entsprechenden Android-Dienste integrieren. Dies erfordert im Vergleich zum Peripherial I/O API einen etwas größeren Entwicklungsaufwand, der sich aber dann lohnt, wenn eine Vielzahl von Sensoren angesprochen werden soll, deren Messdaten dann in einer konsistenten Art und Weise behandelt werden können.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 4.18 - "Déjà Vue.js?"

Alle Infos zum Heft
579845105Einstieg in die Entwicklung mit Android Things
X
- Gib Deinen Standort ein -
- or -