弃用

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

废弃意味着我们已结束对这些 API 的正式支持,但它们将继续可供开发者使用。本页重点介绍此 Android 版本中废弃的一些 API。如需查看废弃的其他 API,请参阅 API 差异报告

RenderScript

从 Android 12 开始,废弃了 RenderScript API。它们将继续正常运行,但我们预计设备和组件制造商会逐渐停止提供硬件加速支持。为充分利用 GPU 加速功能,我们建议停止使用 RenderScript

Android 播放列表

废弃了 Android 播放列表。不再维护该 API,但为了兼容性而保留了当前的功能。

我们建议以 m3u 文件的形式读取和保存播放列表。

废弃了 Display 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 的示例。

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

activity 应依赖于来自 activity 上下文的 WindowMetrics 来执行任何与界面相关的工作,特别是 WindowManager.getCurrentWindowMetrics()

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

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();