当前位置: 首页 > 科技观察

32位应用已经凉了!

时间:2023-03-19 15:07:01 科技观察

作者|路遥审稿人|赵云近日,谷歌正式发布Android13,并率先向Pixel设备推送系统更新。不过没过多久,爆料者在Android13代码库中发现谷歌提交了“Movetangorto64-bitonly”(译为“只将tangor移动到64位”)。其中,“tangor”是Pixel平板电脑的代号。根据这些信息,Pixel平板电脑似乎只支持64位Android应用程序。同时,爆料者还发现了另一份提交的信息,表明32位应用程序无法在安装AndroidU(Android14)或更高版本的设备上运行。也就是说,从明年开始,Android将放弃对32位应用程序的支持,而对64位应用程序的支持可能会成为常规功能。这个话题也在技术界引发了热议。群友[王兴]:时代发展必然放弃32位。其实现在的ARMv864位指令集是10年前的产物。就智能手机而言,只要是2014年之后推出的主流机型,所使用的CPU架构和指令集其实都是为64位环境设计的。作为工程师,可以趁着更新32位的“机会”走鸿蒙之路。群友[周嘉义]:虽然放弃了32位,但是对于64位,谷歌提供了不同的工具和大量的文档,让应用开发者为转64位做准备。对于许多应用程序来说,几乎没有什么可做的,因为那些用Java或Kotlin编写的应用程序不需要更改。但使用游戏引擎或第三方SDK开发的应用需要确保使用最新的64位版本。性能确实提高了很多。开发人员需要明白,数据类型和数据转换发生了变化,结构的对齐方式也发生了变化。群友[荣宪昭]:32位采用固有架构,限制了系统的发展。一些应用程序可能需要重新调整和开发。减少存储空间占用,提高底层安全级别。另外,ARM全新的CortexA65架构已经是纯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位。以骁龙8Gen1和天玑9000为例,两款芯片均采用ARMv9架构方案,并带来三颗CPU:Cortex-X2大核、Cortex-A710大核和Cortex-A510小核。其中,骁龙8Gen1采用3颗2.5GHzCortex-A710大核、1颗3.0GHzCortex-X2超大核和4颗1.8GHzCortex-A510小核。但在8个内核中,只有Cortex-A710兼容32位应用,Cortex-X2和Cortex-A510仅支持64位操作系统和应用。这意味着在运行32位应用程序时,只能使用其中的3个核心,其他5个核心只能处于关机状态,这样运行速度和效率都会大大降低,并且可能出现重症病例增多。耗电、应用程序闪退等问题。至于从32位到64位的提升,联发科公布了一项对比测试,证实64位应用在应用冷启动速度、能耗、游戏性能等方面都有明显提升。来源:联发科实验室总而言之,32位应用+64位处理器对运行效率影响很大。只有64位处理器+64位应用的组合,才能大幅提升运行效率。2、64位生态推进缓慢正是因为64位是趋势,所以早在2013年苹果iPhone5s上的A7处理器就采用了64位。与之前的A6相比,性能提升了近2倍。此次升级也让苹果直接领先同期移动领域的竞争对手。紧接着,安卓阵营也开始积极向64位升级。同年年底,高通公司首款64位处理器骁龙410发布。2014年,谷歌推出了AndroidL,第一个支持64位的Android系统。在苹果方面,到2015年,它已经开始要求新的iOS应用程序必须支持64位。但是受当时政策和生态环境的影响,虽然支持了64位,但是仍然向下兼容32位,导致很多开发者不愿意迁移到64位,所以优势64位处理器根本玩不转,生态变得非常混乱。面对这些问题,苹果是第一个下狠手的。在2017年的iOS11系统上,明确表示不再支持32位应用。而在Android方面,一直未能下狠手。2019年,Google要求上架PlayStore的应用除提供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位也能保证软件的流畅运行。无论从哪个方面来说,对用户的影响都是积极的。然而,即使政策出台、系统限制,依然无法解决安卓生态混乱的问题。归根结底,还是需要一些更有力的措施,才能让Android生态健康发展。参考链接:https://baijiahao.baidu.com/s?id=1729417473150023472&wfr=spider&for=pchttp://app.myzaker.com/news/article.php?pk=60c856858e9f0977a82fd340&f=zaker_live