14

Nathan_Li_Arm · 2020年08月11日

为什么国内的开发者现在必须着眼于 64 位技术?

移动行业的未来将基于 64 位技术。虽然许多处理器同时支持 32 位和 64 位,但随着时间推移,未来的处理器将只支持 64 位。这种转变意味着国内的开发者现在就必须开始着手构建 64 位版本的最新应用程序。如果开发者停滞不前,就无法获得更强大的性能、安全性、成本和节约时间等诸多优势。

现在所设计或正在出货的手机同时支持 32 位和 64 位,这一个状况已经持续多年。目前正在或计划在中国国内市场上销售的手机中,几乎没有只支持 32 位的智能手机(不足 1%)。因此,在国内,几乎不存在 64 位应用程序无法在当前和未来的智能手机上运行的风险。

64 位处理器
在探讨 64 位技术的优势之前,我们应该先了解 64 位处理器的功能,以及为什么它越来越被广泛地应用在移动设备中,这一点非常重要。与 32 位处理器相比,64 位 CPU 能够在内存中处理更多数据,同时在移动设备上实现更快速、响应更灵敏的体验。64 位技术还能支持更高的计算能力,以满足各种新型工作负载的需求,例如更先进的人工智能 (AI) 和机器学习 (ML)、XR(增强现实和虚拟现实)、高保真移动游戏。

32 位的节能功能和性能改进空间越来越小,因此坚持采用 32 位架构将会阻碍未来创新。相较之下,64 位架构能够支持未来的持续创新,特别是在节能移动应用中。

性能
将应用程序迁移到 64 位,可以带来显著性能提升(对于某些工作负载,提升幅度高达 20%),能直接改善用户体验。例如,通过与 Unity 开展合作,Arm在 Unity 2018 游戏引擎上进行了一系列内容分析,在 64 位应用中,整体帧率提升幅度在 9.5% 至 16.7% 之间。除此之外,图像压缩和解压也得到改善,分析表明,压缩性能提升 91%,解压性能提升 79%。最后,与 32 位技术相比,64 位技术可将平均解码时间缩短 14%。

安全性
64 位技术具备诸多安全优势。许多新安全功能都是通过 64 位寻址实现的,它们可以检测内存安全问题,防御代码流攻击。它还实现了 Arm 内核的底层安全功能,包括内存标记扩展 (MTE)、指针认证、分支目标标识符 (BTI)。这些功能加大了利用漏洞进行攻击的难度,首先,它们提高了软件防御攻击的灵活性;其次,它们可在源代码中修复软件漏洞,以免造成危害。64 位技术不仅安全性更高,而且通过简化的可信执行环境 (TEE) 结构,利用 MTE 在早期开发阶段检测出所有错误,帮助节约成本和时间。在像是仅采用MTE堆块标记特性进行开发的情况下,甚至无需重新编译应用。而且,该应用程序将默认受益于安卓操作系统所提供的安全保护。最后,64 位技术提供的可认证性也有助于缩短产品上市时间。64 位的这些安全优势实现的成本和时间节约为我们带来了下一个优势。

降低成本和加快上市
64 位处理器架构比 32 位更加精简,这能大幅提速所有微架构的改进。同时,采用 64 位技术得以降低所有开发阶段的验证成本。如果开发者继续停留在 32 位技术的使用,那么很快的,他们需要面临解决成本和时间的问题,而负担支持 32 位应用程序所需的成本,将会延缓开发速度。正如上文所述,32 位架构将会阻碍未来创新。实际上,仅支持 64 位的移动设备还有其他好处,因为如果市场仍继续存在支持 32 位的设备,那么开发者就需要投入更多工作来支持额外的 ABI。

