Verhaltensänderungen: alle Apps

Die Android 15-Plattform umfasst Verhaltensänderungen, die sich auf Ihre App auswirken können. Die folgenden Änderungen gelten für alle Apps, wenn sie unter Android 15 ausgeführt werden, unabhängig von targetSdkVersion. Sie sollten Ihre App testen und dann bei Bedarf so anpassen, dass sie ordnungsgemäß unterstützt wird.

Sieh dir unbedingt auch die Liste der Änderungen des Verhaltens, die sich nur auf Apps auswirken, die auf Android 15 ausgerichtet sind an.

Hauptfunktion

Mit Android 15 werden verschiedene Kernfunktionen des Android-Systems modifiziert oder erweitert.

Änderungen am Status „angehalten des Pakets“

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 auch alle ausstehenden Intents ab, wenn die App unter Android 15 in den Status „Angehalten“ wechselt, um das beabsichtigte Verhalten zu unterstützen. Wenn der Status der App durch die Aktionen des Nutzers entfernt wird, wird der Broadcast ACTION_BOOT_COMPLETED 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

In der Vergangenheit wurden bei Android nur Seiten mit einer Größe von 4 KB unterstützt. Dadurch wurde die Systemspeicherleistung für die durchschnittliche Gesamtarbeitsspeichergröße von Android-Geräten optimiert. Ab Android 15 werden Geräte mit einer Seitengröße von 16 KB (16 KB-Geräte) unterstützt.

Da Gerätehersteller auch weiterhin Geräte mit größerem physischem Arbeitsspeicher (RAM) entwickeln, werden viele dieser Geräte wahrscheinlich mit Seitengrößen von 16 KB (und schließlich auch mit größeren Seiten) konfiguriert, um die Geräteleistung zu optimieren. Wenn Sie die Unterstützung für 16-KB-Geräte hinzufügen, kann Ihre App auf diesen Geräten ausgeführt werden und Ihre App profitiert von den damit verbundenen Leistungsverbesserungen. Um Ihnen dabei zu helfen, haben wir Ihnen Anleitungen dazu zusammengestellt, wie Sie prüfen, ob Ihre App betroffen ist, wie Sie Ihre Anwendung neu erstellen (falls zutreffend) und wie Sie Ihre App in einer 16 KB-Umgebung mit Emulatoren und physischen Geräten testen.

Vorteile und Leistungssteigerungen

配置为 16 KB 页面的设备平均使用的内存会略多,但系统和应用性能也会有所提升:

  • 在系统面临内存压力时缩短应用启动时间:平均降低了 3.16%,对于我们测试过的一些应用而言,改进幅度更显著(提升幅度高达 30%)
  • 降低应用启动时的功耗:平均降低 4.56%
  • 相机启动速度更快:平均热启动速度加快 4.48%,冷启动速度平均加快 6.60%
  • 缩短了系统启动时间:平均缩短了 1.5%(约 0.8 秒)

这些改进基于我们的初始测试,实际设备上的结果可能会有所不同。在继续测试的过程中,我们会进一步分析应用的潜在益处。

Prüfen, ob Ihre App betroffen ist

如果您的应用使用任何原生代码,则您应重新构建支持 16 KB 设备的应用。如果您不确定自己的应用是否使用了原生代码,可以使用 APK 分析器来确定是否存在任何原生代码

如果您的应用仅使用以 Java 编程语言或 Kotlin 编写的代码(包括所有库或 SDK),那么该应用已经支持 16 KB 设备。不过,我们建议您在 16 KB 的环境中测试应用,以确认应用行为是否存在意外回归问题。

Erforderliche Änderungen für einige Apps zur Unterstützung des privaten Bereichs

私密空间是 Android 15 中的一项新功能,可让用户在其设备上创建一个单独的空间,通过额外的身份验证层来保护敏感应用不会被窥探。由于私密空间中的应用公开范围受到限制,因此某些类型的应用需要执行额外的步骤,才能查看用户的私密空间中的应用并与之互动。

所有应用

由于私密空间中的应用保存在单独的用户个人资料中(与工作资料类似),因此应用不应假定主资料中未包含其应用的任何已安装副本都在工作资料中。如果您的应用具有与做出此假设的工作资料应用相关的逻辑,您需要调整此逻辑。

启动器应用

如果您开发启动器应用,则必须执行以下操作,私密空间中的应用才会显示:

  1. 您的应用必须被指定为设备的默认启动器应用,也就是说,该应用具有 ROLE_HOME 角色。
  2. 您的应用必须在应用的清单文件中声明 ACCESS_HIDDEN_PROFILES 常规权限。

声明 ACCESS_HIDDEN_PROFILES 权限的启动器应用必须处理以下私密空间用例:

  1. 对于安装在私密空间中的应用,您的应用必须具有单独的启动器容器。
  2. 用户必须能够隐藏和显示私密空间容器。
  3. 用户必须能够锁定和解锁私密空间容器。
  4. 在锁定状态下,私密空间容器中的任何应用均不得通过搜索等机制可见或发现。

应用商店中的应用

私密空间包含“安装应用”按钮,该按钮可启动一个隐式 intent,以将应用安装到用户的私密空间中。为了让您的应用接收此隐式 intent,请在应用的清单文件中声明一个 <intent-filter>,并将 <category> 设为 CATEGORY_APP_MARKET

Die Mindest-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

Unter Android 15 werden für alle Apps die folgenden Änderungen am Kamera- und Medienverhalten vorgenommen.

Direkte und ausgelagerte Audiowiedergabe macht jetzt zuvor offene direkte Aktivitäten ungültig oder lagert Audiotracks aus, 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 für eine einheitlichere und intuitivere Nutzererfahrung sorgen sollen.

Animationen für vorhersehbare Rückwärtsbewegungen für Apps mit aktivierter Option aktiviert

从 Android 15 开始,移除了预测性返回动画的开发者选项。现在,对于已完全或在 activity 级别选择启用预测性返回手势的应用,系统现在会显示“返回主屏幕”“跨任务”和“跨 activity”等系统动画。如果您的应用受到影响,请执行以下操作:

  • 确保您的应用已正确迁移,以使用预测性返回手势。
  • 确保您的 fragment 转换支持预测性返回导航。
  • 停止使用动画和框架转换,并改用 Animator 和 AndroidX 转换。
  • FragmentManager 不知道的返回堆栈中迁出。请改用由 FragmentManager 或 Navigation 组件管理的返回堆栈。

Einstellung von Produkten und Funktionen

Mit jedem Release können bestimmte Android APIs veraltet sein oder refaktoriert werden, um die Entwicklererfahrung zu verbessern oder neue Plattformfunktionen zu unterstützen. In diesen Fällen stellen wir die veralteten APIs offiziell ein und leiten die Entwickler stattdessen zu alternativen APIs weiter.

Wir haben den offiziellen Support für die APIs eingestellt. Sie stehen Entwicklern aber weiterhin zur Verfügung. Weitere Informationen zu wichtigen Einstellungen in diesem Android-Release finden Sie auf der Seite zu veralteten Versionen.