关注智能手机领域的读者,或许都有洞察到这样一个变化趋势。
【资料图】
从某个时间点开始,安卓系统的应用适配出现了翻天覆地的变化,诸如《暗影之枪》《涂鸦跳跃》等一系列安卓经典游戏,都先后出现了无法安装/正常运行的情况。
与此同时,各家安卓厂商的应用商店里面,开始明确针对应用标注其是否为「64位版本」。不仅如此,每次我从第三方渠道给手机安装应用,只要系统检测到它是32位App,就会在界面弹出“此安装包为32位,可能造成发热、卡顿,不建议安装”的风险提示。
近日,小米更是发布了小米应用商店上架应用完全适配64位的通知,官方称自2023年5月8日起,小米应用商店将不再允许仅32位包上架或更新;2023年7月1日起,小米应用商店将逐步清理在架未适配64位的App。届时仍未适配的应用将无法上架、单独更新,请各位开发者在期限内尽快完成适配。
在过去数年时间里,尽管谷歌方面三申五令,但是国内安卓市场始终维持在一个以32位应用为主,最多也就是同时支持32位和64位应用的阶段。如今,随着硬件厂商的不断施压,我们正在不断走向只有64位应用的时代。或许,在这个百废待兴的2022年,32位安卓应用真的时日无多了。
杀鸡焉用牛刀
奇怪了,为何小米突然特别强调「64位应用」的重要性?你可能会感到疑惑。
归根结底,还是因为这一代硬件存在着一些特殊情况。众所周知,目前无论是高通的骁龙8 Gen 2、还是联发科的天玑9200,它们都采用了ARM最新一代Cortex-X3超大核,搭配上Cortex-A710/Cortex-A715/Cortex-A720中核以及Cortex-A510小核的CPU架构方案。
(图源:高通)
这些CPU架构的共性,在于全部核心都采用了ARM V9指令集。该指令集在兼容ARM V9的基础上,提升整体的处理器性能,同时提升安全性、增强矢量计算、机器学习及数字信号处理。
问题在于,ARM V9和上一代V8一样,两者都是纯64位指令集,而Cortex-X3大核、Cortex-A715/Cortex-A720中核和第一代Cortex-A510小核均只支持(向下兼容V8)64位,只有Cortex-A710和第二代A510能够兼容32位的V7指令集。
换言之,在今年发布的两款旗舰处理器中,天玑9200完全不支持32位应用,而骁龙8 Gen 2在运行32位应用时,也只能用到其中的两个中核和三个小核,无法使用超大核的极致性能,这样一来运行速度和效率就会大打折扣,严重一点可能还会出现增加功耗、应用闪退等问题。
(图源:ARM)
不过骁龙8 Gen 2的32位应用支持,本质上只是对国内市场的妥协。
早在2001年,ARM便明确表示了升级64位的决心,并指出2023年ARM所有的大小核架构都将采用64位指令集。
受此影响,目前联发科已经全线转向64位指令集,除了旗舰产品天玑9200以外,中端产品天玑7200同样砍掉了32位应用支持。
至于高通这边,有消息称骁龙8 Gen3将会是一颗纯64位处理器,放弃了对32位的原生支持。从某种角度来看,这也算是硬件厂商们在「倒逼」应用软件开发商去加速应用转向64位生态的一种表现。
从32位到64位
事实上,在谷歌的眼里,32位应用是个早应该被淘汰的「残次品」。
要知道高通在2013年发布的骁龙410,就已经是一款64位的处理器;而谷歌在2014年发布的Android 5.0,也已经是一款64位的安卓系统。
这代表安卓手机从很早开始,无论是在硬件层面还是系统层面都已经是64位,运行起64位应用完全没问题。
不过虽然开始得快,但是谷歌松散的态度,让64位生态到来的时间大大延后了。
以苹果为例,苹果对旗下应用生态体系的掌控手段可谓是远近闻名。2015年2月,苹果宣布所有iOS应用程序都必须支持64位,到了2017 年,苹果正式宣布iOS 11将不再支持32位应用程序,自此成功实现了64位的过渡。
作为对比,尽管谷歌早在2013便支持64位应用,但一直以来却并未得到开发人员的重视,即便是在2019年强制Google Play上架64位应用后,部分知名公司的64位应用依然存在着bug频出的现象。
国际环境如此,国内安卓生态环境自然更加鱼龙混杂。
事实上,直到2021年,高通8 Gen 1和联发科9000处理器出来之前,安卓这边始终缺乏一套行之有效的方式来从「根本上」解决这个问题。
值得庆幸的是,全新处理器底层架构的出现,对既有的应用生态造成了明显冲击。随着越来越多基于Cortex-A715、Cortex-A510架构的中端,甚至是入门处理器登场,更多的主流机型都会出现运行32位应用比运行64位应用更慢、更耗电、发热量更大的现象。
正因如此,除了小米已经开始通过各种各样的渠道,督促用户尽可能使用64位应用之外。2021年4月,包括小米应用商店、OPPO应用商店、vivo应用商店、腾讯应用宝和百度手机助手在内的国内几大主流安卓应用商店,更是联合宣布了推进64位架构升级的计划。
直到这时,32位应用才似乎迎来了业界的联合“强制性”手段。虽然在手段的背后,多少有些硬件倒逼软件更新的意味,但是这样一套强硬措施下来,确实能够驱使着安卓应用开发者必须全面跟上时代,再也不能再靠着老旧的32位版本摸鱼养老,这绝对是个好消息。
未来属于64位
既然联合倡议已经公布,那么各家厂商执行得怎么样?
想要弄清楚这个问题,我们需要借助一个名为《LibChecker》的应用来查询手机里面的64位应用数量。
(图源:知乎)
举个例子,借助第三方程序LibChecker来查询机内应用,可以确定我使用的小米手机目前机内应用数量为312个,其中大约有85%的应用为64位,仅有15%的应用为32位。
具体分析的话,目前国内热门应用已经全面升级64位应用,小米预装应用也几乎全面升级成64位应用,但是依然有些冷门应用、经典游戏和小米电视助手还停留在32位的阶段。
冷门应用和经典游戏,几乎可以确定是等不到更新的,我们只能希望小米官方能够尽快完成自家应用的全面适配。
当然,并非每个应用的64位版本都更好用。据知乎网友反映,部分厂商为了赶着上架,提供的64位应用存在不少BUG,例如缺少特定功能,或是无法使用简洁模式和夜间模式等均有可能发生。
在我看来,强制不支持32位可能在短时间内会对部分应用和用户体验造成影响,但从长期来看,这绝对是一件好事。
站在厂商的角度来说,让32位应用强行运行在64位处理器上,即便核心支持对应的陈旧指令集,处理器的性能依然可能无法得到完全发挥,反而会造成前面说的卡顿、增加功耗等问题,可能会对产品的口碑造成不可逆的负面影响。
站在用户的角度来说,拥抱64位应用生态,可以让单线程处理超过4GB的运行内存,保证在处理视频、游戏、解码等操作下,更充分地调动移动设备的性能,让机内硬件得到充分发挥。同时去除32位指令集,也可以让核心更加精简,减少不必要的效能损耗。
换言之,从基于新一代架构的新款旗舰机型,到基于数年前架构的老款中端机型,新版安卓应用理论上都能带来更高的执行效率。
正因如此,我可以大胆断定:安卓生态的未来,必将属于64位应用,属于32位应用的倒计时,已经开始嘀嗒作响了。