抛弃32位,对安卓和苹果意味着什么?

标签:安卓苹果
分享到:

Arm宣布,从2023年开始,它的所有新的智能手机的 CPU内核将只有64位,而不会有32位兼容模式。在2013年,苹果在 iPhone 5 s上使用了64位A7处理器,并开始采用64位智能手机处理器。很快,64位 CPU也出现在了安卓手机上,尽管它们都同时运行32位和64位代码。所以,我们从仅支持32位的版本,到同时支持32位和64位的版本,而现在我们要放弃32位版本,进入64位时代。对于安卓和苹果来说,这意味着什么?

从32位到64位的转变 

智能手机中,每个像素、通过互联网发送的每一个数据、存储在闪存中的每个文件、播放的每个声音以及屏幕上的每一次触摸都由数字表示和处理。依靠GPU等其他组件的帮助,大部分处理由CPU完成。

处理器以二进制形式存储这些数字,为它们分配的空间以位为单位。位由0和1的二进制表示,8位可以表示零到 255 之间的任何数字,16位的范围从0到65,535,而32位可以存储高达4,294,967,295(即 4GB)的数字。

Arm在其指令集架构的第8版(称为 Armv8)中引入了64位支持,并且在Armv9 中继续支持64位。这两者也可选择性地向后兼容以前的 32 位Arm 架构。这意味着原则上 Cortex-A 处理器可以运行32位代码和64位代码并在它们之间即时切换。用户不会注意到32位和64位代码之间的任何区别。事实上,三星的第一款 Armv8 SoC就是Galaxy Note 4 中使用的Exynos 5433 ,它有四个Cortex-A57内核和四个Cortex-A53内核,但仅用于 32 位模式。

多年来,事情变得更加微妙。Arm有一些基于Armv8的Cortex-A内核,其中某些只有 32 位(例如 Cortex-A32),另一些只有64位(例如Cortex-A34和Cortex-A65)。您可能没有听说过这些CPU设计,因为它们没有用于任何智能手机处理器。

从Cortex-53 到 Cortex-A75 的大多数Cortex-A处理器都支持32位和64位模式。Cortex-A76稍有改变,它支持32位模式,但仅适用于应用程序。这意味着您需要运行64位版本的安卓,但您仍然可以运行 32 位应用程序。如果您有 Snapdragon 855(或更高版本)处理器。或者基于 Kryo 4xx(或更高版本)的处理器(包括骁龙 480、骁龙 675、骁龙 720、骁龙 730、骁龙 765、骁龙 780G 等),那么处理器已经放弃了对 32 位操作系统的支持,而你没有注意到。

随着Cortex-X2和Cortex-A510对32位应用程序的支持的下降,你不得不运行64位操作系统和64位应用程序。Cortex-A710保持对32位应用程序的支持,这意味着任何无法脱离32位模式的应用程序都将被迫在A710核上运行。

到2023年,所有Cortex-A CPU都将只有 64 位

Arm就64位的转移发表了两项声明。首先,Arm谈到2022年它所有的大内核都将是 64 位的,然后几个月后Arm又谈到2023年它所有的内核都将是64位的。听起来不错,不过Cortex-A510(一个小内核)已经只有64位了,那么为什么是两个不同的截止日期呢?笔者认为,我们将在2022年看到支持 32 位的新的小内核,此后一切都将是64位。

值得注意的是,我们谈论的是Cortex-A处理器,即智能手机、平板电脑、Chromebook 等中的CPU,而不是在谈论Arm微控制器系列中的Cortex-M CPU。事实上,Armv8-M(M 代表微控制器)只有32位。

放弃32位对安卓影响不大

好消息是64位的安卓是一项成熟的技术,完全放弃32位支持不会有什么很大的不同。

第一个完全兼容64位的安卓版本是 Android 5.0 (Lollipop)。它于2014年发布,增加了对 64位Intel处理器以及64位Arm芯片的支持。自2019年8月起,所有Google Play应用都需要支持64位。为了帮助开发者支持64位,流行的游戏引擎都添加了支持:Unreal(2015 年)、Cocos2d(2015 年)和 Unity(2018 年)。从2021年8月1日起,Google Play将停止在支持64位的设备上提供没有64位版本的应用,这意味着这些设备上的Play商店将不再提供这些应用。

Google提供了不同的工具和大量文档,让应用程序开发人员为切换到64位做好准备。对于许多应用程序,实际上几乎没有什么可做的,因为那些用 Java 或 Kotlin 编写的应用程序不需要更改。但是使用游戏引擎或第三方 SDK 开发的应用程序需要确保使用最新的64位版本。 

由于搭载64位Android的设备现已上市多年,再加上Google努力确保Play商店中提供64位应用程序,因此最终只切换到64位将不会有太大的影响。

苹果更早放弃32位

自 iPhone 5S 以来,苹果一直在硬件和软件方面支持64位。早在2015年2月,Apple就宣布所有iOS应用程序都必须支持64位。之后在2017年,Cupertino宣布32位应用程序将无法在iOS 11上运行。那时,苹果就完全放弃了32位,从苹果A11(在 iPhone 8、iPhone X 中能找到)开始,所有处理器都只有64位。

macOS也有类似的故事。自10.7 Lion (2011) 以来,苹果的桌面操作系统一直是64位的。自2018年以来,所有提交到Mac App Store的新应用程序都需要支持64位,就像iOS一样,macOS放弃了对32位应用程序的支持(随着2019年macOS 10.15 Catalina的发布)。今天,macOS 11在Intel上是64位的,在Arm上也是64位,M1 处理器仅为 64 位。

未来是64位的。

所有Cortex-A处理器从2023年开始,仅支持64位。因为安卓支持64位,并且正在转向只支持64位的应用程序,转换起来也很顺利,所以您可能不会注意到有什么不同。假如你是一个苹果用户,你会发现 iOS和 macOS上的64位操作系统已经有一阵子了。在过渡期间,我没有听到任何重大问题。对 Windows和 Linux等其他 CPU架构和其他操作系统来说,32位支持会持续更长时间。由于 Linux是开源的,那么32位的支持可能会持续数十年。

 

 

继续阅读
抛弃32位,对安卓和苹果意味着什么?

Arm宣布,从2023年开始,它的所有新的智能手机的 CPU内核将只有64位,而不会有32位兼容模式。在2013年,苹果在 iPhone 5 s上使用了64位A7处理器,并开始采用64位智能手机处理器。很快,64位 CPU也出现在了安卓手机上,尽管它们都同时运行32位和64位代码。所以,我们从仅支持32位的版本,到同时支持32位和64位的版本,而现在我们要放弃32位版本,进入64位时代。