安卓

首页 » 常识 » 诊断 » 32位应用已死
TUhjnbcbe - 2024/4/25 17:12:00

曾经的经典都在逐渐消失。

作者

马超

Android全面拥抱64位APP

不久前,小米应用商店、OPPO软件商店、VIVO应用商店、腾讯应用宝、百度手机助手联合宣布,今后在上述应用商店发布的所有应用必须支持64位架构,今年年底前全体应用及游戏均需按计划上传含有64位构建的应用包apk。按照官方时间表,中国市场所有的移动安卓应用程序定于年8月底前全面普及64位。

其实全线下架32位APP早已经是业界的共识了,年iOS11发布的时候,苹果就已经全面淘汰了32位的应用APP,但是安卓作为一个开源共享的项目,很难强制推行淘汰32位程序,虽然年谷歌也曾公告提醒开发者们停止开发新的32位APP或为其提供更新,但是这项计划并没有被严格执行。不过本次国内五大应用商店联合发布淘汰32位APP的计划,正式吹响了国内安卓APP全面转向64位APP的号角。

那么32位和64位的程序到底有什么不同,此次升级又到底有何必要?下面笔者就为大家一一解读。

32位和64位相比到底差哪了?

从技术角度上看64位与32位,其实差异很大。十几年前,笔者刚刚进入金融行业的时候,就曾做过将应用由32位的服务器向64位小型机进行迁移的工作。

从实际编码来看,64位与32位处理器的根本区别在于长整型long和指针类型pointer的长度发生了变化。在32位体系下,integer与pointer长度相等,因此代码中常常把pointer转换为int或者unsignedint以便运算。但对64位处理器编程时,把指针或者long类型数据赋值给int型变量时,会发生数据截断与丢失。

从工作机制角度上看,64位对32位的优势也是显而易见的。由于32位CPU一次只能处理32位长的数据,单指令处理能力不超过2的32次方,因此在对于64位数据进行加法运算时,就需要先进行低32位的加法,再将高32位相加,最后再把低32位的进位与结果进行合并处理,至少需要4条指令才能完成,而这对于64位处理器来讲只是一条指令的事。因此32位处理器的处理能力对比64位来说真不够看。

处理能力更强64位处理器是可以兼容32位程序的,不过让64位系统运行32位的程序其实是一种降级运行状态。

一方面,32位程序在如今的64位硬件上会导致性能严重得不到发挥,反而会造成无谓的卡顿;

另一方面来说,由于32位的程序APP往往都比较老旧,没有按照最新的开发指南进行编码,这也意味着32位程序往往也不会支持新版操作系统的各种省电、智能休眠特性,安全性也无从保障。所以从这个角度上讲淘汰32位手机APP对于广大用户来讲绝对是一件好事。

可能读到这里不少读者会问位的处理器能否对于64位处理器形成碾压呢?

个人以为这个问题的答案是否定的,一方面目前SIMD也就是单指令多数据流技术,已经赋予CPU在一个指令周期内,处理位乃至更长数据的能力了,尤其是新版的ARMV9还拿出了大杀招SVE2的新款SIMD指令集,这项技术支持操作数变长,使ARM芯片可以在一个指令周期内处理到位变长的数据。可以说处理字长的问题已经基本不存在了,而且64位处理器对于内存寻址的能力一般可以达到16T甚至以上,这也足够强大了,再升级到位意义不大。因此可以看到各大厂对于推出位处理器基本都不太“感冒”。

Respect!那些伟大的32位经典

在笔者一名资深的游戏玩家眼中,32位经典作品简直多到了数不胜数的地步,《生化危机》、《恶魔城月下夜想曲》、《寄生前夜》、《恐龙危机》等等都是3A级大作,尤其是最终幻想系列的第8部,其主题曲《Eyesonme》至今还是经久不衰。

笔者在前文《MIPS已死,转身RISC-V》当中曾经提到过,年一代索尼PlayStation横空出世,在30年前的远古时代就为广大玩家带来了为之尖叫的图像处理效率,而当时PlayStation所搭载的CPU正是32位的一代传奇之作,MIPSRA。

当然英特尔的也是不遑多让,DX的内部和外部资料汇流排是32位,位址汇流排也是32位,可以管理4GB内存空间和64TB的存储空间。而且还奠定了X86体系延用至今的三种工作模式。其中真实模式对应16位系统的运行模式,直接内存访问空间被限制在1M位元组;保护模式对应32位的工作模式,处理器可以直接访问4G位元组的内存,并具有异常处理机制;虚拟86模式中可以同时模拟多个处理器,来加强多工处理能力。

初期推出的DX处理器集成了大约27.5万个电晶体,工作频率为12.5MHz。此后处理器逐步提高到20MHz、25MHz、33MHz直至最后的40MHz。也正是在真32位强大性能的加持下,才让当时的图形化操作系统Windows成为可能,也奠定了后来Wintel联盟统治IT生态十几年的基础。

如果说32位CPU评选起来还存在争议的话,32位操作系统的最强王者恐怕非WindowsXP莫属,凭借着简单易用的功能和强大的稳定性,XP统治PC操作系统十几年,甚至一直到20年后的今天,XP依然还有不到5%的市场占有率,在手机都要和32位APP彻底告别的今天,还在桌面市场为32位程序保留了一席之地。但是经典虽多也架不住64位的狂轰滥炸。

来自于64位处理器的降维式打击

最近苹果的春季发布会搭载M1处理器的iPadPro,使平板电脑再度大放异彩,不过笔者个人认为M1处理器的重要性与苹果在年发布的A7处理器是等量齐观的。

搭建A7处理器的iPhone5s这是全球第一个采用了64位处理器的智能手机。当时是iPhone5s可以兼容32位的应用程序,因此这个升级对于当时的开发者来讲是透明的,因此当时在发布之初并未引起太多反响。

但是在全面发售之后人们发现64位的A7处理器火力全开,比之前的A6性能提升2倍,同时比第一代iPhoneCPU性能提升40倍,GPU提升56倍。这次重大升级也让苹果在移动SOC领域领先了其它竞争对手整整一个身位。也让安卓阵营的主要SOC供应商高通开启了64位的时代大门。

从历史上看,桌面领域64位处理器对于32位处理器同样也是降维打击。

年左右,AMD与英特尔在处理器领域的竞争非常激烈,不过年的奔腾与赛扬D的推出,奠定了英特尔在桌面处理器领域的统治地位,直到近几年AMD推出ZEN系列处理器情况才得以改观。

时来天地皆同力,运去英雄不自由,32位应用程序虽然为整个移动互联网时代的繁荣做出过巨大贡献,但随着时间流逝英雄已经迟暮,该对我们说再见了,在此我们也挥手向那些经典告别,并致以敬意。

1
查看完整版本: 32位应用已死