動作の変更点: すべてのアプリ

Android 15 プラットフォームには、アプリに影響する可能性がある動作変更が含まれています。 Android 15 で実行されるすべてのアプリに以下の動作変更が適用されます。 targetSdkVersion に関係なく適用されます。アプリをテストしてから 必要に応じて適切にサポートします

アプリにのみ影響する動作変更のリストも必ずご確認ください。 Android 15 がターゲットです

コア機能

Android 15 では、Android システムのさまざまなコア機能を変更または拡張しています。

パッケージ停止状態の変更

软件包 FLAG_STOPPED 状态(用户可以通过长按应用图标并选择“强行停止”来参与 AOSP build)一直是为了让应用保持此状态,直到用户通过直接启动应用或间接与应用互动(通过 Sharesheet 或 widget、选择应用作为动态壁纸等)将应用从此状态明确移除。在 Android 15 中,我们将更新系统的行为,以符合这一预期行为。只能通过用户直接或间接操作将应用从停止状态中移除。

为了支持预期行为,除了现有限制之外,当应用在搭载 Android 15 的设备上进入停止状态时,系统还会取消所有待处理 intent。当用户的操作将应用从停止状态中移除时,系统会向应用传递 ACTION_BOOT_COMPLETED 广播,让用户有机会重新注册任何待处理的 intent。

您可以调用新的 ApplicationStartInfo.wasForceStopped() 方法来确认应用是否已置于停止状态。

16 KB ページサイズのサポート

一直以来,Android 仅支持 4 KB 的内存页面大小,针对 Android 设备通常拥有的平均总内存量,系统内存性能进行了优化。从 Android 15 开始,Android 支持配置为使用 16 KB 页面大小的设备(即 16 KB 设备)。

随着设备制造商不断打造具有更大物理内存 (RAM) 的设备,这些设备中的许多可能会配置 16 KB(最终更大)的页面大小,以优化设备的性能。添加对 16 KB 设备的支持可让您的应用在这些设备上运行,并帮助您的应用从相关性能改进中受益。为了帮助您解决此问题,我们提供了一些指南,帮助您了解如何检查您的应用是否受到影响、如何重新构建应用(如果适用),以及如何同时使用模拟器和实体设备在 16 KB 的环境中测试应用

メリットとパフォーマンスの向上

ページサイズが 16 KB に設定されたデバイスは、平均でわずかに多くのメモリを使用しますが、システムとアプリの両方でさまざまなパフォーマンスの向上が得られます。

  • システムがメモリ不足の状況にあるときのアプリの起動時間が短縮: 平均で 3.16% 短縮され、テストした一部のアプリでは大幅な改善(最大 30%)を達成
  • アプリ起動時の消費電力の削減: 平均 4.56% を削減
  • カメラの起動の高速化: ホットスタートが平均 4.48% 高速化、コールド スタートが平均 6.60% 高速化
  • システムの起動時間の改善: 平均 1.5%(約 0.8 秒)改善

これらの改善は初期テストに基づくため、実際のデバイスでの結果とは異なる可能性があります。Google はテストを継続し、アプリの潜在的な利点に関して追加の分析を提供します。

アプリが影響を受けるかどうかを確認する

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

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

プライベート スペースをサポートするために一部のアプリで必要な変更

私密空间是 Android 15 中的一项新功能,可让用户在设备上创建一个单独的空间,使敏感应用免遭窥探,并额外增加一层身份验证。由于私密空间中的应用的可见性受到限制,因此某些类型的应用需要执行额外的步骤才能查看用户的私密空间中的应用并与之互动。

所有应用

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

