5

32位应用已经凉了!

 2 years ago
source link: https://www.51cto.com/article/717339.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

32位应用已经凉了!

原创 精选
作者:路遥 2022-08-29 10:29:56
32位应用+64位处理器,非常影响运行效率,只有64位处理器+64位应用结合在一起,才能让运行效率大幅度提升。

作者 | 路遥

审校 | 云昭

近日,Google正式发布了Android 13,并率先向Pixel设备推送了系统更新。

然而没过多久,就有爆料人士在Android 13的代码仓库中发现,Google提交了“Move tangor to 64-bit only”(翻译为“仅将tangor移动到64位”)。其中“tangor”为Pixel平板的代号,根据这个信息,似乎意味着Pixel平板或将仅支持64位的Android应用。

图片

与此同时,爆料者还发现了另一个提交的信息,其中表明在安装了Android U(Android 14) 或更高版本上的设备上无法运行32位应用的字样。

也就是说,从明年开始,Android将放弃支持32位应用,支持64位可能会成为一个常规功能。

此话题在51CTO技术社群里也引发了热烈讨论。群友【王行】:32位被抛弃已经是时代发展的必然,实际上现行的ARM v8 64位指令集已经是10年前的产物,就智能手机来说只要是在差不多2014年后上市的主流机型,所使用的CPU架构、指令集其实都已经是针对64位环境设计的了。作为工程师可以趁着更新32位的这个“机会”走鸿蒙的一条路。

群友【周佳怡】:虽然放弃了32位,但是对于64位,谷歌提供了不同的工具和大量文档,让应用程序开发人员为切换到64位做好准备。对于许多应用程序,实际上几乎没有什么可做的,因为那些用Java或Kotlin编写的应用程序不需要更改。但是使用游戏引擎或第三方SDK开发的应用程序需要确保使用最新的64位版本。性能上确实挺提高了很多,开发者需要了解数据类型和数据转换都发生了变化,以及结构的对齐也发生了变化。

群友【荣先钊】:32位采用固有架构,限制了系统的发展,部分应用可能要重新做适配开发吧

群友【向阳而生】:向64位的迁移有助于减少RAM占用、减少存储空间占用以及提高底层安全水平。另外,ARM全新的Cortex A65架构已经是纯64位CPU,删除了32位指令集,不管对用户还是行业,都算是好事。

那么32位和64位到底有什么不同?强制升级到底有没有必要?

1.64位的优势 

我们平常使用手机和电脑,所操作的内容在处理器上通常都是以数字表示,而处理器会以二进制的形式来储存这些数字,为它们分配的空间会以位为单位。

而位则是指一次性可处理的数据量是多少,1字节等于8位,那么算下来,32位就是一次性可以处理处理4个字节的数据量,而64位就是一次性处理8个字节的数据量,理论上处理效率快了一倍。

不好理解,换一种说法。32位好比是3车道,而64位就好比是升级到了6车道,通行效率提升了一倍,尤其是高峰使用时效率更高,资源分配更合理,这个提升可是非常明显。

与此同时,在寻址空间上也有比较明显的差距,32位处理器可以访问2的32次方个内存地址,最高支持4GB的运行内存,而64位处理器可以访问2的64次方个内存地址,理论上可以支持大约16TB的运行内存。但这只是理论上,由于不同架构的CPU设计不同,所以能力也有差别。随着硬件、软件的高速发展,4GB运存早已无法满足某些软件的使用需求,打个比方,现在手机的运行内存基本都是6GB、8GB甚至是12GB,如果配备了32位的处理器,那么就会有部分内存被浪费,甚至还会影响到运行效能,好马配好鞍,朝着64位升级就是刚需。

以骁龙 8 Gen 1和天玑9000为例,这两枚芯片都采用了ARMv9架构方案,带来了三款CPU:Cortex-X2超大核、Cortex-A710大核和Cortex-A510小核。

其中骁龙 8 Gen 1就采用了3个2.5GHz的Cortex-A710大核、1个3.0GHz的Cortex-X2超大核和4个1.8GHz的Cortex-A510小核。

图片

但这8个核当中只有Cortex-A710能够兼容32位应用,Cortex-X2和Cortex-A510仅支持64位操作系统及应用程序。

