原创 Android 2025-10-15 17:31 北京
即刻阅读本文,了解 Android 16 QPR2 Beta 2 带来的几项重要更新,帮助您打造更精美的应用,为用户带来更卓越的体验。
作者 / 产品管理副总裁、Android 开发者 Matthew McCulloughAndroid 16 QPR2 最新发布的 Beta 2 版本现已达成平台稳定性!这意味着 API 接口已锁定,面向应用的行为也已最终确定,因此您可以将其整合到自己的应用中,并利用我们最新的平台创新功能。 
🛡️ **开发者验证:** Android 16 QPR2 Beta 2 引入了开发者验证机制,旨在通过要求应用由已验证的开发者注册来提高应用安装的安全性,从而防止恶意软件和欺诈行为的传播。从 2026 年 9 月起,在特定地区,此项要求将适用于在认证 Android 设备上安装的应用(ADB 安装除外)。开发者可利用新的 API 和 ADB 命令来测试验证流程,包括模拟验证失败的情况,以便为强制执行做好充分准备。建议开发者尽早报名参加抢先体验计划。
✉️ **短信 OTP 保护与应用图标自定义:** 为了防止 OTP 劫持,大多数应用的消息传递将延迟三个小时,但默认短信、助理、拨号应用等特定应用不受影响。同时,Android 16 QPR2 允许用户自定义所有应用图标和文件夹预览的形状,开发者需要确保其自适应图标能适配各种形状,以提供一致的用户体验。
⚡ **ART 垃圾回收优化与 Health Connect 增强:** Android 运行时 (ART) 在 Android 16 QPR2 中集成了一个分代并发标记-压缩 (CMC) 垃圾回收器,专注于新分配的对象,有望降低 CPU 使用率、减少卡顿并提升电池效率。Health Connect 功能得到增强,现在支持设备的传感器自动追踪步数,并更新了 ExerciseSegment 和 ExerciseSession 数据类型,允许记录和读取训练重量、组数索引和感知用力等级 (RPE)。
🚀 **次要 SDK 版本与 API 创新:** Android 16 QPR2 是首个采用次要 SDK 版本的 Android 版本,打破了年度单次更新的限制,通过新平台 API 实现更快速的创新。开发者可以通过 `SDK_INT_FULL` 和 `VERSION_CODES_FULL` 枚举安全地调用新 API,而 `Build.getMinorSdkVersion()` 方法可用于获取次要 SDK 版本号。此举旨在最大限度地减少额外应用测试的需求,同时加速平台功能的迭代。
原创 Android 2025-10-15 17:31 北京
即刻阅读本文,了解 Android 16 QPR2 Beta 2 带来的几项重要更新,帮助您打造更精美的应用,为用户带来更卓越的体验。
作者 / 产品管理副总裁、Android 开发者 Matthew McCulloughAndroid 16 QPR2 最新发布的 Beta 2 版本现已达成平台稳定性!这意味着 API 接口已锁定,面向应用的行为也已最终确定,因此您可以将其整合到自己的应用中,并利用我们最新的平台创新功能。Android 16 QPR2 Beta 2
中的新功能
测试开发者验证
adb shell pm set-developer-verification-result🔗 允许用户启动应用软件包安装https://support.google.com/googleplay/android-developer/answer/12085295🔗 APIhttps://developer.android.com/reference/android/content/pm/PackageInstaller#EXTRA_DEVELOPER_VERIFICATION_FAILURE_REASON通过使用此命令 (详细信息请参阅 adb shell pm help),您现在可以模拟验证失败的情况。这能帮助您了解验证成功和失败的端到端用户体验,以便您在强制执行验证之前做好充分的准备。我们鼓励所有在已获认证的 Android 设备上分发应用的开发者报名参加抢先体验,以便做好准备并及时了解最新动态。🔗 报名参加抢先体验https://developer.android.com/developer-verification#sign-up-for-early-access短信 OTP 保护
自定义应用图标形状
更高效的垃圾回收
Health Connect 中的
原生步数追踪和扩展运动数据
// Check if the expanded exercise features are availableval newFieldsAvailable = healthConnectClient.features.getFeatureStatus(HealthConnectFeatures.FEATURE_EXPANDED_EXERCISE_RECORD) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLEval segment = ExerciseSegment(//...// Conditionally add the new data fieldsweight = if (newFieldsAvailable) Mass.fromKilograms(50.0) else null,setIndex = if (newFieldsAvailable) 1 else null,rateOfPerceivedExertion = if (newFieldsAvailable) 7.0f else null)
次要 SDK 版本
🔗 SDK_INT_FULLhttps://developer.android.com/reference/android/os/Build.VERSION#SDK_INT_FULL🔗 VERSION_CODES_FULLhttps://developer.android.com/reference/android/os/Build.VERSION_CODES_FULL您还可使用 Build.getMinorSdkVersion() 方法获取次要 SDK 版本号。if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) {// Call new APIs from the Android 16 QPR2 release}
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)🔗 Build.getMinorSdkVersion()https://developer.android.com/reference/android/os/Build#getMinorSdkVersion%28int%29对于非次要版本中声明的 API,原始 VERSION_CODES 枚举仍可用于与 SDK_INT 枚举进行比对。🔗 VERSION_CODEShttps://developer.android.com/reference/android/os/Build.VERSION_CODES🔗 SDK_INThttps://developer.android.com/reference/android/os/Build.VERSION#SDK_INT由于次要版本不包含重大行为变更,因此不能用于 uses-sdk 清单属性。🔗 uses-sdk 清单属性https://developer.android.com/guide/topics/manifest/uses-sdk-elementif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) {// Call new APIs from the Android 16 release}
Android 16 QPR2 Beta 版
入门指南
AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。
鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