Die Android 15-Plattform umfasst Verhaltensänderungen, die sich auf Ihre App auswirken können.
Die folgenden Verhaltensänderungen gelten für alle Apps, die unter Android 15 ausgeführt werden:
unabhängig von targetSdkVersion
. Sie sollten Ihre App testen und dann
um sie ggf. zu unterstützen.
Sehen Sie sich auch die Liste der Verhaltensänderungen an, die sich nur auf Apps auswirken. für Android 15.
Hauptfunktion
Mit Android 15 werden verschiedene Hauptfunktionen des Android-Systems modifiziert oder erweitert.
Änderungen am Status „Paket gestoppt“
Die Absicht des Paketstatus FLAG_STOPPED
, bei dem Nutzer AOSP-Builds durch langes Drücken eines App-Symbols und Auswählen von „Beenden erzwingen“ durchführen können, wurde schon immer in diesem Zustand belassen, bis der Nutzer die App explizit aus diesem Status entfernt, indem er sie startet oder indirekt mit der App interagiert (über das Sharesheet oder ein Widget, indem er die App als Live-Hintergrund auswählt usw.). In Android 15 aktualisieren wir das Verhalten des Systems, um es an dieses beabsichtigte Verhalten anzupassen. Apps sollten nur durch direkte oder indirekte Nutzeraktionen aus dem beendeten Zustand entfernt werden.
Zusätzlich zu den vorhandenen Einschränkungen bricht das System alle ausstehenden Intents ab, wenn die App auf einem Gerät mit Android 15 in den beendeten Status wechselt. Wenn die Aktion des Nutzers die App aus dem Status „Angehalten“ entfernt, wird die ACTION_BOOT_COMPLETED
-Broadcast an die App gesendet. So haben Sie die Möglichkeit, ausstehende Intents noch einmal zu registrieren.
Mit der neuen Methode ApplicationStartInfo.wasForceStopped()
können Sie prüfen, ob die App beendet wurde.
Unterstützung für Seitengrößen von 16 KB
Bisher wurden in Android nur Seitengrößen von 4 KB unterstützt, eine optimierte Systemspeicherleistung für die durchschnittliche In der Regel gab es Android-Geräte. Ab Android 15 unterstützt AOSP Geräte, die für die Verwendung einer Seitengröße von 16 KB (16 KB) konfiguriert sind Geräte). Wenn Ihre App NDK-Bibliotheken verwendet, können Sie entweder direkt oder indirekt über ein SDK, müssen Sie Ihre App die auf diesen 16-KB-Geräten funktionieren.
Da Gerätehersteller immer mehr Geräte entwickeln, physischen Arbeitsspeicher (RAM), verwenden viele dieser Geräte 16 KB (und größer werden), um die Leistung des Geräts zu optimieren. Wird hinzugefügt wird die Unterstützung für Geräte mit einer Seitengröße von 16 KB ermöglicht, Geräte und unterstützt Ihre App dabei, von der damit verbundenen Leistung Verbesserungen. Ohne Neukompilierung funktionieren Apps auf Geräten mit 16 KB möglicherweise nicht wenn sie in zukünftigen Android-Versionen produktionsreif sind.
Damit Sie Unterstützung für Ihre App hinzufügen können, haben wir eine Anleitung zur Überprüfung der falls Ihre App betroffen ist, Ihre App neu zu erstellen (falls zutreffend) und wie Sie Ihre App eine 16 KB-Umgebung mit Emulatoren (einschließlich Android 15) System-Images für den Android-Emulator).
Vorteile und Leistungssteigerungen
Geräte, die mit einer Seitengröße von 16 KB konfiguriert wurden, benötigen im Durchschnitt etwas mehr Arbeitsspeicher, erzielen aber auch verschiedene Leistungsverbesserungen für das System und die Anwendungen:
- Kürzere App-Startzeiten bei Speicherauslastung – im Durchschnitt um 3,16 % niedriger, mit größeren Verbesserungen (bis zu 30%) für einige getestete Apps
- Geringerer Stromverbrauch beim Start der App: durchschnittlich 4,56% weniger
- Schnellerer Start der Kamera: 4,48% schnellere Heißstarts im Durchschnitt und 6,60% schnellere Kaltstarts im Durchschnitt
- Verbesserte Systemstartzeit: durchschnittlich um 1,5% (ungefähr 0,8 Sekunden) verbessert
Diese Verbesserungen basieren auf unseren ersten Tests und die Ergebnisse auf tatsächlichen Geräten werden wahrscheinlich abweichen. Im Verlauf der Tests werden wir zusätzliche Analysen möglicher Vorteile für Apps bereitstellen.
Prüfen, ob Ihre App betroffen ist
Wenn Ihre App nativen Code verwendet, sollten Sie sie neu erstellen, sodass sie 16-KB-Geräte unterstützt. Wenn Sie sich nicht sicher sind, ob Ihre App nativen Code verwendet, können Sie mithilfe des APK Analyzer ermitteln, ob nativer Code vorhanden ist.
Wenn Ihre App nur Code verwendet, der in der Programmiersprache Java oder in Kotlin geschrieben ist (einschließlich aller Bibliotheken oder SDKs), unterstützt sie bereits 16-KB-Geräte. Trotzdem empfehlen wir Ihnen, Ihre Anwendung in einer 16 KB-Umgebung zu testen, um sicherzustellen, dass es keine unerwarteten Regressionen beim Verhalten der Anwendung gibt.
Erforderliche Änderungen für einige Apps zur Unterstützung des privaten Bereichs
Privater Bereich ist eine neue Funktion in Android 15, mit der Nutzer einen separaten Bereich auf ihrem Gerät erstellen, in dem sie sensible Apps fernhalten können eine zusätzliche Sicherheitsebene vor neugierigen Blicken. Da Apps in privaten Bereich eingeschränkt sind, müssen einige Arten von Apps zusätzliche Schritte, um Apps im privaten Modus eines Nutzers sehen und mit ihnen interagieren zu können Leerzeichen.
Alle Apps
Da Apps im privaten Bereich in einem separaten Nutzerprofil gespeichert werden, Arbeitsprofilen hinzugefügt werden, sollten Apps nicht davon ausgehen, dass installierte Kopien der App, die nicht im Hauptprofil enthalten sind, befinden sich im Arbeitsprofil. Wenn die Logik Ihrer App im Arbeitsprofil entspricht und diese Annahme basiert. müssen Sie diese Logik anpassen.
Medizinische Apps
Wenn ein Nutzer den privaten Bereich sperrt, werden alle Apps im privaten Bereich beendet. und diese Apps können keine Aktivitäten im Vordergrund oder im Hintergrund ausführen, Benachrichtigungen angezeigt. Dieses Verhalten kann die Nutzung und der im privaten Bereich installierten medizinischen Apps.
Bei der Einrichtung des privaten Bereichs werden Nutzer gewarnt, dass der private Bereich nicht Geeignet für Apps, die wichtige Funktionen im Vordergrund oder Hintergrund ausführen müssen Aktivitäten, z. B. das Anzeigen von Benachrichtigungen von medizinischen Apps. Sie können jedoch Apps nicht erkennen, ob sie im privaten Bereich verwendet werden, sodass dem Nutzer in diesem Fall keine Warnung angezeigt wird.
Wenn du eine medizinische App entwickelst, solltest du dir daher ansehen, auf Ihre App auswirken und geeignete Maßnahmen ergreifen, z. B. die Nutzer darüber informieren, deine App im privaten Bereich installieren, um Unterbrechungen wichtiger Apps zu vermeiden Funktionen.
Launcher-Apps
Wenn Sie eine Launcher-App entwickeln, müssen Sie vor der Bereitstellung von Apps im ist der private Bereich sichtbar:
- Ihre App muss als Standard-Launcher-App für das Gerät festgelegt sein,
mit der Rolle
ROLE_HOME
ist. - Deine App muss die
ACCESS_HIDDEN_PROFILES
deklarieren in der Manifestdatei Ihrer App eine normale Berechtigung angeben.
Launcher-Apps, die die Berechtigung ACCESS_HIDDEN_PROFILES
deklarieren, müssen
folgende Anwendungsfälle für den privaten Bereich:
- Ihre App benötigt einen separaten Launcher-Container für Apps, die im
im privaten Bereich. Verwenden Sie die Methode
getLauncherUserInfo()
, um um zu bestimmen, welche Art von Nutzerprofil verarbeitet wird. - Der Nutzer muss den Container für den privaten Bereich ein- und ausblenden können.
- Der Nutzer muss den Container für den privaten Bereich sperren und entsperren können. Verwenden Sie
Methode
requestQuietModeEnabled()
zum Sperren (durch übertrue
) oder entsperren (durch Übergabe vonfalse
) den privaten Bereich. Wenn die Sperre aktiviert ist, sollten keine Apps im Container für den privaten Bereich sichtbar sein oder die über Mechanismen wie die Suche auffindbar sind. Ihre App sollte eine Empfänger für die
ACTION_PROFILE_AVAILABLE
undACTION_PROFILE_UNAVAILABLE
überträgt und aktualisiert die Benutzeroberfläche in Ihrer App, wenn der private Bereich gesperrt oder entsperrt ist Containeränderungen. Beide Broadcasts umfassenEXTRA_USER
, mit dem deine App auf die Nutzer mit einem privaten Profil.Sie können auch die Methode
isQuietModeEnabled()
verwenden, um Prüfen Sie, ob das Profil im privaten Bereich gesperrt ist.
App Store-Apps
Der private Bereich enthält die Schaltfläche „Apps installieren“ Schaltfläche zum Starten einer impliziten
Apps im privaten Bereich des Nutzers installieren. Damit Ihre App
diesen impliziten Intent empfangen, ein <intent-filter>
deklarieren
in der Manifestdatei Ihrer App mit einem <category>
von
CATEGORY_APP_MARKET
PNG-basierte Emoji-Schriftart entfernt
Die alte PNG-basierte Emoji-Schriftartdatei (NotoColorEmojiLegacy.ttf
) wurde
sodass nur die vektorbasierte Datei übrig bleibt. Ab Android 13 (API)
Level 33), wurde die Emoji-Schriftartdatei, die vom System-Emoji-Renderer verwendet wird, von einer
PNG- und vektorbasierte Datei: Das System blieb
die alte Schriftartdatei unter Android 13 und 14 aus Kompatibilitätsgründen, sodass
Apps mit eigenen Schriftart-Renderern können weiterhin die alte Schriftartdatei verwenden.
bis das Upgrade durchgeführt werden konnte.
Um zu überprüfen, ob Ihre App betroffen ist, suchen Sie im Code Ihrer App nach Verweisen auf die
NotoColorEmojiLegacy.ttf
-Datei.
Sie können Ihre App auf verschiedene Arten anpassen:
- Plattform-APIs für das Textrendering verwenden Sie können Text als Bitmap-Basis
Canvas
und verwenden Sie diese bei Bedarf, um ein Rohbild abzurufen. - Unterstützung für COLRv1-Schriftarten in der App hinzufügen. Open-Source-Bibliothek von FreeType unterstützt COLRv1 in Version 2.13.0 und höher liegen.
- Als letzte Option kannst du auch die alte Emoji-Schriftartdatei bündeln.
(
NotoColorEmoji.ttf
) in Ihr APK einfügen, aber in diesem Fall fehlen in deiner App die neuesten Emoji-Updates. Für Weitere Informationen finden Sie im GitHub-Projekt "Noto Emoji" .
Minimale SDK-Zielversion wurde von 23 auf 24 erhöht
Android 15 baut auf den Änderungen in Android 14 auf und erweitert diese Sicherheit noch. Unter Android 15 können Apps mit einem targetSdkVersion
unter 24 nicht installiert werden.
Wenn Anwendungen die modernen API-Levels erfüllen müssen, werden Sicherheit und Datenschutz verbessert.
Malware zielt häufig auf niedrigere API-Levels ab, um die mit höheren Android-Versionen eingeführten Sicherheits- und Datenschutzfunktionen zu umgehen. Bei einigen Malware-Apps wird beispielsweise für targetSdkVersion
der Wert 22 verwendet, damit sie nicht dem 2015 von Android 6.0 Marshmallow (API-Level 23) eingeführten Laufzeitberechtigungsmodell unterliegen. Durch diese Änderung bei Android 15 wird es Malware schwerer, Verbesserungen bei der Sicherheit und beim Datenschutz zu vermeiden. Der Versuch, eine Anwendung zu installieren, die auf eine niedrigere API-Ebene ausgerichtet ist, führt zu einem Installationsfehler und in Logcat wird eine Meldung wie die folgende angezeigt:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7
Auf Geräten, die auf Android 15 aktualisiert werden, bleiben alle Apps mit einer targetSdkVersion
unter 24 installiert.
Wenn Sie eine App testen müssen, die auf ein älteres API-Level ausgerichtet ist, verwenden Sie den folgenden ADB-Befehl:
adb install --bypass-low-target-sdk-block FILENAME.apk
Kamera und Medien
Android 15 nimmt folgende Änderungen am Kamera- und Medienverhalten für alle vor Apps.
Bei der direkten und ausgelagerten Audiowiedergabe werden jetzt die zuvor geöffneten direkten und ausgelagerten Audiotracks ungültig, wenn Ressourcenlimits erreicht sind.
Vor Android 15 forderte eine App die direkte oder Auslagerung der Audiowiedergabe an, während eine andere App Audio abspielte. Wenn die Ressourcenlimits erreicht wurden, konnte die App kein neues AudioTrack
öffnen.
Wenn eine App die Wiedergabe direkt oder auslagernd anfordert und die Ressourcenlimits erreicht sind, werden ab Android 15 alle derzeit geöffneten AudioTrack
-Objekte ungültig, sodass die neue Trackanfrage nicht ausgeführt werden kann.
Direkte und ausgelagerte Audiotracks werden in der Regel für die Wiedergabe komprimierter Audioformate geöffnet. Zu den häufigsten Anwendungsfällen für die direkte Audiowiedergabe gehört das Streaming von codiertem Audio über HDMI auf einen Fernseher. Offload-Tracks werden normalerweise verwendet, um komprimierte Audiodaten auf einem Mobilgerät mit Hardware-DSP-Beschleunigung abzuspielen.)
Nutzererfahrung und System-UI
Android 15 umfasst einige Änderungen, die eine einheitlichere, eine intuitive User Experience bieten.
Vorausschauende Rückanimationen für Apps aktiviert, die diese Option aktiviert haben
Ab Android 15 wurde die Entwickleroption für vorhergehende Back-Animationen entfernt. Systemanimationen wie „Zurück zum Startbildschirm“, „Cross-Tasks“ und „Cross-Aktivitäten“ werden jetzt für Apps angezeigt, die entweder vollständig oder auf Aktivitätsebene die vorausschauende „Zurück“-Touch-Geste aktiviert haben. Wenn Ihre App betroffen ist, gehen Sie so vor:
- Prüfen Sie, ob Ihre App ordnungsgemäß migriert wurde, um die automatische Prognosefunktion zu verwenden.
- Sorgen Sie dafür, dass die Fragmentübergänge mit der vorausschauenden Zurück-Navigation funktionieren.
- Migrieren Sie weg von Animations- und Framework-Übergängen und verwenden Sie stattdessen Animator- und Androidx-Übergänge.
- Migrieren Sie weg von Back-Stacks, die
FragmentManager
nicht bekannt sind. Verwenden Sie stattdessen Back Stacks, die vonFragmentManager
oder der Navigationskomponente verwaltet werden.
Widgets sind deaktiviert, wenn der Nutzer das Beenden einer App erzwingt
Wenn ein Nutzer das Beenden einer App auf einem Gerät mit Android 15 erzwingt, deaktiviert das System vorübergehend alle Widgets der App. Die Widgets sind ausgegraut und der Nutzer kann nicht mit ihnen interagieren. Das liegt daran, dass ab Android 15 alle ausstehenden Intents einer App abgebrochen werden, wenn das Beenden der App erzwungen wird.
Das System aktiviert diese Widgets wieder, wenn der Nutzer die App das nächste Mal startet.
Weitere Informationen finden Sie unter Änderungen am Status „Paket angehalten“.
Einstellung von Produkten und Funktionen
Mit jedem Release können bestimmte Android-APIs veraltet sein oder müssen refaktoriert, um die Entwicklungsumgebung zu verbessern oder eine neue Plattform zu unterstützen Funktionen. In diesen Fällen stellen wir die veralteten APIs offiziell ein und Entwickler zu alternativen APIs weiterleiten, die sie stattdessen verwenden können
Das bedeutet, dass wir den offiziellen Support für die APIs eingestellt haben. weiterhin für Entwickler verfügbar. Um mehr über wichtige Informationen zu Einstellungen in dieser Android-Version finden Sie auf der Seite zu den Einstellungen.