兼容性框架变更 (Android 15)

图 1. 开发者选项中的“应用兼容性变更”屏幕列出了您可以开启或关闭的变更。

本页将介绍 Android 15 兼容性框架中包含的可切换变更。在准备支持 Android 15 和以该平台为目标平台时,请将此列表与开发者选项和 ADB 命令结合使用,以测试和调试您的应用。

以下是您可以使用兼容性框架工具进行的操作:

  • 在不实际更改应用的 targetSdkVersion 的情况下测试针对性的变更。您可以使用切换开关强制启用特定的针对性行为变更,以评估对现有应用的影响。
  • 仅针对特定变更进行测试。您可以使用切换开关停用除要测试的变更之外的所有针对性变更,而不必一次处理所有针对性变更。
  • 通过 adb 管理切换开关。您可以使用 adb 命令在自动测试环境中启用和停用可切换的变更。
  • 使用标准变更 ID 更快地进行调试。每个可切换的变更都具有唯一 ID 和名称,可用于在日志输出中快速调试根本原因。

如需详细了解如何针对每个用例使用相应工具,请参阅兼容性框架工具

兼容性框架中包含的行为变更

此部分的列表中介绍了兼容性框架中包含的可切换变更,适用于与 Android 15 相关的变更,以及有助于进行常规应用测试的可切换变更。

您可以按默认状态过滤变更列表。

Android 15 兼容性框架中的可切换变更

CAMERA_MIC_INDICATORS_NOT_PRESENT

变更 ID:162547999
默认状态:对所有应用都处于停用状态。

表示此设备支持摄像头和麦克风指示标志。如果存在该变更 ID,则值为 false,因为如果不存在,CompatChanges#isChangeEnabled 方法会返回 true

CHECK_PARAMS_IN_IS_SESSION_CONFIGURATION_SUPPORTED

变更 ID:320741775
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,isSessionConfigurationSupported 还会检查会话参数的兼容性(如果受 HAL 支持)。

DEFAULT_RESCIND_BAL_PRIVILEGES_FROM_PENDING_INTENT_CREATOR

变更 ID:296478951
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,PendingIntent 的创建者会默认阻止后台 activity 启动

如需详细了解此变更,请参阅 Android 15 行为变更页面中关于 安全的后台 activity 启动的部分。

DEPRECATE_UI_FONT

变更 ID:279646685
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,当应用在搭载 Android 15 或更高版本的设备上运行时,elegantTextHeight TextView 属性会默认变为 true,这会将默认使用的紧凑字体替换为一些具有较大垂直指标的脚本,使其更易于阅读。

如需详细了解此变更,请参阅 Android 15 行为变更页面中关于 legateTextHeight 属性默认设为 true 的部分。

DOWNSCALED

变更 ID:168419799
默认状态:对所有应用都处于停用状态。

此变更是所有按应用进行缓冲区缩减变更的把关程序。启用此更改后,可应用以下缩放比例:

为应用软件包启用此变更后,系统会强制将应用大小调整为启用的最大缩放比例。例如,如果同时启用了 80% 和 70%(DOWNSCALE_80DOWNSCALE_70),则使用 80%。 如果同时启用此变更和 DOWNSCALED_INVERSE,则 DOWNSCALED_INVERSE 优先,相反,系统会应用缩放比例。

DOWNSCALED_INVERSE

变更 ID:273564678
默认状态:对所有应用都处于停用状态。

此变更是所有按应用缓冲区逆向缩小变更的把关程序。启用此更改后,系统会以相反的方式应用以下缩放比例(即提高分辨率):

为应用软件包启用此更改后,系统会强制将应用大小调整为已启用的最低缩放比例。例如,如果同时启用了 80% 和 70%(DOWNSCALE_80DOWNSCALE_70),则会使用 80%,因为反之,80% 的缩放比例等于 125%,小于反应用 70% 缩放比例时应用的 142.86% 缩放比例。如果同时启用此变更和 DOWNSCALED,则 DOWNSCALED_INVERSE 优先,相反,系统会应用缩放比例。

DOWNSCALE_30

变更 ID:189970040
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 30% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 333.33% 的显示屏上运行。

DOWNSCALE_35

变更 ID:189969749
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 35% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 285.71% 的显示屏上运行。

DOWNSCALE_40

变更 ID:189970038
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 40% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 250% 的显示屏上运行。

DOWNSCALE_45

变更 ID:189969782
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 45% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 222.22% 的显示屏上运行。

DOWNSCALE_50

变更 ID:176926741
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 50% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 200% 的显示屏上运行。

DOWNSCALE_55

变更 ID:189970036
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 55% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 181.82% 的显示屏上运行。

DOWNSCALE_60

变更 ID:176926771
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 60% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 166.67% 的显示屏上运行。

DOWNSCALE_65

变更 ID:189969744
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 65% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 153.85% 的显示屏上运行。

DOWNSCALE_70

变更 ID:176926829
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 70% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 142.86% 的显示屏上运行。

DOWNSCALE_75

变更 ID:189969779
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 75% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 133.33% 的显示屏上运行。

DOWNSCALE_80

变更 ID:176926753
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 80% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 125% 的显示屏上运行。

DOWNSCALE_85

变更 ID:189969734
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 85% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 117.65% 的显示屏上运行。

DOWNSCALE_90

变更 ID:182811243
默认状态:对所有应用都处于停用状态。

如果同时还启用了 DOWNSCALED,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 90% 的显示屏上运行。如果同时还启用了 DOWNSCALED_INVERSE,则为软件包启用此变更便会强制应用假定自己是在一部横向及纵向分辨率为实际显示屏的 111.11% 的显示屏上运行。

DO_NOT_CLONE_IN_ARRAYS_AS_LIST

变更 ID:202956589
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,组件类型将为 Arrays.asList(...).toArray() Object,而非底层数组的元素类型。因此,以下代码将抛出 ClassCastException

String[] elements = (String[]) Arrays.asList("one", "two").toArray();

您可以使用 Collection.toArray(Object[]) 来解决此问题:

String[] elements = Arrays.asList("two", "one").toArray(new String[0]);

ENABLE_BUNDLE_LAUNCH_ACTIVITY_ITEM

变更 ID:324203798
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,为防止任何现有应用因未使用 ClientTransaction#getActivityToken() 的 SDK 而出现应用兼容性问题,请仅允许捆绑 LaunchActivityItem

ENABLE_MATCH_LOCAL_NETWORK

变更 ID:319212206
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,应用会默认接收来自本地网络的网络回调。以 Android 14(API 级别 34)或更低版本为目标平台的应用仍需将 NetworkCapabilities.NET_CAPABILITY_LOCAL_NETWORK 添加到 NetworkRequestNetworkCapabilities 中,才能从本地网络接收 ConnectivityManager.NetworkCallback

ENABLE_STRICT_FORMATTER_VALIDATION

变更 ID:270674727
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,使用 String.format()Formatter.format() API 时,参数索引、标志、宽度和精度验证现在会更严格。

如需详细了解此变更,请参阅 Android 15 行为变更页面中关于 OpenJDK 17 变更的部分。

ENFORCE_EDGE_TO_EDGE

变更 ID:309578419
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,在搭载 Android 15 或更高版本的设备上,应用默认将无边框。

如需详细了解此变更,请参阅 Android 15 行为变更页面中有关 边缘强制执行的部分。

ENFORCE_STRICT_QUERY_BUILDER

变更 ID:143231523
默认状态:对所有应用都处于停用状态。

启用后,SQLiteQueryBuilder 会根据恶意参数验证所有 CalendarProvider2 查询选择。

FGS_BOOT_COMPLETED_RESTRICTIONS

变更 ID:296558535
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,系统会针对以下所有类型停用从 BOOT_COMPLETED 广播开始的前台服务后台启动:

如需详细了解此变更,请参阅 Android 15 行为变更页面中 对启动前台服务的 BOOT_COMPLETED 广播接收器的限制部分。

FGS_SAW_RESTRICTIONS

变更 ID:319471980
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,系统会针对所有类型停用在系统提醒窗口中启动前台服务后台服务,除非该服务已具有系统叠加层窗口。

如需详细了解此变更,请参阅 Android 15 行为变更页面中有关 在应用拥有 SYSTEM_ALERT_WINDOW 权限时启动前台服务的限制部分。

FORCE_DISABLE_HEVC_SUPPORT

变更 ID:174227820
默认状态:对所有应用都处于停用状态。

强制应用停止支持 HEVC 媒体功能。 应用应在其清单中声明支持的媒体功能,但此标志可用于强制应用不支持 HEVC,从而在访问以 HEVC 编码的媒体时强制转码。设置此标志会替换应用的任何操作系统级默认值。它默认处于停用状态,这意味着操作系统默认设置优先。如果同时启用了此标志和 FORCE_ENABLE_HEVC_SUPPORT,操作系统会忽略这两个标志。

FORCE_ENABLE_HEVC_SUPPORT

变更 ID:174228127
默认状态:对所有应用都处于停用状态。

强制应用支持 HEVC 媒体功能。应用应在清单中声明支持的媒体功能,但此标志可用于强制应用支持 HEVC,从而在访问以 HEVC 编码的媒体时避免转码。设置此标志会替换应用的任何操作系统级默认值。它默认处于停用状态,这意味着操作系统默认设置优先。如果同时启用了此标志和 FORCE_DISABLE_HEVC_SUPPORT,操作系统会忽略这两个标志。

FORCE_NON_RESIZE_APP

变更 ID:181146395
默认状态:对所有应用都处于停用状态。

强制使应用此变更的软件包无法调整尺寸。

FORCE_RESIZE_APP

变更 ID:174042936
默认状态:对所有应用都处于停用状态。

强制使应用此变更的软件包可调整大小。我们只允许在全屏窗口模式下调整大小,但不强制应用进入可调整大小的多窗口模式。

GWP_ASAN

变更 ID:145634846
默认状态:对所有应用都处于停用状态。

在应用中启用采样原生内存 bug 检测。

如需详细了解如何使用 GWP-ASan,请参阅 GWP-ASan 指南

IS_DEVICE_OWNER_USER_AWARE

变更 ID:307233716
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,isDeviceOwnerApp(String) 方法将使用上下文中包含的用户。对于以 Android 14(API 级别 34)或更低版本为目标平台的应用,系统将使用调用进程的用户 (Process.myUserHandle())。

MANAGE_GLOBAL_ZEN_VIA_IMPLICIT_RULES

变更 ID:308670109
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,应用无法再更改设备的全局状态或勿扰 (DND) 政策(通过修改用户设置或关闭勿扰模式)。相反,应用必须提供一个 AutomaticZenRule,系统会将其合并到一个具有现有限制性最强政策胜出方案的全局政策中。

如需详细了解此变更,请参阅 Android 15 行为变更页面中 有关应用何时可以修改勿扰模式全局状态的变更部分。

NATIVE_HEAP_ZERO_INIT

变更 ID:178038272
默认状态:对所有应用都处于停用状态。

启用原生堆内存分配的自动零初始化。

NATIVE_MEMTAG_ASYNC

变更 ID:145772972
默认状态:对所有应用都处于停用状态。

在此过程中启用异步 (ASYNC) 内存标记检查。 此标记仅影响支持 ARM 内存标记扩展 (MTE) 的硬件。

NATIVE_MEMTAG_SYNC

变更 ID:177438394
默认状态:对所有应用都处于停用状态。

在此过程中启用同步 (SYNC) 内存标记检查。 此标记仅影响支持 ARM 内存标记扩展 (MTE) 的硬件。如果同时启用 NATIVE_MEMTAG_ASYNC 和此选项,此选项优先,并在 SYNC 模式下启用 MTE。

OVERRIDE_ANY_ORIENTATION

变更 ID:265464455
默认状态:对所有应用都处于停用状态。

启用后,无论 activity 请求的屏幕方向如何,此更改都将允许应用以下屏幕方向替换设置:

OVERRIDE_ANY_ORIENTATION_TO_USER

变更 ID:310816437
默认状态:对所有应用都处于停用状态。

启用后,会启用 SCREEN_ORIENTATION_USER,以替换 activity 请求的任何屏幕方向。通过此替换项,在启用了 ignoreOrientationRequest 的大屏设备上,可将固定屏幕方向的应用替换为全屏。

OVERRIDE_CAMERA_COMPAT_DISABLE_FREEFORM_WINDOWING_TREATMENT

变更 ID:314961188
默认状态:对所有应用都处于停用状态。

启用后,对于屏幕方向固定的应用,系统会在自由窗口模式下从相机兼容性处理中排除应用此替换项的软件包。

在自由窗口窗口模式下,兼容性处理可模拟在竖屏设备上运行,具体方法是:将应用窗口加入信箱模式,并将摄像头特性更改为应用在竖屏设备上通常预期的特性:分别为后置和前置摄像头旋转 90 度和 270 度传感器,并将显示屏旋转角度设置为 0。

使用此标记可针对响应处理失败的应用停用兼容性处理。

OVERRIDE_CAMERA_RESIZABLE_AND_SDK_CHECK

变更 ID:191514214
默认状态:对所有应用都处于停用状态。

启用后,此变更会强制使应用该变更的软件包忽略 android:resizeableActivity 的当前值,以等于或低于 M 的目标 SDK 为目标,并将该 activity 视为不可调整大小。在这种情况下,在考虑当前的屏幕旋转时,相机旋转和剪裁的值仅取决于所需的补偿。

OVERRIDE_CAMERA_ROTATE_AND_CROP_DEFAULTS

变更 ID:189229956
默认状态:对所有应用都处于停用状态。

启用后,此变更会强制采用此变更的软件包替换默认的相机旋转和剪裁行为,并始终返回 CaptureRequest.SCALER_ROTATE_AND_CROP_NONE

OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION

变更 ID:316897322
默认状态:对所有应用都处于停用状态。

启用后,可确保在启动 MediaProjection 会话时,为用户提供拍摄单个应用或整个屏幕的选项,从而替换 MediaProjectionConfig#createConfigForDefaultDisplay 的使用。

OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE

变更 ID:266124927
默认状态:对所有应用都处于停用状态。

为已应用此变量的应用启用 SCREEN_ORIENTATION_REVERSE_LANDSCAPE。除非也启用了 OVERRIDE_ANY_ORIENTATION,否则只有当 activity 指定横向时,才会使用 SCREEN_ORIENTATION_REVERSE_LANDSCAPE。启用此变更有助于您测试应用行为,看看横向对应于 Surface.ROTATION_90 的设备与对应于 Surface.ROTATION_270 的设备之间的差异。

OVERRIDE_MIN_ASPECT_RATIO

变更 ID:174042980
默认状态:对所有应用都处于停用状态。

此变更是所有强制采用指定最小宽高比的变更的把关程序。启用此变更可应用以下最小宽高比:

为应用软件包启用此变更后,应用清单中提供的最小宽高比将替换为启用的最大宽高比,除非应用的清单值更高。

OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN

变更 ID:218959984
默认状态:对所有应用都处于停用状态。

启用后,会覆盖纵向全屏模式的最小宽高比限制,以便使用所有可用的屏幕空间。

OVERRIDE_MIN_ASPECT_RATIO_LARGE

变更 ID:180326787
默认状态:对所有应用都处于停用状态。

如果同时还启用了 OVERRIDE_MIN_ASPECT_RATIO,则为软件包启用此变更便会将 activity 的最小宽高比设置为 OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE 定义的较大值。

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

变更 ID:180326845
默认状态:对所有应用都处于停用状态。

如果同时还启用了 OVERRIDE_MIN_ASPECT_RATIO,则为软件包启用此变更便会将 activity 的最小宽高比设置为 OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE 定义的中等值。

OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY

变更 ID:203647190
默认状态:对所有应用都处于启用状态。

如果同时还启用了 OVERRIDE_MIN_ASPECT_RATIO,此变更会将强制将 activity 的最小宽高比设置为特定值的任何其他更改(例如 OVERRIDE_MIN_ASPECT_RATIO_LARGEOVERRIDE_MIN_ASPECT_RATIO_MEDIUM)限制为同样采用纵向的 activity。

OVERRIDE_RESPECT_REQUESTED_ORIENTATION

变更 ID:236283604
默认状态:对所有应用都处于停用状态。

启用后,此变更会从设备制造商可以设置的忽略屏幕方向限制中排除已应用的软件包。

OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR

变更 ID:265451093
默认状态:对所有应用都处于停用状态。

为已应用此变量的应用启用 SCREEN_ORIENTATION_NOSENSOR。除非同时还启用了 OVERRIDE_ANY_ORIENTATION,否则只有当 activity 未指定任何其他固定屏幕方向时才使用 SCREEN_ORIENTATION_NOSENSOR

OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT

变更 ID:265452344
默认状态:对所有应用都处于停用状态。

为已应用此变量的应用启用 SCREEN_ORIENTATION_PORTRAIT。除非同时还启用了 OVERRIDE_ANY_ORIENTATION,否则只有当 activity 未指定任何其他固定屏幕方向时才使用 SCREEN_ORIENTATION_PORTRAIT

PARSE_CONTENT_DISPOSITION_USING_RFC_6266

变更 ID:319400769
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,系统会允许解析符合 RFC 6266 的 Content-Disposition 标头。具体而言,这样就可以解析可以使用不同字符编码的 filename* 值。

RATE_LIMIT_TOASTS

变更 ID:174840628
默认状态:无法切换此变更的状态。它只由兼容性框架记录。

Toast.show() 调用的次数启用速率限制,以防止在有限的时间内让用户过多地接收消息框。如果尝试显示的消息框数超出特定时间范围内允许的数量,会导致消息框被舍弃。

STREAM_INT_DIFFERS_FROM_NEXT_INT

变更 ID:308103782
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,Random.ints() 方法现在返回的数字序列与 Random.nextInt() 方法不同。这源于 https://bugs.openjdk.org/browse/JDK-8301574 中的更改。

如需详细了解此变更,请参阅 Android 15 行为变更页面中关于 OpenJDK 17 变更的部分。

USE_EXPERIMENTAL_COMPONENT_ALIAS

变更 ID:196254758
默认状态:对所有应用都处于停用状态。

启用后,系统将允许“android”软件包使用组件别名。

USE_NEW_ISO_LOCALE_CODES

变更 ID:291868760
默认状态:对以 Android 15 或更高版本为目标平台的应用处于启用状态。

启用后,希伯来语、意第绪语和印度尼西亚语的语言代码不再转换为过时的形式(希伯来语:iw,意第绪语:ji,印度尼西亚语:in)。

如需详细了解此变更,请参阅 Android 15 行为变更页面中关于 OpenJDK 17 变更的部分。