【在新硬件的“推动”下,32位安卓应用的末日到了】前段时间在评测小米 12 Pro的时候,我们注意到,这款搭载新骁龙8的旗舰机型在应用适配方面,发生了一些非常值得关注的变化。
正如大家所见,其应用商店里已经会明确标注应用是否为“64位版本”。另一方面,当我们试图在小米 12 Pro上运行32位大型应用(特别是游戏)时,系统还会弹出一个此前从未见过的提示,表示“该应用可能未经过优化”等等。
为何小米方面会在新旗舰上格外强调“64位应用”的重要性?这其实主要是源于新一代硬件的特殊情况。
众所周知,目前无论高通的新骁龙8、联发科的天玑9000,还是尚未发布的三星Eyxnos 2200,它们都使用了ARM最新一代Cortex-X2超大核、Cortex-A710大核和Cortex-A510小核的CPU架构方案。
平心而论,这一代的CPU设计改变其实非常大。主要是因为,它们不只是硬件层面上的架构进行了革新(例如A510就引入了类似AMD推土机的集群多线程设计),更为重要的是在底层的指令集上,这一代的CPU全面改用了ARM v9指令集。
这是什么概念呢?要知道虽然ARM几乎每年都会推出新的CPU架构设计,但底层指令集的更新周期却要长得多。举例而言,当前主流64位移动应用所使用的ARM v8指令集,其实已经是10年前(2012年)的产物了,而对应32位代码的ARM v7指令集,则更是要追溯到17年之前(2005年)、也就是奔腾4处理器的年代。
然而正因为全新一代CPU架构从底层上发生了巨大的变化,所以也带来了两个问题。
第一,此次Cortex-X2超大核与Cortex-A510小核都只能支持ARM v9指令集,同时向下兼容ARM v8指令集。也就是说要想充分发挥它们的性能,就需要开发者尽快针对ARM v9进行优化才行。
第二,由于ARM v9与ARM v8都是纯64位指令集,所以对于32位应用来说,最新一代的硬件里就有且只有保留了ARM v7指令集兼容性的Cortex-A710大核还能兼容。
换而言之,无论小米、还是别的厂商,也不管是高通、联发科、还是三星的新款SoC方案,只要是使用了新一代CPU架构,那么在运行32位应用的时候都会出现一些问题。