[情报] 聊聊骁龙8和天玑9000发布后,安卓应用64位的问题

楼主: haveastar (有星)   2022-03-02 15:59:41
文章来自太平洋电脑网 (找无原文网址)
聊聊骁龙8和天玑9000发布后,安卓应用64位的问题
相信很多朋友已经购买到了最新一代CPU平台的安卓机了。这代安卓机的CPU发生了
剧变,在保持了大中小核架构的同时,对大核和小核的微架构都进行了大改。小核心的微架
构进化,应该是大家期盼已久的了,祖传的Cortex-A55终于退休,按理来说全新的Cortex-A
510应该会带来更好的能效。但是有人发现,这代安卓机似乎更加耗电了,这是为何?今天
就从新一代ARM处理器的架构聊起,简单谈谈安卓应用64位普及迟滞导致的耗电问题吧。
https://i.imgur.com/8ioA0Ev.jpg
新一代ARMv9处理器,为何反而更耗电?
新ARM处理器甚至更耗电?
  当前上市的最新一代安卓机所使用的高通骁龙8gen1处理器,以及即将上市的联发科天
玑9000处理器,都属于最新设计的基于ARMv9架构的产品。它们都有一个共同的特点,就是
文章开头所说的大核和小核微架构进行了大改,大核心使用了Cortex-X2微架构,而小核心
则使用了Cortex-A510微架构。
https://i.imgur.com/US2vTvQ.jpg
新处理器的小核是经过重新设计的Cortex-A510,理论上可以带来更高的能效
无论是Cortex-X2还是Cortex-A510,它们都有一个共同的特点,那就是不再支持32位,如果
安卓机要运行32位的应用,那就必须在微架构只作了小幅调整的Cortex-A710中运行。如此
一来,在某些场景中,就有可能导致额外的能耗。
  在理想的情况下,安卓机在待机或者低负载时,应用程序主要运行在小核心上,小核心
的能效比最出色,如此一来就能达到节电的效果;但如今,如果App是32位的,在新的ARM处
理器中,就只能由中核运行,小核的能效优势只能干瞪眼,额外耗电的情况就出现了。
https://i.imgur.com/zsAwyPo.jpg
在运行32位安卓App时,处理器实际上只能工作在Performance工况下,无法进入节电的Effi
ciency工况
换言之,在使用了新一代CPU的安卓机中,如果运行32位的App,是无法达到理想的
能效比的。这个问题,和芯片工艺无关,和系统无关,的的确确就是安卓生态和新处理器架
构不匹配所导致的。
  只有64位的安卓App,才能运行在新ARM处理器的小核心上,才能让新ARM处理器发挥出
应有的能效。因此,何时普及64位的安卓App,就成为了新一代ARM处理器何时能更节电问题
的答案。
安卓App仍未普及64位?
  当前的安卓生态中,32位的应用仍大量存在,这些应用不乏大家常见的装机必备,例如
哔哩哔哩、百度网盘、爱奇艺等等。这种情况是否正常?从技术的角度来看,似乎很不应该
https://i.imgur.com/oiagE3Z.jpg
在运行32位安卓App时,处理器实际上只能工作在Performance工况下,无法进入节电的Effi
ciency工况
从ARMv8开始,安卓阵营的CPU就已经普遍支持64位,安卓系统也在Android 5.0后
,从系统层面支持64位应用。这两件事,其实都属于比较远古的了——基于ARMv8的骁龙810
以及Android 5.0都出现于2014年,转眼都快十年过去了,为何安卓App仍大量停留在32位?
我们可以对比一下苹果阵营。2013年的iPhone 5S以及iOS 7开始推行64位,一年多
后32位的iOS应用就已经难寻踪迹。和苹果的步伐相比,安卓阵营可谓步履维艰。
https://i.imgur.com/u7x5ZKx.jpg
和安卓阵营相比,苹果iOS推行64位顺利得多
  安卓推行64位为何如此艰难?这和安卓生态的实际情况是有很大关联。尽管在ARMv8后
,安卓阵营的CPU增加了64位的支持,但依然保留了32位的兼容。甚至,前一代产品ARM v8.
2处理器,也依然耗费额外的晶体管,来兼容32位App 。同时,安卓系统也一直兼容32位App
,App并没有切换到64位的迫切需求。这一切的考量,很大程度是基于对旧设备的兼容。
  在安卓初推行64位的时候,市场上依然有大量运行旧CPU以及旧版安卓系统的设备存在
。安卓在市场攻城略地的秘诀,在于开放和兼容,如果对32位一刀切,那么安卓阵营会无可
避免迎来分裂。实际上,开放的系统都存在这样的问题,例如Windows生态为了保持向后兼
容,时至今日仍对32位应用软件提供出色的兼容,这和安卓是殊途同归的。
  当然,和Windows不同,安卓并不需要承担太多的生产力任务。在初次推行64位过去近
