Suche
Update bringt Picture-in-Picture, neue APIs & noch viel mehr

Android 8.0 Oreo ist da: Was jetzt für Entwickler wichtig ist

Dominik Mohilo

© Shutterstock.com / Nenov Brothers Images

Endlich haben das gespannte Warten und die endlosen Diskussionen in Foren, Blogs und Newsfeeds ein Ende: Android O ist da und als Namensgeber stand diesmal der köstliche Oreo-Keks Pate. Neben zahlreichen neuen Features für die Nutzer von Googles mobilem Betriebssystem gibt es auch für Entwickler einiges zu entdecken. Wir haben uns angesehen, was Android 8.0 für App-Entwickler in petto hat.

Das Geheimnis ist gelüftet und alle, die aufgrund möglicher Copyright-Probleme auf den Namen Android Oatmeal Cookie (Haferkeks) gesetzt haben, sind ihren Wetteinsatz nun endgültig los. Der – in unseren Augen verdiente – Gewinner im Namensrennen heißt: Android Oreo. Natürlich sind Namen nur Schall und Rauch, doch die Community, Consumer wie Entwickler, scheint sich für den des jährlichen Android Updates immer besonders zu interessieren.

Android 8.0 – Features für Entwickler

Besonders interessant für unsere Leserschaft dürften die neuen Features und APIs für Entwickler sein, derer Android Oreo reichlich im Gepäck hat. Manche der von Android 8.0 (API Level 26) eingeführten neuen Features sind allerdings für Nutzer und Entwickler gleichermaßen interessant. Ein gutes Beispiel hierfür ist der neue Picture-in-Picture-Modus (PIP-Modus).

Picture-in-Picture

Picture in Picture / Quelle: Google


Die Picture-in-Picture-Funktion ist für Android TV bereits seit einiger Zeit verfügbar, nun also auch für andere Geräte mit Googles Betriebssystem. Ist eine Anwendungsaktivität im PIP-Modus, so ist sie grundsätzlich pausiert, der Inhalt wird allerdings in einem kleinen Fenster weiterhin angezeigt. Damit die App das auch tut, muss der onPause()-Handler entsprechend eingestellt werden, sodass das Playback nicht pausiert wird. Stattdessen sollte das Video in onStop() pausieren und das Playback bei onStart wieder aufgenommen werden. Damit eine Anwendungsaktivität den PIP-Modus nutzen kann, muss zudem im Manifest der Eintrag android:supportsPictureInPicture mit dem Wert true ausgezeichnet werden.

Für den PIP-Modus wurde auch ein neues Objekt eingeführt: PictureInPictureParams. Dieses wird an PIP-Methoden weitergegeben, um das genaue Verhalten einer Anwendungsaktivität im PIP-Modus zu definieren. Einstellen lässt sich hierüber etwa die Größe des im Vordergrund angezeigten Fensters einstellen.

Notifikationen

Die Benachrichtigungen wurden für Android 8.0 komplett überarbeitet. Neu sind etwa die Notification Channels, die es Entwicklern erlauben, Usern die Möglichkeit zur Erstellung individualisierbarer Channels für jede Art von Benachrichtigung anzulegen. Auch die Darstellung sogenannter Dots oder Badges auf den App-Symbolen selbst wird ab Android Oreo nun unterstützt. Ein Use Case hierfür wäre etwa eine Mail-App, bei der auf dem App-Symbol eine kleine Zahl angezeigt würde, die den User informiert, dass er neue Nachrichten hat.

Entwickler können in ihren Apps ab sofort auch einen Timeout für die Benachrichtigungen der Anwendung über setTimeoutAfter() einstellen. Nach der angegebenen Zeit wird die Notification dann beendet. Weiter individualisieren kann man seine Benachrichtigungen, indem man die Hintergrundfarbe einstellt – dies sollte allerdings nur verwendet werden, wenn damit auf kritische Dinge hingewiesen wird (etwa ein eingehender Anruf oder der empfohlene Wechsel einer Fahrspur in einer Navi-App).

