每年,在Google I / O上,Google都会着重介绍下一代Android版本中最激动人心的变化。虽然大多数用户通过会影响其体验的外观变化来判断Android版本,但每次Android更新也都会对API和平台行为进行大量更改。这些更改对于应用程序开发人员注意和准备应用程序非常重要,因为它们可以从根本上改变最终用户使用其应用程序的方式。在Android的下一版本Android 11中,Google将通过开发人员选项中的新“应用程序兼容性”设置使开发人员更轻松地测试和准备其应用程序以应对即将发生的变化。
每次Google发布新的Android版本时,有兴趣积极维护其应用程序的应用程序开发人员都需要阅读新的更改以及这些更改随附的文档。然后,他们可以根据需要决定更新其应用程序以添加这些新的API功能,或者将对现有API的使用迁移到较新的API,该路径可能是可选的也可能不是可选的。应用程序开发人员不必立即更新其应用程序的目标API,但最终必须这样做才能满足Google Play商店不断变化的目标API要求。此后,开发人员还需要在新的Android版本上实际测试他们的应用程序,并且可以在仿真设备,云托管设备或本地设备上进行测试。测试是开发例程的一部分,但是当涉及重大更改时,测试变得更加重要。
此外,当Google要引入重大的平台行为更改时,他们不会立即在新的Android版本中实施更改。这是为了防止用户的大量应用破坏和丢失功能,并且还使开发人员有更多时间更新其应用。例如,在Android 7 Nougat中,Google决定限制一些隐式广播,以节省电池寿命。借助Android 8 Oreo,Google 完全禁止应用注册隐式广播接收器。但是在发布Android 8 Oreo之前,Google希望开发人员为以下情况做准备:他们的应用将不再能够注册隐式广播接收器。为此,开发人员可以在Android 7 Nougat中使用ADB命令来模拟隐式广播不可用的情况:
上面的ADB命令是Google如何允许应用程序开发人员测试其应用程序在Android平台行为更改下的行为的示例。
最近的另一个例子是,在Android Q Beta 2中,谷歌要求开发人员通过运行以下ADB命令在其应用程序上测试范围存储:
作为应用程序开发人员,可以假定您对ADB命令感到满意,并且对使用它们来测试这些平台更改并不特别反感。但是总有改进的余地,并且Google通过引入一个简单的UI来控制这些更改,使此测试过程变得更加容易。
使用新的PlatformCompat项目,开发人员不再需要为每个新的平台行为更改运行ADB命令。对于Android 11,Android将在“开发人员选项”中提供一个新的子菜单,以在每个应用程序基础上快速切换新的平台行为更改,而无需发送任何ADB Shell命令。每个目标API级别都有不同的部分-例如,> 29级的API级别将具有其自己的行为更改集,可以切换,而> 30级的API级别将具有其自己的更改集。
在上面的屏幕快照中,展示了“应用程序兼容性”部分(来自在模拟器上运行的源代码构建的AOSP),“默认启用的更改”部分包括默认情况下将在所有应用程序上启用的Android 11 API更改,无论其目标SDK是什么。“为targetSDKversion> 29启用”部分是Android 11 API更改,仅针对以Android 11 / API级别30为目标的应用程序启用了这些更改。
尽管此特定更改不会直接激发最终用户的兴趣,但确实使应用程序开发人员的工作更加轻松,这始终是一件好事。