启动器应用

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

  1. 您必须将应用指定为设备的默认启动器应用,即具有 ROLE_HOME 角色。
  2. 应用必须在应用的清单文件中声明 ACCESS_HIDDEN_PROFILES 一般权限。

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

  1. 您的应用必须为安装在私密空间中的应用提供单独的启动器容器。使用 getLauncherUserInfo() 方法确定正在处理的用户个人资料类型。
  2. 用户必须能够隐藏和显示私密空间容器。
  3. 用户必须能够锁定和解锁私密空间容器。使用 requestQuietModeEnabled() 方法可锁定(通过传递 true)或解锁(通过传递 false)私密空间。
  4. 处于锁定状态时,私密空间容器中的任何应用都不应通过搜索等机制可见或发现。您的应用应为 ACTION_PROFILE_AVAILABLEACTION_PROFILE_UNAVAILABLE 广播注册接收器,并在私密空间容器的锁定或解锁状态发生变化时更新应用中的界面。这两个广播都包含 EXTRA_USER,您的应用可以使用它来引用私密个人资料用户。

    您还可以使用 isQuietModeEnabled() 方法检查私密空间配置文件是否已锁定。

应用商店应用

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

PNG ベースの絵文字フォントを削除

基于 PNG 的旧版表情符号字体文件 (NotoColorEmojiLegacy.ttf) 已 只留下基于矢量的文件从 Android 13 (API) 开始 级别 33),系统表情符号渲染程序使用的表情符号字体文件已从 PNG 文件转换为矢量文件。系统保留了 Android 13 和 14 中的旧版字体文件。 具有自己的字体渲染程序的应用可以继续使用旧版字体文件 直到能够升级为止

您可以选择以多种方式调整您的应用:

  • 使用平台 API 进行文本渲染。您可以将文本渲染为基于位图的 Canvas,并在必要时使用它获取原始图像。
  • 向您的应用添加 COLRv1 字体支持。FreeType 开源库 在版本 2.13.0 中支持 COLRv1,并且 。
  • 万不得已时,可以将旧版表情符号字体文件打包 (NotoColorEmoji.ttf) 复制到您的 APK 中, 但在这种情况下,您的应用将缺少最新的表情符号更新。对于 请参阅 Noto 表情符号 GitHub 项目 页面

最小対象 SDK バージョンを 23 から 24 に引き上げ

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

カメラとメディア

Android 15 では、すべてのカメラとメディアの動作が次のように変更されます。 。

直接再生とオフロード音声再生で、リソースの上限に達すると、以前開いていたダイレクト トラックまたはオフロード オーディオ トラックが無効になるようになりました

在 Android 15 之前,如果某个应用在另一个应用正在播放音频时请求直接播放或分流音频播放,并且已达到资源限制,此应用将无法打开新的 AudioTrack

从 Android 15 开始,当应用请求直接或分流播放并且达到资源限制时,系统会使当前打开的所有 AudioTrack 对象失效,从而阻止执行新的轨道请求。

(直接和分流音轨通常会打开,以播放压缩的音频格式。播放直接音频的常见用例包括通过 HDMI 将编码音频流式传输到电视。分流轨道通常用于在具有硬件 DSP 加速的移动设备上播放压缩音频。)

ユーザー エクスペリエンスとシステム UI

Android 15 では、一貫性を保ち、 直感的に操作できます

予測型「戻る」アニメーションをオプトインしたアプリで有効にする

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

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

ユーザーがアプリを強制停止したときにウィジェットが無効になる

Android 15 を搭載したデバイスでユーザーがアプリを強制停止すると、そのアプリのウィジェットがすべて一時的に無効になります。ウィジェットはグレー表示され、ユーザーは操作できません。これは、Android 15 以降、アプリが強制停止されると、システムがアプリのペンディング インテントをすべてキャンセルするためです。

ウィジェットは、ユーザーが次にアプリを起動したときに、再び有効になります。

詳しくは、パッケージ停止状態の変更をご覧ください。

サポートの終了

各リリースで、特定の Android API が古くなったり、廃止する必要があったりします。 デベロッパー エクスペリエンスの向上や新しいプラットフォームのサポートのためにリファクタリングされた 提供しますそのような場合は、廃止された API を正式に非推奨化し、 代わりに使用する代替 API をデベロッパーに提示します。

非推奨とは、API の公式サポートを終了したことですが、今後 引き続きデベロッパーが利用できるようになっています。注目すべきトピックについて 非推奨に関するページをご覧ください。