这也就是说在运行32位应用时,只能用到其中的3个核,其他5个核只能处于停工状态,这样一来运行速度和效率就会大打折扣,严重一点可能还会出现增加功耗、应用闪退等问题。至于32位到64位有多大的提升,联发科公布了对比测试,证实64位应用无论是在应用的冷启动速度还是能耗、游戏性能等方面都有显著的提升。

图片

图源:MediaTek实验室

图片

总而言之,32位应用+64位处理器,非常影响运行效率,只有64位处理器+64位应用结合在一起,才能让运行效率大幅度提升。

2.64位生态推进缓慢 

正因为64位是趋势,所以早在2013年,苹果在iPhone 5s上搭载的A7处理器就是使用的是64位。

图片

对比之前的A6的性能提升将近2倍,这次升级也让苹果在移动领域直接领先了同期的竞争对手。

紧接着,安卓阵营也开始积极朝着64位升级。高通第一款64位处理器骁龙410在同年年底发布,到了2014年,谷歌推出首个支持64位的安卓系统Android L。而苹果这边到了2015年,就已经开始要求iOS新上架的应用必须支持64位。

但由于当时政策、生态环境等多方面的影响,虽然支持64位,但依旧可以向下兼容32位,这就导致很多开发者不愿再动刀向64位迁移,于是64位处理器的优势完全发挥不出来,同时生态也变得非常混乱。

面对这些问题,最先狠下心的是苹果。

在2017年的iOS 11系统上就明确表示,将不再支持32位应用。

图片

而安卓这边,一直没能下狠心动刀。

在2019年,谷歌曾就要求上架到Play Store的应用,除了提供32位版本外,还必须提供64位版本,到了2021年,宣布不再允许64位设备下载32位应用,但依旧“心软”没说强行禁止,而是可以兼容使用,甚至在自家Chrome浏览器的下载页面也提供32位选择。

图片

图源于网路

究其缘由可能还是开发、运维成本的问题,如果开发者只开发32位应用,那么应用完全可以运行在64位处理器上的,但如果开发64位应用,那么一些旧机型就无法运行,后续的维护成本也是问题,所以很多开发者只能选择损失运行效率来保住“饭碗”。直到2021年,ARM终于宣布,从2023年开始,Arm架构CPU内核将强制采用64位,且没有32位兼容模式。可能正是基于这个原因,各大手机厂商们也开始积极响应。

华为开发者联盟的邮件称,华为应用市场到2022年9月1日之前将分阶段淘汰32位应用,目的是为了更好地提升应用性能体验、降低应用的功耗影响。

随后,移动智能终端生态联盟宣布,从2022年4月起,在联盟成员OPPO、vivo、 小米应用商店新上架应用不允许单独上架32位应用包,必须要提供64位版本的安装包。

图片

图源:微博@移动智能终端生态联盟

随着政策的颁布,强制不支持32位可能暂时会对部分应用和用户体验上造成影响,但从长期来看,这绝对是一件好事。

一方面,32位应用运行在64位处理器上,性能可能无法完全得不到发挥,反而会造成前面说的卡顿、增加功耗等问题,只有升级到64位才能缓解这些问题。另一方面,由于32位应用可能无法做到按照新的指南实时更新,一些新功能就无法正常使用,同时安全性也无从保障。

3.写在最后 

现在应用的安装包越来越大,所消耗的内存、运存也越来越多,同时对于系统和处理器的性能要求也越来越高。采用64位处理器可以保证在处理视频、游戏、解码等操作下,更充分的调动移动设备的性能,减少不必要的效能损耗。同时不再支持32位也可以保证软件的流畅运行。无论从哪个方面来说,对于用户的影响都是积极地。但即便是政策出台和系统限制,也依旧无法解决安卓生态混乱的问题,归根到底,还是需要一些更有力的措施,才能让安卓生态良性健康的发展。

参考链接:

https://baijiahao.baidu.com/s?id=1729417473150023472&wfr=spider&for=pc

http://app.myzaker.com/news/article.php?pk=60c856858e9f0977a82fd340&f=zaker_live

责任编辑:武晓燕 来源: 51CTO技术栈

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK