弃用功能

随着每个版本的发布,某些 Android API 可能会变得过时或需要重构以提供更好的开发者体验或支持新的平台功能。 在这些情况下,Android 将正式弃用过时的 API,并引导开发者改用新的 API。

弃用意味着我们已停止对 API 的正式支持,但它们将继续可供开发者使用。 此页面重点介绍了此 Android 版本中的一些弃用功能。 要查看其他弃用功能,请参阅API 差异报告

RenderScript

从 Android 12 开始,RenderScript API 已弃用。它们将继续发挥作用,但我们预计设备和组件制造商将逐步停止提供硬件加速支持。 要充分利用 GPU 加速,我们建议迁移离 RenderScript

Android 播放列表

Android 播放列表 已弃用。API 暂不维护,但为了兼容性,保留了当前功能。

我们建议将播放列表读取并保存为m3u 文件。

显示 API 弃用功能

Android 设备正在以多种不同的外形规格提供,例如大屏幕、平板电脑和折叠屏。 为了适当地为每个设备呈现内容,您的应用需要确定屏幕或显示屏大小。 随着时间的推移,Android 提供了不同的 API 来检索此信息。 在 Android 11 中,我们引入了WindowMetrics API 并弃用了这些方法

在 Android 12 中,我们继续建议使用WindowMetrics,并弃用这些方法

应用应使用WindowMetrics API 查询其窗口的边界,或Configuration.densityDpi 查询当前密度。

请注意,Jetpack WindowManager 库包含一个WindowMetrics 类,该类支持 Android 4.0.1(API 级别 14)及更高版本。

示例

以下是一些如何使用WindowMetrics 的示例。

首先,确保您的应用可以使其活动完全可调整大小

活动应依赖于活动上下文中的WindowMetrics 进行任何与 UI 相关的工作,特别是WindowManager.getCurrentWindowMetrics()

如果您的应用创建了MediaProjection,则必须正确调整边界大小,因为投影会捕获显示内容。 如果应用是完全可调整大小的,则活动上下文将返回正确的边界。

Kotlin

val projectionMetrics = activityContext
        .getSystemService(WindowManager::class.java).maximumWindowMetrics

Java

WindowMetrics projectionMetrics = activityContext
        .getSystemService(WindowManager.class).getMaximumWindowMetrics();

如果应用不是完全可调整大小的,则必须从WindowContext 实例查询边界,并使用WindowManager.getMaximumWindowMetrics()检索应用可用的最大显示区域的 WindowMetrics

Kotlin

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

Java

Context windowContext = mContext.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null;
WindowMetrics projectionMetrics = windowContext.getWindowManager()
      .getMaximumWindowMetrics();