安卓App仍未普及64位?
当前的安卓生态中,32位的应用仍大量存在,这些应用不乏大家常见的装机必备,例如哔哩哔哩、百度网盘、爱奇艺等等。这种情况是否正常?从技术的角度来看,似乎很不应该。

(像哔哩哔哩这样Target API已经更新到Android 11的应用,也依然只是32位的)
从ARMv8开始,安卓阵营的CPU就已经普遍支持64位,安卓系统也在Android 5.0后,从系统层面支持64位应用。这两件事,其实都属于比较远古的了——基于ARMv8的骁龙810以及Android 5.0都出现于2014年,转眼都快十年过去了,为何安卓App仍大量停留在32位?
我们可以对比一下苹果阵营。2013年的iPhone 5S以及iOS 7开始推行64位,一年多后32位的iOS应用就已经难寻踪迹。和苹果的步伐相比,安卓阵营可谓步履维艰。

(和安卓阵营相比,苹果iOS推行64位顺利得多)
安卓推行64位为何如此艰难?这和安卓生态的实际情况是有很大关联。尽管在ARMv8后,安卓阵营的CPU增加了64位的支持,但依然保留了32位的兼容。甚至,前一代产品ARM v8.2处理器,也依然耗费额外的晶体管,来兼容32位App。同时,安卓系统也一直兼容32位App,App并没有切换到64位的迫切需求。这一切的考量,很大程度是基于对旧设备的兼容。
在安卓初推行64位的时候,市场上依然有大量运行旧CPU以及旧版安卓系统的设备存在。安卓在市场攻城略地的秘诀,在于开放和兼容,如果对32位一刀切,那么安卓阵营会无可避免迎来分裂。实际上,开放的系统都存在这样的问题,例如Windows生态为了保持向后兼容,时至今日仍对32位应用软件提供出色的兼容,这和安卓是殊途同归的。
当然,和Windows不同,安卓并不需要承担太多的生产力任务。在初次推行64位过去近十年后,安卓也的确到了全面抛弃32位包裹的时机。
安卓放弃对32位兼容可以带来什么好处?首先,CPU就可以省下用于兼容32位的晶体管,对于寸土寸金的芯片来说这显得尤为有价值;其次,App可以拥有更好的内存利用率,对于日渐膨胀的应用游戏来说这是至关重要的;再者,App还可以更有效利用CPU的寄存器,带来更高的效率。
在安卓App日渐复杂、摩尔定律日渐失效的今天,摒弃历史包裹、全面拥抱64位的时机的确已经到来。虽然目前安卓生态仍存在大量32位App,但我们也可以看到多方对普及64位的努力。例如,Google要求,从2019年8月1日起,在Google Play发布的应用必须支持64位。也因为此,国外的安卓生态对于64位的普及要比国内做得更好,这次安卓CPU平台换代,国内的安卓机耗电问题也要比国外更明显。

(Google Play商店两年多前已经禁止32bit应用上架,国内安卓生态较之滞后)
又例如,国内的安卓分发渠道也开始要求App支持64位。OPPO商店此前已经规定,2021年12月底后,新发布的应用必须支持64位;而小米商店则提供了一键将32位App置换为64位的功能,如果手机上已安装的32位App在商店中有64位版本,可以一键更新。
同时,国内的很多App在近期也都更新到了64位,例如微信、QQ、12306等等。相信在不久后的将来,国内的安卓App很快会大面积普及64位,新一代的安卓机也会发挥出应有的能效。
总结
毫无疑问,和苹果相比,安卓的64位普及进程是落后的,安卓阵营并没有苹果那样绝对的应用发行渠道垄断权,这也是安卓借开放之风腾飞所需要付出的代价。幸运的是,目前安卓阵营各方都已经意识到了普及64位的重要性,下一代安卓CPU会进一步抛弃对32位的支持吗?让我们拭目以待吧。
|