十年后,安卓也的确到了全面抛弃32位包裹的时机。
  安卓放弃对32位兼容可以带来什么好处?首先,CPU就可以省下用于兼容32位的晶体管
,对于寸土寸金的芯片来说这显得尤为有价值;其次,App可以拥有更好的内存利用率,对
于日渐膨胀的应用游戏来说这是至关重要的;再者,App还可以更有效利用CPU的寄存器,带
来更高的效率。
  在安卓App日渐复杂、摩尔定律日渐失效的今天,摒弃历史包裹、全面拥抱64位的时机
的确已经到来。虽然目前安卓生态仍存在大量32位App,但我们也可以看到多方对普及64位
的努力。
  例如,Google要求,从2019年8月1日起,在Google Play发布的应用必须支持64位。也
因为此,国外的安卓生态对于64位的普及要比国内做得更好,这次安卓CPU平台换代,国内
的安卓机耗电问题也要比国外更明显。
https://i.imgur.com/CVFTyYB.jpg
Google Play商店两年多前已经禁止32bit应用上架,国内安卓生态较之滞后
又例如,国内的安卓分发渠道也开始要求App支持64位。OPPO商店此前已经规定,2
021年12月底后,新发布的应用必须支持64位;而小米商店则提供了一键将32位App置换为64
位的功能,如果手机上已安装的32位App在商店中有64位版本,可以一键更新。
  同时,国内的很多App在近期也都更新到了64位,例如微信、QQ、12306等等。相信在不
久后的将来,国内的安卓App很快会大面积普及64位,新一代的安卓机也会发挥出应有的能
效。
总结
  毫无疑问,和苹果相比,安卓的64位普及进程是落后的,安卓阵营并没有苹果那样绝对
的应用发行渠道垄断权,这也是安卓借开放之风腾飞所需要付出的代价。幸运的是,目前安
卓阵营各方都已经意识到了普及64位的重要性,下一代安卓CPU会进一步抛弃对32位的支持
吗?让我们拭目以待吧。
心得
在cpu跟app的双重夹击下,旗舰机的续航已大不如前,这或许是各个厂商不断加快充电速度
的无奈原因吧。
楼主: haveastar (有星)   2022-03-02 16:10:00
https://i.imgur.com/bpGDGoM.jpg 目前用的这个覆蓋率还ok
作者: Daihao (TDH)   2022-03-02 16:18:00
win跟X86发展到现在也没放弃对32位的支援
作者: haeyhotw (haha)   2022-03-02 16:19:00
这篇会有海巡吗?
作者: BBKOX (BBKOX)   2022-03-02 16:24:00
无原生库是?
楼主: haveastar (有星)   2022-03-02 16:30:00
无原生库好像是直接调用系统,所以就看手机是32还是64
作者: Medic   2022-03-02 17:01:00
所以用 google play 的没问题啊?
作者: donnyyy (donnyyy)   2022-03-02 17:04:00
如果是Playstore上的就都是64bit的,抓的APK通常分版本会告诉你是arm v8(64bit)或者arm v7(32bit)
楼主: haveastar (有星)   2022-03-02 17:04:00
所以对岸会比较惨,没有统一规范…不过Google play服务有时又会莫名耗电
作者: ohmylove347 (米特巴爾)   2022-03-02 17:40:00
这样看来问题不大,而且我们也运不太到这问题,倒是对岸的评测会比较容易失真吧?
作者: square4 (卡哇伊)   2022-03-02 17:41:00
中国自己的问题 https://bit.ly/35JPwR2
作者: w790608 (~@~)   2022-03-02 19:27:00
这样说,android tv都是32的耶
作者: MengXian (apollo)   2022-03-02 19:29:00
不会有海巡吧,都有情报分类了
作者: siulou (siulou)   2022-03-02 20:09:00
所以这不是Android的问题吧唯一影响就是墙国的评测不准
作者: ht9410310000 (边)   2022-03-02 20:40:00
X86也是一直兼容..
作者: commandoEX (卡曼都)   2022-03-02 23:15:00
X86的主力是跟续航力很遥远的server和dt啊....
作者: WaterCross (WaterCross)   2022-03-03 01:30:00
我要嘘一下,其实大部分APP都64bit了好吗...要抓Arm V7 32bit APK都要另外费一般功夫.然后评测用测出发烫,高热,喷电的APP没有跑32bit 的吧!
作者: allyourshit (都你的大便)   2022-03-03 13:33:00
那是因为中国国情的关系 太多低阶跟旧机在跑有google play的早就全面64位元化了 哪还有32bit APP
作者: lwei781 (nap til morning?)   2022-03-03 15:15:00
低阶机更多的不是中国

Links booklink

Contact Us: admin [ a t ] ucptt.com