随着每个版本的发布,特定的 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();