芯片|这代安卓机特别耗电?聊聊安卓应用64位的问题

芯片|这代安卓机特别耗电?聊聊安卓应用64位的问题

文章图片

芯片|这代安卓机特别耗电?聊聊安卓应用64位的问题

文章图片

芯片|这代安卓机特别耗电?聊聊安卓应用64位的问题

文章图片

【芯片|这代安卓机特别耗电?聊聊安卓应用64位的问题】芯片|这代安卓机特别耗电?聊聊安卓应用64位的问题

文章图片




相信很多朋友已经购买到了最新一代CPU平台的安卓机了 。 这代安卓机的CPU发生了剧变 , 在保持了大中小核架构的同时 , 对大核和小核的微架构都进行了大改 。 小核心的微架构进化 , 应该是大家期盼已久的了 , 祖传的Cortex-A55终于退休 , 按理来说全新的Cortex-A510应该会带来更好的能效 。 但是有人发现 , 这代安卓机似乎更加耗电了 , 这是为何?今天就从新一代ARM处理器的架构聊起 , 简单谈谈安卓应用64位普及迟滞导致的耗电问题吧 。

新一代ARMv9处理器 , 为何反而更耗电?
新ARM处理器甚至更耗电?
当前上市的最新一代安卓机所使用的高通骁龙8gen1处理器 , 以及即将上市的联发科天玑9000处理器 , 都属于最新设计的基于ARMv9架构的产品 。 它们都有一个共同的特点 , 就是文章开头所说的大核和小核微架构进行了大改 , 大核心使用了Cortex-X2微架构 , 而小核心则使用了Cortex-A510微架构 。

新处理器的小核是经过重新设计的Cortex-A510 , 理论上可以带来更高的能效

无论是Cortex-X2还是Cortex-A510 , 它们都有一个共同的特点 , 那就是不再支持32位 , 如果安卓机要运行32位的应用 , 那就必须在微架构只作了小幅调整的Cortex-A710中运行 。 如此一来 , 在某些场景中 , 就有可能导致额外的能耗 。

在理想的情况下 , 安卓机在待机或者低负载时 , 应用程序主要运行在小核心上 , 小核心的能效比最出色 , 如此一来就能达到节电的效果;但如今 , 如果App是32位的 , 在新的ARM处理器中 , 就只能由中核运行 , 小核的能效优势只能干瞪眼 , 额外耗电的情况就出现了 。

在运行32位安卓App时 , 处理器实际上只能工作在Performance工况下 , 无法进入节电的Efficiency工况

换言之 , 在使用了新一代CPU的安卓机中 , 如果运行32位的App , 是无法达到理想的能效比的 。 这个问题 , 和芯片工艺无关 , 和系统无关 , 的的确确就是安卓生态和新处理器架构不匹配所导致的 。

只有64位的安卓App , 才能运行在新ARM处理器的小核心上 , 才能让新ARM处理器发挥出应有的能效 。 因此 , 何时普及64位的安卓App , 就成为了新一代ARM处理器何时能更节电问题的答案 。

安卓App仍未普及64位?
当前的安卓生态中 , 32位的应用仍大量存在 , 这些应用不乏大家常见的装机必备 , 例如哔哩哔哩、百度网盘、爱奇艺等等 。 这种情况是否正常?从技术的角度来看 , 似乎很不应该 。

像哔哩哔哩这样Target API已经更新到Android 11的应用 , 也依然只是32位的

从ARMv8开始 , 安卓阵营的CPU就已经普遍支持64位 , 安卓系统也在Android 5.0后 , 从系统层面支持64位应用 。 这两件事 , 其实都属于比较远古的了——基于ARMv8的骁龙810以及Android 5.0都出现于2014年 , 转眼都快十年过去了 , 为何安卓App仍大量停留在32位?