Die Android 15-Plattform enthält 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 sie gegebenenfalls so ändern, dass sie diese Anforderungen erfüllt.
Lesen Sie sich auch die Liste der Verhaltensänderungen durch, die sich nur auf Apps auswirken, die auf Android 15 ausgerichtet sind.
Hauptfunktion
In Android 15 wurden verschiedene Kernfunktionen des Android-Systems geändert oder erweitert.
Änderungen am Status „Angehalten“ des Pakets
The intention of the package FLAG_STOPPED
state (which users
can engage in AOSP builds by long-pressing an app icon and selecting "Force
Stop") has always been to keep apps in this state until the user explicitly
removes the app from this state by directly launching the app or indirectly
interacting with the app (through the sharesheet or a widget, selecting the app
as live wallpaper, etc.). In Android 15, we've updated the behavior of the
system to be aligned with this intended behavior. Apps should only be removed
from the stopped state through direct or indirect user action.
To support the intended behavior, in addition to the existing restrictions, the
system also cancels all pending intents when the app enters the
stopped state on a device running Android 15. When the user's actions remove the
app from the stopped state, the ACTION_BOOT_COMPLETED
broadcast is delivered to the app providing an opportunity to re-register any
pending intents.
You can call the new
ApplicationStartInfo.wasForceStopped()
method to confirm whether the app was put into the stopped state.
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).
Benefits and performance gains
Geräte, die mit einer Seitengröße von 16 KB konfiguriert sind, benötigen im Durchschnitt etwas mehr Arbeitsspeicher, erzielen aber auch verschiedene Leistungsverbesserungen für das System und die Apps:
- Kürzere App-Startzeiten, während das System unter Speicherauslastung steht: im Durchschnitt 3,16 % niedriger, mit deutlicheren Verbesserungen (bis zu 30%) bei einigen von uns getesteten Apps
- Verringerter Stromverbrauch beim Starten der App: durchschnittlich 4,56% weniger
- Schnellerer Kamerastart: 4,48% schnellere Heißstarts und 6,60% schnellere Kaltstarts im Durchschnitt
- Verbesserte Systemstartzeit: durchschnittlich um 8% (ca. 950 Millisekunden)
Diese Verbesserungen basieren auf unseren ersten Tests. Die Ergebnisse auf tatsächlichen Geräten werden sich wahrscheinlich unterscheiden. Im Rahmen unserer Tests werden wir zusätzliche Analysen zu den potenziellen Vorteilen für Apps durchführen.
Check if your app is impacted
If your app uses any native code, then you should rebuild your app with support for 16 KB devices. If you are unsure if your app uses native code, you can use the APK Analyzer to identify whether any native code is present and then check the alignment of ELF segments for any shared libraries that you find.
If your app only uses code written in the Java programming language or in Kotlin, including all libraries or SDKs, then your app already supports 16 KB devices. Nevertheless, we recommend that you test your app in a 16 KB environment to verify that there are no unexpected regressions in app behavior.
Erforderliche Änderungen für einige Apps zur Unterstützung des privaten Bereichs
Private space is a new feature in Android 15 that lets users create a separate space on their device where they can keep sensitive apps away from prying eyes, under an additional layer of authentication. Because apps in the private space have restricted visibility, some types of apps need to take additional steps to be able to see and interact with apps in a user's private space.
All apps
Because apps in the private space are kept in a separate user profile, similar to work profiles, apps shouldn't assume that any installed copies of their app that aren't in the main profile are in the work profile. If your app has logic related to work profile apps that make this assumption, you'll need to adjust this logic.
Medical apps
When a user locks the private space, all apps in the private space are stopped, and those apps can't perform foreground or background activities, including showing notifications. This behavior might critically impact the use and function of medical apps installed in the private space.
The private space setup experience warns users that the private space is not suitable for apps that need to perform critical foreground or background activities, such as showing notifications from medical apps. However, apps can't determine whether or not they're being used in the private space, so they can't show a warning to the user for this case.
For these reasons, if you develop a medical app, review how this feature might impact your app and take appropriate actions—such as informing your users not to install your app in the private space—to avoid disrupting critical app capabilities.
Launcher apps
If you develop a launcher app, you must do the following before apps in the private space will be visible:
- Your app must be assigned as the default launcher app for the device—that
is, possessing the
ROLE_HOME
role. - Your app must declare the
ACCESS_HIDDEN_PROFILES
normal permission in your app's manifest file.
Launcher apps that declare the ACCESS_HIDDEN_PROFILES
permission must handle
the following private space use cases:
- Your app must have a separate launcher container for apps installed in the
private space. Use the
getLauncherUserInfo()
method to determine which type of user profile is being handled. - The user must be able to hide and show the private space container.
- The user must be able to lock and unlock the private space container. Use
the
requestQuietModeEnabled()
method to lock (by passingtrue
) or unlock (by passingfalse
) the private space. While locked, no apps in the private space container should be visible or discoverable through mechanisms such as search. Your app should register a receiver for the
ACTION_PROFILE_AVAILABLE
andACTION_PROFILE_UNAVAILABLE
broadcasts and update the UI in your app when the locked or unlocked state of the private space container changes. Both of these broadcasts includeEXTRA_USER
, which your app can use to refer to the private profile user.You can also use the
isQuietModeEnabled()
method to check whether the private space profile is locked or not.
App store apps
The private space includes an "Install Apps" button that launches an implicit
intent to install apps into the user's private space. In order for your app to
receive this implicit intent, declare an <intent-filter>
in your app's manifest file with a <category>
of
CATEGORY_APP_MARKET
.
PNG-basierte Emoji-Schriftart entfernt
Die alte, PNG-basierte Emoji-Schriftdatei (NotoColorEmojiLegacy.ttf
) wurde entfernt. Es bleibt nur die vektorbasierte Datei. Ab Android 13 (API-Ebene 33) wurde die Emoji-Schriftdatei, die vom System-Emoji-Renderer verwendet wird, von einer PNG-basierten Datei in eine vektorbasierte Datei geändert. Die alte Schriftdatei wurde in Android 13 und 14 aus Kompatibilitätsgründen beibehalten, damit Apps mit eigenen Schrift-Renderern die alte Schriftdatei weiter verwenden konnten, bis ein Upgrade möglich war.
Um zu prüfen, ob Ihre App betroffen ist, suchen Sie im Code Ihrer App nach Verweis auf die Datei NotoColorEmojiLegacy.ttf
.
Sie haben verschiedene Möglichkeiten, Ihre App anzupassen:
- Verwenden Sie Plattform-APIs für das Text-Rendering. Sie können Text in eine bitmapfähige
Canvas
rendern und bei Bedarf ein Rohbild daraus erstellen. - Fügen Sie Ihrer App die Schriftartenunterstützung COLRv1 hinzu. Die Open-Source-Bibliothek FreeType unterstützt COLRv1 ab Version 2.13.0.
- Als letzten Ausweg können Sie die alte Emoji-Schriftdatei (
NotoColorEmoji.ttf
) in Ihr APK einbinden. In diesem Fall fehlen Ihrer App jedoch die neuesten Emoji-Updates. Weitere Informationen finden Sie auf der GitHub-Projektseite von Noto Emoji.
Die Mindestversion der SDK-Zielversion wurde von 23 auf 24 erhöht
Android 15 builds on the
the changes that were made in Android 14 and extends this
security further. In Android 15, apps with a
targetSdkVersion
lower than 24 can't be installed.
Requiring apps to meet modern API levels helps to ensure better security and
privacy.
Malware often targets lower API levels in order to bypass security and privacy
protections that have been introduced in higher Android versions. For example,
some malware apps use a targetSdkVersion
of 22 to avoid being subjected to the
runtime permission model introduced in 2015 by Android 6.0 Marshmallow (API
level 23). This Android 15 change makes it harder for malware to avoid security
and privacy improvements. Attempting to install an app targeting a lower API
level results in an installation failure, with a message like the following one
appearing in Logcat:
INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 24, but found 7
On devices upgrading to Android 15, any apps with a targetSdkVersion
lower
than 24 remain installed.
If you need to test an app targeting an older API level, use the following ADB command:
adb install --bypass-low-target-sdk-block FILENAME.apk
Sicherheit und Datenschutz
Android 15 introduces robust measures to combat one-time passcode (OTP) fraud and to protect the user's sensitive content, focusing on hardening the Notification Listener Service and screenshare protections. Key enhancements include redacting OTPs from notifications accessible to untrusted apps, hiding notifications during screenshare, and securing app activities when OTPs are posted. These changes aim to keep the user's sensitive content safe from unauthorized actors.
Developers need to be aware of the following to ensure their apps are compatible with the changes in Android 15:
OTP Redaction
Android will stop untrusted apps that implement a
NotificationListenerService
from reading unredacted content
from notifications where an OTP has been detected. Trusted apps such as
companion device manager associations are exempt from these restrictions.
Screenshare Protection
- Notification content is hidden during screen sharing sessions to preserve
the user's privacy. If the app implements
setPublicVersion()
, Android shows the public version of the notification which serves as a replacement notification in insecure contexts. Otherwise, the notification content is redacted without any further context. - Sensitive content like password input is hidden from remote viewers to prevent revealing the user's sensitive information.
- Activities from apps that post notifications during screenshare where an OTP has been detected will be hidden. App content is hidden from the remote viewer when launched.
- Beyond Android's automatic identification of sensitive fields, developers
can manually mark parts of their app as sensitive using
setContentSensitivity
, which is hidden from remote viewers during screenshare. - Developers can choose to toggle the Disable screen share protections option under Developer Options to be exempted from the screenshare protections for demo or testing purposes. The default system screen recorder is exempted from these changes, since the recordings remain on-device.
Kamera und Medien
In Android 15 werden die folgenden Änderungen am Kamera- und Medienverhalten für alle Apps vorgenommen.
Bei der direkten und Offload-Audiowiedergabe werden zuvor geöffnete direkte oder Offload-Audiotracks ungültig, wenn die Ressourcenlimits erreicht werden.
Vor Android 15 konnte eine App, die eine direkte oder ausgelagerte Audiowiedergabe anforderte, während eine andere App Audio wiedergab und die Ressourcenlimits erreicht wurden, keine neue AudioTrack
öffnen.
Ab Android 15 werden alle derzeit geöffneten AudioTrack
-Objekte ungültig, wenn eine App die direkte oder Offload-Wiedergabe anfordert und die Ressourcenlimits erreicht werden. Dadurch wird verhindert, dass die neue Titelanfrage erfüllt wird.
(Direkte und Offload-Audiotracks werden in der Regel für die Wiedergabe komprimierter Audioformate geöffnet. Gängige Anwendungsfälle für die direkte Audiowiedergabe sind das Streaming von codiertem Audio über HDMI an einen Fernseher. Offload-Tracks werden in der Regel verwendet, um komprimierte Audioinhalte auf einem Mobilgerät mit Hardware-DSP-Beschleunigung abzuspielen.)
Nutzerfreundlichkeit und System-UI
Android 15 enthält einige Änderungen, die für eine einheitlichere und intuitivere Nutzererfahrung sorgen sollen.
Animationen für intelligente „Zurück“-Touch-Geste für Apps aktiviert, die die Funktion aktiviert haben
Ab Android 15 wurde die Entwickleroption für intelligente „Zurück“-Touch-Gesten entfernt. Systemanimationen wie das Zurückgehen zum Startbildschirm, das Wechseln zwischen Aufgaben und das Wechseln zwischen Aktivitäten werden jetzt für Apps angezeigt, die die vorhersagende Geste zum Zurückgehen entweder vollständig oder auf Aktivitätsebene aktiviert haben. Wenn Ihre App betroffen ist, gehen Sie so vor:
- Prüfen Sie, ob Ihre App richtig migriert wurde, um die vorweggenommene Zurück-Geste zu verwenden.
- Achten Sie darauf, dass Ihre Fragmentübergänge mit der vorausschauenden Navigation zurück funktionieren.
- Verwenden Sie stattdessen Animator- und androidx-Übergänge.
- Migrieren Sie von Backstacks weg, die
FragmentManager
nicht kennt. Verwenden Sie stattdessen Backstacks, die vonFragmentManager
oder der Navigationskomponente verwaltet werden.
Widgets werden deaktiviert, wenn der Nutzer eine App erzwungen beendet
Wenn ein Nutzer eine App auf einem Gerät mit Android 15 erzwungen beendet, 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 vom System abgebrochen werden, wenn die App erzwungen beendet 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 „Angehalten“ für Pakete.
Statusleiste-Chip für die Medienprojektion benachrichtigt Nutzer über Bildschirmfreigabe, Streaming und Aufzeichnung
Bei Ausnutzung von Bildschirmprojektion werden personenbezogene Nutzerdaten wie Finanzinformationen offengelegt, da Nutzer nicht wissen, dass ihr Gerätebildschirm geteilt wird.
Bei Apps, die auf Geräten mit Android 15 QPR1 oder höher ausgeführt werden, werden Nutzer über einen großen und gut sichtbaren Chip in der Statusleiste über eine laufende Bildschirmprojektion informiert. Nutzer können auf den Chip tippen, um zu verhindern, dass ihr Bildschirm geteilt, gestreamt oder aufgezeichnet wird. Außerdem wird die Bildschirmprojektion automatisch beendet, wenn das Display des Geräts gesperrt wird.

