Android Q: Das sollten Entwickler wissen
Optimierungen für Foldables, neue Sharing Shortcuts, Settings Panel und neue Media Codecs sowie besserer Datenschutz. Das sind die neuen Möglichkeiten für Android-Entwickler der Android-Q-Beta-1.
Mehr Sicherheit, mehr Kontrolle
Google legt mit Android Q den Fokus auch auf den Datenschutz, Sicherheit für den Nutzer, erhöhte Kontrolle über die Apps und Steuerung des Zugriffs. Das umfasst die Berechtigungen für den Standort genauso wie den Zugriff auf externe Speicher. Auch können Activitys nicht mehr ohne Weiteres aus dem Hintergrund gestartet werden. Auf die Änderungen beim Thema Datenschutz müssen sich App-Entwickler in Android Q außerdem vorbereiten – hier herrscht Handlungsbedarf.
Standortzugriff im Hintergrundbetrieb
Seit einigen Android-Versionen müssen Apps den Nutzer um Erlaubnis bitten, wollen sie auf sensible Daten wie die Kontaktliste, das Mikrofon oder eben auch auf den Standort zugreifen. Um zu verhindern, dass Apps auch auf den Standort zugreifen, während sie im Hintergrund laufen, ergänzt Google eine weitere Rechteoption in Android Q: ACCESS_BACKGROUND_LOCATION
. Die muss nun ebenfalls zur Manifest-Datei ergänzt werden – zusätzlich zu den groben oder genauen Standortrechten.
<manifest>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
</manifest>
Entwickelt ihr eine Android-Q-App, wählt jedoch eine ältere Android-Version als Ziel, so wird die neue Permission automatisch in der Manifest eingefügt.
Schützen des externen Speichers
Mit der ersten Beta-Version von Android Q kann auf den externen Speicher nicht mehr mit den bisherigen Rechteoptionen READ_EXTERNAL_STORAGE
und WRITE_EXTERNAL_STORAGE
zugegriffen werden. Google führt einen deutlich engmaschigeren Zugriff ein – abhängig davon, ob Medien gespeichert oder appspezifische Daten gespeichert werden sollen.
Mit Android Q erhält jede App einen eigenen isolierten Speicherbereich. In dieser Sandbox kann nur die jeweilige App Dateien schreiben oder lesen. Berechtigungen für den Speicherbereich sind nicht notwendig. Zugegriffen werden kann mithilfe von Context.getExternalFilesDir().
Als Parameter kann nun die gewünschte Umgebung übergeben werden: DIRECTORY_DOCUMENTS
beispielsweise. Wird die App deinstalliert, so wird auch der Sandbox-Speicher gelöscht.
Soll die App jedoch Dateien speichern, die dem Nutzer gehören und unabhängig von der Deinstallation weiterhin bestehen bleiben sollen, so können die in der gemeinsamen Mediensammlung (Shared Collections) abgelegt werden. Auch in diesem Kontext muss für die eigenen Dateien keine Permission angefragt werden. Soll jedoch auf die Medien anderer Apps zugegriffen werden, wird einer der folgenden Berechtigungen benötigt: READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
oder READ_MEDIA_AUDIO
.
Mehr Details zum Zugriff auf Dateien unter Android Q findet ihr hier.
Foldables und große Displays
Um neue Smartphones wie das Huawei Mate X oder das Samsung Galaxy Fold zu unterstützen, arbeitet Google an einigen Verbesserungen in Android Q.
Passend dazu: Foldables: Sind das Mate X und Galaxy Fold die Zukunft des Mobile Computing?
Dafür gibt es Änderungen, die Google Multi-Resume nennt. Das neue Verhalten beeinflusst auch, wie Apps im Multi-Window arbeiten. Während zuvor tatsächlich nur eine App aktiv war und alle anderen pausierten, so sind nun alle im aktiven Lifecycle. Stattdessen wird die entsprechende App benachrichtigt, wenn sie vom Nutzer fokussiert wurde.
Um einen besseren Einfluss auf die Anzeige der App auf großen Displays und Foldables zu haben, hat Google außerdem angepasst, wie das Manifest-Attribut Resizeable-Activity arbeitet. Außerdem will Google demnächst den Android Emulator aktualisieren, um dort auch Foldables zu unterstützen.
Sharing Shortcuts
Mit den neuen Sharing Shortcuts können Inhalte im Teilen-Dialog beispielsweise direkt an eine Person geschickt werden, anstatt nur an eine App. So wird dem Nutzer ein Schritt erspart, und Entwickler müssen nur noch die neue API implementieren.
Das neue Feature funktioniert ähnlich wie die bereits bekannte App-Shortcuts-Funktionalität. Dafür hat Google die Shortcut-Info-API überarbeitet. Dadurch soll die Implementierung beider Features noch leichter werden. Eine neue Beispiel-App auf GitHub soll den Einstieg erleichtern.
Settings Panel
Mit der neuen Settings-Panel-API können Systemeinstellungen wie der Flugmodus, Internetverbindung, NFC oder Audioeinstellungen in einem neun Popup vorgenommen werden. Ist beispielsweise der Flugmodus aktiviert, die App benötigt aber eine Verbindung zum Internet, so muss die App mithilfe des Settings Panel nicht mehr verlassen werden.
Tiefeninformationen von Bildern
Viele neuere Smartphones sind, auch wegen des Einsatzes mehrerer Kameras, dazu in der Lage, Tiefeninformationen in den Metadaten zu einem Foto abzulegen. Dadurch kann relativ zu einem fokussierten Objekt der Vorder- oder Hintergrund verwischt werden.
In Android Q kann nun ein „Dynamic Depth Image“ angefordert werden. Das besteht aus einer JPEG-Datei, XMP-Metadaten für Elemente mit unterschiedlicher Tiefe sowie eine Tiefen- und Confidence-Karte. Dadurch kann eine App im Nachhinein verschiedenste Anpassungen am Bild vornehmen. Manuell angepasste Bokeh- und Blur-Effekte für die Fotobearbeitung sind genauso denkbar wie das Erstellen eines 3D-Bildes oder Augmented-Reality-Fotografie.
Neue Codecs und mehr
Neben einigen weiteren Änderungen unterstützt Android Q zudem zusätzliche Audio- und Video-Codecs. Darunter AV1 und HDR10+ für Videos und Opus für Audioinhalte. Alle Details zur ersten Beta-Version von Android Q hat Google auch im Developer-Blog veröffentlicht. In der Android-Dokumentation findet ihr außerdem eine kurze Anleitung für die Migration eurer App zu Android Q. Nach fünf weiteren geplanten Beta-Versionen wird das finale Android Q wohl im dritten Quartal 2019 erscheinen.