2022年,安卓手机为什么要全面普及64位应用?

2021 年底,国内安卓五大应用商店,共同宣布了将会推进国内安卓生态对于 64 位应用的支持 。从这五大厂商发布的联合倡议来看,只要在 OPPO、vivo、小米、腾讯应用助手、百度手机助手上传或者更新 APP,都需要在 21 年 12 月底前上传 64 位格式,不再接受 32 位的 APK,而后者更是在 2023 年直接无法在支持 64 位系统上运行 。
而华为则通过华为开发者联盟邮件通知所有开发者,华为将会分阶段淘汰 32 位应用,并全面推行 64 位版本:
2022 年 2 月 1 日起,在华为应用市场新上架 / 升级的游戏及应用,必须包含 64 位版本,华为应用市场不再接收仅包含 32 位版本的应用;9 月 1 日起,华为应用市场将不再接收包含 32 位版本的应用 。
华为开发者邮件 图片来自网络
让手机终端厂商这样 ” 迫在眉睫 ” 的推广 64 位应用最主要的原因是来自上游供应链的压力 。比如之前 ARM 就宣布,将会从 2022 年开始,旗下芯片产品之中 CPU 的 Cortex 大核将取消对 32 位的支持,这是上游厂商在 ” 逼 ” 下游厂商全面支持 64 位应用 。
【2022年,安卓手机为什么要全面普及64位应用?】安卓的 64 位之路并不顺利
关注手机硬件的用户应该知道,其实早在 Android 5 。0 系统发布时,就已经支持 64 位应用,当时处理器为高通骁龙 410,这也是高通首款支持 64 位的处理器,时间为 2013 年,而到 2022 年才 ” 强制 ” 实现到 64 位,这与谷歌在 2019 年要求开发者在 google 商店中提交 64 位应用整整推迟了 3 年 。
虽然当时谷歌已经通过集成最新开发工具 Android Studio,来打开的 APP 直接默认为 64 位 so 文件,想以这种 ” 强制 ” 性的新规来约束开发者 。但这样做似乎并没有引起足够的重视,开发者依旧可以通过修改 Android Studio 的配置文件使得其在打包 so 文件时可以使用 32 位来 ” 绕过 “,国际环境如此,国内安卓生态环境就不一样了 。
Play 商店、应用汇更新的 APP 都不同
不仅手机厂商有自己的官方软件商店,还有像百度软件管家、酷安、腾讯手机助手等等这样的第三方市场 。如果手机中安装了非手机市场的官方版,可能还会在多个商店的版本之间 ” 反复横跳 “,就更别提 64 位适配了,能装个纯净的官方应用都不是一件容易的事情 。
总之,官方、非官方、固件版本混乱是安装软件生态的通病 。
其实到 2021 年,高通 8 Gen 1 和联发科 9000 处理器出来之前,都缺乏一套行之有效的方式来从 ” 根儿上 ” 解决这个问题 。
剩下的就只有从 ” 底层 ” 杜绝这个情况,用硬件生态来进行 ” 管控 “ 。比如高通、联发科于去年年底发布的骁龙 8 Gen 1 和天玑 9000,除了具有非常强劲的性能提升这个大众可以 ” 感知 ” 的部分:整个框架升级到了 ARM 最新一代 Cortex-X2 超大核、Cortex-A710 大核和 Cortex-A510 小核架构外,最大变化是更为底层的 ” 提升 “,即指令集就采用了 ARM V9 。
ARM V9 和上一代 V8 一样,都为纯 64 位指令集,Cortex-X2 超大核与 Cortex-A510 小核只支持(向下兼容 V8)64 位,只有 ” 中核 “Cortex-A710 大核兼容 32 位的 V7 指令集 。
换句话来讲,如果这款软件还是 32 位的,那么运行在骁龙 8 Gen 1 和天玑 9000 这类 V9 指令集的新架构处理器新机上,就只能被锁定在 A710 上运行,这样手机不管是锁屏还是打开 ” 性能模式 ” 运行,应用始终都处在 A710 这个比上超级大核性能不足,比下小核也不省电的核心上 。
64 位到底有啥提升?
最直接的优势,就是能从数字上直接看出来,即 64 位处理器性能要更强,vivo 曾经表示 ” 支持 64 位设备是安卓应用程序利用超过 4GB RAM 地址空间、在数据处理中利用更宽寄存器和更高精度,以及获取强化安全特性的唯一途径 。”
在相同频率下,64 位处理器可以处理 8 字节数据,而 32 位只能处理 4 字节数据,处理数据更快,此外在寻址空间上也有非常大差距,例如 32 位寻址空间为 2 的 32 次方,大约支持 4GB,而 64 位是指数级别增长,为 2 的 64 次方,并支持动态内存分配 。
总而言之,64 位处理器、支持 64 位应用系统以及 64 位应用共同协作,这软件上的性能 ” 三架马车 ” 并驾齐驱,才能让运行效率得到提升 。
既然 64 位应用能够带来性能提升,那为什么普及来就如此费劲?
除了前面提到的软件版本、下载渠道混乱外,一大原因是安卓对于 ” 旧设备 ” 的兼容性非常好,比如虽然谷歌通过各项措施来让开发者推出 64 位的应用,但仍然保留了对于 32 位应用的兼容,甚至在自家 Chrome 浏览器的下载页面也提供 32 位选择。
另外对于开发者而言,维护运营成本也是制约 64 位普及的 ” 绊脚石 “,例如开发者如果只开发 32 位应用,它是完全可以运行在 64 位处理器上的,只不过不能以最佳状态运行而已 。
但如果只开发 64 位应用,对于一些旧设备来讲就根本无法运行,有流失用户风险 。而 32 位和 64 位开发测试需要独立进行,对后续维护成本也是一种负担 。
此外还有重要一点,开发者开发安卓类应用并不会单纯使用纯粹的 Java 层开发,而是利用 Android NDK 来让 Java 与 C++ 结合,而在 C++ 中基本都是团队运作,这对于小团队开发者而言,维护和后续安全性都是问题 。
2022 年了,安卓的 64 位设备和 APP 发展的怎么样?
既然联合倡议已经公布,安卓手机厂商执行的怎么样?
根据友盟 + U-APM 的数据显示,截止到 2021 年 12 月,市面上 64 位和 32 位设备所占比例为 65% 和 35%,而根据友盟 + U-APM 的移动应用性能监控平台显示,32 位设备的应用崩溃现象是 64 位设备的 4 。8 倍,不论是设备所占比还是稳定性,64 位应用都是趋势 。
而就目前手机终端设备内置的官方应用商店也好,第三方应用市场也罢,华为、OPPO 应用商店都不会直接标识出升级后的应用是否为 64 位,只有小米在应用商店会清晰地标识出哪款软件在升级时为 64 位 。
左边为 vivo 应用商店 右侧为华为应用商店 都没有标注 64 位 APP
例如我用的华为手机就需要借助第三方程序 LibChecker 来查询机内应用,目前机内应用数量为 312 个,大约有 66% 的应用为 64 位,29% 的应用为 32 位 。
LibChecker 查询 64 位软件基本上都是 google 系和国际 APP 32 位则为国产软件居多 手机为 Mate 40 Pro EMUI 11 版本
但安卓应用升级到 64 位后,也并不意味着会比 32 位好用,据知乎网友嗜金水狙反应,在 Play 商店中的 QQ 虽然是 64 位版,但有严重 bug 无法使用,也没有夜间模式,没有简洁模式 。
图片来自知乎网友嗜金水狙
而 Play 商店中的 QQ 音乐老版本为 64 位,新版本又更新回 32 位 。
左侧小米 12 Pro 百度地图为 64 位 右侧为 32 位 打开速度没有明显变化
安卓的开放软件生态系统,直接导致了软件部分的碎片化,想统一并非易事 。
此外,从现在安卓软件来看,目前的安装包体积越来越大,这就直接导致安装时需要消耗的内存、运行时占用的系统资源以及对于系统的性能要求也越来越高 。采用 64 位系统可以让单线程处理超过 4GB 运行内存,这对于处理一些超大型游戏、高码率高规格的视频文件来讲,可以更充分的调动手机内硬件,让机内硬件得到充分发挥 。
这就可以解释,为什么智能手机运行内存越来越高,动辄高达 12、16GB,处理器频率也越来越高 。这一切都是保证 64 位软件可以流畅运行,但这也带来一些负面因素,比如功耗问题以及超大核处理大型软件带来的发热等等 。
总之,2022 年或许会成为安卓大规模普及 64 位应用的 ” 元年 “,硬件倒逼软件升级将是常态,不过归根到底,还是需要行之有效又不一刀切的举措,才能让安卓生态良性健康发展 。

    推荐阅读