Prüfen, ob Ihre App betroffen ist
Ihre App enthält standardmäßig den Statusleisten-Chip und die Bildschirmprojektion wird automatisch pausiert, wenn der Sperrbildschirm aktiviert wird.
Weitere Informationen zum Testen Ihrer App für diese Anwendungsfälle finden Sie unter Statusleiste – Chip und automatischer Stopp.
Einschränkungen für den Netzwerkzugriff im Hintergrund
In Android 15, apps that start a network request outside of a valid process
lifecycle receive an exception. Typically, an
UnknownHostException
or other socket-related
IOException
. Network requests that happen outside of a valid lifecycle are
usually due to apps unknowingly continuing a network request even after the app
is no longer active.
To mitigate this exception, ensure your network requests are lifecycle aware and cancelled upon leaving a valid process lifecycle by using lifecycle aware components. If it is important that the network request should happen even when the user leaves the application, consider scheduling the network request using WorkManager or continue a user visible task using Foreground Service.
Einstellung von Produkten und Funktionen
Mit jeder Version können bestimmte Android APIs veraltet werden oder müssen umgestaltet werden, um Entwicklern mehr Möglichkeiten zu bieten oder neue Plattformfunktionen zu unterstützen. In diesen Fällen werden die veralteten APIs offiziell eingestellt und Entwickler werden auf alternative APIs verwiesen.
Das bedeutet, dass wir die offizielle Unterstützung für die APIs eingestellt haben, sie aber weiterhin für Entwickler verfügbar sind. Weitere Informationen zu wichtigen Einstellung von Funktionen in dieser Android-Version finden Sie auf der Seite zu eingestellten Funktionen.