2020年10月,Arm宣布,从2022IP开始,所有未来的Cortex-A“大核心”产品都将投入使用。仅支持64位代码。中国两家领先的移动终端制造商和领先的游戏引擎Unity(中国)Oppo和小米已表示支持Arm宣布64位迁移及其努力。 Arm认为,迁移到64位是中国开发人员应该采取的积极步骤。如果他们想创建满足消费者需求的新的,更复杂,安全,可靠和身临其境的体验,则他们的应用程序必须迁移到64位。此外,预计到2023年将有仅支持64位的移动设备,届时其应用程序将需要与这些设备兼容。 64位不仅带来了很多好处(如Jishu社区的先前博客中所述),例如,优化了性能,提高了安全性,提高了效率并降低了成本,而且将应用程序迁移到64位的过程非常简单。挑战太多了。当然,以下内容还列出了中国开发人员在迁移到64位时需要考虑的一些方面和相应的措施。请注意,以下步骤基于开发人员使用Google Android Studio进行应用程序开发的假设。查看应用程序代码用Java编程语言或Kotlin编写的所有Android应用程序(包括所有库或SDK)将自动在64位移动设备上运行。对于那些向专有/第三方本机库发出Java本机接口(JNI)调用的Java应用程序(用于用户行为分析,加密,云服务等),这些库也需要迁移到64位以消除所有32位依赖项。此外,大多数使用ArmNEON指令编写的代码都可以不经修改就编译为64位。但是,如果应用程序使用本机库,则它必须是64位版本,这可能需要其他开发工作。检查本机代码如果开发人员不确定自己的应用程序是否使用本机代码,则可以检查以下三个项目:•该应用程序是否使用任何C ++ / C ++(本机)代码•该应用程序是否与任何第三方本机库关联•该应用程序是否由使用本地库的第三方应用程序生成器构建。使用APK检查本地库根据应用程序二进制接口(ABI),本地库存储在不同的文件夹中。在正常情况下,为32位和64位体系结构构建的APK或数据包将具有两个ABI的文件夹,并且每个文件夹都包含一组相应的本地库。如果不支持64位,则开发人员可能只会看到32位ABI文件夹,而看不到64位文件夹。使用工具检查本地库开发人员还可以使用其他工具在应用程序中检查本地库。 APKAnalyzer是AndroidStudio中提供的一个Android工具,可以帮助开发人员评估内置APK的不同方面。开发人员还可以通过解压缩APK来检查本地库,因为这些文件的结构类似于压缩文件,因此也可以采用类似的提取方法。从32位移植到64位如果应用程序代码已在iOS上顺利运行,则无需执行任何其他工作。但是,如果这是第一次为64位系统构建应用程序代码,则需要解决的主要问题是指针不再适用于int之类的32位整数。因此,开发人员需要更新以int,unsigned或uint32_t类型存储指针的代码。减少64位带来的大小增加向应用程序添加对64位体系结构的支持可能会导致APK大小增加。 AndroidAppBundle函数可以最大程度地减少在同一APK中同时包含32位和64位代码所带来的规模影响。在大多数情况下,切换应用程序以使用AndroidAppBundles实际上有助于提高APK的大小,甚至小于32位应用程序的大小。游戏开发者正如我们在Jiju Community上一个博客中提到的那样,三个最常用的游戏引擎Unreal,Cocos2d-x和Unity当前支持64位。实际上,这些领先的游戏引擎都支持64位,这对于游戏开发者而言是个好消息,因为迁移第三方游戏引擎的应用程序是一个复杂的过程,需要很长的交付时间。准备好64位版本的测试应用程序后,它应提供与32位版本相同的质量和功能集。但是,这只能通过应用程序测试来保证。该测试需要在支持64位的设备上完成。幸运的是,中国国内市场上的大多数智能手机现在都兼容64位。一旦准备好发布该应用程序,开发人员就可以照常发布它。与现有流程一样,我们建议您继续遵循最佳实践来进行应用程序部署。 Android建议使用cl