Änderungen im System

Drei neue StrictMode-Detektoren wurden mit Android Oreo ausgeliefert, die dabei helfen sollen, Bugs aufzufinden. Mit detectUnbufferedIo() wird die App hinsichtlich des Schreibens und Lesens von Daten ohne Buffering überwacht; ob eine App anderen Apps bei Bedarf die nötigen Rechte zuteilt, wird mit detectContentUriWithoutPermission() geprüft. Verursacht eine App Netzwerk-Traffic, ohne ihn mit setThreadStatsTag(int) für das Debugging zu taggen, wird detectUntaggedSockets() das herausfinden.

Jeder App wird in Android 8.0 ein Teil des Speichers für gecachte Daten zugewiesen, der über getCacheQuotaBytes(UUID) angefordert wird. Natürlich können Anwendungen mehr Speicher für die gecachten Daten verwenden. Braucht das System allerdings mehr Speicher, werden die gecachten Daten von jenen Apps als erstes gelöscht, die die angeforderte Speichermenge am deutlichsten überschreiten.

Konnektivität und Usability

Android Oreo unterstützt das Erstellen adaptiver Icons ebenso, wie die Nutzung mehrerer Displays. Für Entwickler ergeben sich somit ganz neue Möglichkeiten, ihre Apps und die zugehörigen Icons zu gestalten. Apps können außerdem seit dem Update mit einer Kategorie ausgestattet werden, die das Clustern vereinfacht. Dazu muss lediglich im <application>-Manifest-Tag das Attribut android:appCategory entsprechend gesetzt werden.

In Sachen Konnektivität bringt die neueste Android-Version Unterstützung für die Standards AVRCP 1.4 und Bluetooth Low-Energy (BLE) 5.0 sowie die Integration des Sony LDAC-Codecs in den Bluetooth-Stack. Android 8.0 unterstützt zudem Wi-Fi Aware, der auf der Neighbor-Awareness-Networking-Spezifikation basiert. Geräte mit den entsprechenden Voraussetzungen können also über das WLAN kommunizieren, ohne auf das Internet zuzugreifen.

Accessibility, Sicherheit und Privatsphäre

Für Entwickler, die ihre eigenen Accessibility-Funktionen erstellen, bietet das Update zum Beispiel Fingerabdruck-Gesten als Eingabemechanismus und mehrsprachige Text-to-Speech-Kapazitäten.

Verschiedene Verbesserungen wurden dahingehend implementiert, wie Apps Zugang zu den Nutzeraccounts erhalten. Unter anderem trackt das Android-System, welche Apps auf welchen Account zugreifen können. Authentifikatoren können für die Accounts, die von ihnen verwaltet werden, festlegen, ob diese für Apps sichtbar oder unsichtbar sind.

Runtime und Tools

Die Performance der Plattform wurde ebenfalls verbessert, insbesondere die Optimierung der Runtime lag hierbei im Fokus. Der Zwischenspeicher (Memory) wird nun effizienter genutzt, Concurrent-compaction Garbage Collection und Code Locality wurden implementiert. Zu guter Letzt wurde für Android Oreo der Support von Java aktualisiert. Die APIs java.time aus OpenJDK 8 und java.nio.file sowie java.lang.invoke aus OpenJDK 7 werden jetzt auch unterstützt.

Im folgenden Video gibt es eine kurze Einführung in die wichtigsten neuen Features für Entwickler:

Eine vollständige Übersicht über die neuen Features von Android Oreo für Entwickler gibt es auf dem Android Developer Blog, eine nleitung, wie man seine Apps nach Android 8.0 migriert findet sich hier. Die neuen Features und Möglichkeiten von Android Oreo bringen eine Reihe von veränderten Verhaltensweisen des Betriebssystems mit sich. Mit welchen gerechnet werden muss, ist der entsprechenden Anleitung zu entnehmen.

Verwandte Themen:

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.