64位技术在国内的发展趋势
Arm 发布了有关中国 64 位计算迁移趋势的白皮书,阐述开发者需要采取哪些行动,以及为什么这一转变对开发者生态系统具有重大意义。在两年时间内(2022年 8 月),设备和处理器会朝着仅使用 64 位技术的设计转变,促使国内的开发者必须提供 64 位版本的应用程序。因此,对于中国的安卓生态系统而言,64 位应用开发势在必行,而且必须立即行动,否则会错失良机。

与此同时,如果中国开发者想要进军海外市场,他们需要将他们的应用程序移植到64位。这是因为从2019年8月1日起,谷歌 Play Store上的所有新应用和当前应用的更新都需要提供支持 64 位的版本,否则它们将不被Play Store商店接受。

对于开发者而言,向 64 位技术迁移相对于想象中可能更为简单。64 位功能已经推出多年,即便缺少必需的新 64 位库,创建这些库也应该并不复杂。事实上,大多数开源库是类型安全的,并且已通过针对这些系统的测试。使用 Arm NEON指令集编写的大多数代码无需更改即可编译成 64 位。但是,如果应用程序使用本地库,则可能需要更多开发工作,具体取决于最初的代码质量。即便是那些编写质量很高的应用程序,重新编译也需要重新编写部分代码。开发者现在就应当仔细检查代码,以避免今后开始加速向 64 位迁移时出现更大的问题。

游戏开发者引领迁移潮流
游戏开发者是这个生态系统的重要组成部分,将在国内 64 位迁移进程中发挥引领作用。在中国生态系统中,他们通常是率先推动创新并积极拥抱新技术的群体。事实上,64 位技术为游戏开发者带来的益处最多,他们的应用加载速度得以提高,画面更加流畅,从而打造更出色的游戏体验。此外,随着移动游戏的发展,未来的应用程序将加重 32 位处理器架构的负荷,甚至逼近其极限水平,这意味着基于 32 位架构的现有应用程序很难继续改进。

对于所有开发者而言,向 64 位迁移应该相对简单。UnrealCocos、和Unity 这三个最常用的游戏引擎目前都支持 64 位。Arm已经确保这些供应商花费了足够的时间迁移他们的引擎,以便游戏工作室开发、测试和发布游戏。同时,国内大多数主流应用商店和生态系统影响者都非常支持向 64 位迁移,实现应用程序现代化。Google在2019年2月21日发表的一篇安卓开发者博客中指出,中国的主要应用商店,包括华为、OPPO、Vivo、小米、百度、阿里巴巴和腾讯,将从 2019 年开始要求应用程序 API 级别至少达到 26 (Android 8.0)。Unity中国也非常支持向 64 位生态迁移。

Arm 在迁移中扮演的角色
Arm 正在与合作伙伴展开密切合作,了解哪些生态系统、技术或商业方面的问题会妨碍应用程序向 64 位迁移。我们向中国开发者提出的建议非常简单 – 竭尽全力,积极准备。现在就开始构建 64 位版本的应用程序,在开发主线、优化和测试平台中改用 64 位,对本地和 Java 应用程序进行仔细检查,尽快升级所有 32 位库或引擎。

迁移到 64 位是“双赢”
64 位迁移将会开创“双赢”局面。它将为整个中国生态系统带来性能、安全性和未来创新等诸多益处;同时,通过发布 64 位版本的应用程序将为开发者赢得广泛的用户群。在可预见的未来,当仅支持 64 位的设备进入市场时,这些已经抢先采用 64 位的应用程序就能满足用户的体验。

最终,64 位技术必将主导未来。如果中国生态系统还不向 64 位迈进,他们将在性能和安全性方面落后于人。从长远来看,还会耗费更多的资金和时间。正因为如此,我们呼吁中国国内的所有开发者考虑立即将应用程序迁移至 64 位。向 64 位应用程序迁移并不复杂,Arm 在 极术社区 上提供了相关资源,可为中国开发者提供迁移帮助。

点击下载 Arm64位白皮书

推荐阅读
关注数
4177
内容数
19
Arm全面计算赋能数字式沉浸,欢迎关注
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息