今年8月起Google Play应用程序必需提供64位版本

为了加速Android应用程序升级至64位,Google发布升级时间表,从2019年8月1日开始,Google Play上所有新的应用程序与更新都需要提供64位版本,在2021年,Google Play将不再为64位设备提供非64位应用程序。

Google从Android 5.0 Lollipop就开始支持64位CPU,在2017年就曾对外发布应用程序原生程序代码需要提供64位版本的消息,而现在Google给出明确的时间表,最快在2021年将全面在64位设备上禁用非64位应用程序。 Google表示,对大多数开发人员来说,应用程序移植到64位上很主动,而且由于许多应用程序使用Java或Kotlin非原生程序代码撰写,这些应用程序则不需要为此进行更改。

有三类应用程序需要注意,第一是使用C或C++撰写的应用程序,第二种是使用第三方原生函数库开发的应用程序,第三种则是使用原生函数库的第三方应用程序构建器,所构建的应用程序。 Google提到,最简单检查64位函数库的方法,就是审查APK文件结构。

在构建时,APK会与应用程序需要用到的原生函数库打包在一起,而原生函数库会基于ABI被存储在不同的文件夹。开发者要检查APK或是App Bundle是否存在原生程序代码,可以使用APK Analyzer检查.so文件,确定这些文件是由自己的程序代码构建产生,还是由使用的SDK或函数库输入,如果APK中不包含任合.so文件,则该应用程序符合64位标准。

当应用程序存在原生程序代码,则需要对其激活64位架构并且重新构建原生程序代码,开发者应该要升级所有的SDK与函数库到64位兼容版本。而为了帮助开发者,Google正与顶级函数库开发者合作,以实现64位兼容性。

而对于游戏开发者来说,目前最流行的三种游戏引擎包括2015年之后的Unreal和Cocos2d,以及2018年之后的Unity,都已经提供64位兼容性。 Google提到,他们理解移植第三方游戏引擎是一个耗时的过程,而且因为Unity一直到2017.4和2018.2版本才开始支持64位,因此Google将特别宽容使用Unity 5.6或更早版本的游戏,自动扩展时间限制至2021年8月。

Google也提醒,SDK的开发者应该尽快更新到64位,以方便应用程序开发者有时间能够使用与测试新的SDK。另外,应用程序不需要支持每一种64位架构,但是对于开发者支持的每一种原生32位架构,开发者需要有相对应的64位架构。

因此除了使用Unity 5.6或是更旧版本游戏引擎开发的游戏之外,从2018年8月1日开始,所有包含原生程序代码的新应用程序以及应用程序更新,在发布到Google Play上时,除了32位版本都需要额外提供64位版本。而从2021年8月1日开始,Google Play将不再为64位设备,提供非64位版本的应用程序,而这包括以Unity 5.6或是更旧版本游戏引擎开发的游戏。

不过,这个限制不包括那些明确针对Wear OS或Android TV开发的应用程序,而不支持Android 9 Pie或更新版本的APK或App Bundle也同样不在此限。 Google表示,对于支持32位的政策并未改变,Google Play仍然会为32位设备提供32位应用程序。