安卓手机推荐性能优先 (安卓旗舰机推荐低功耗)

刷机的时代其实早已落幕,迟迟下不定决心只是希望能让魔趣多存续一些时间,但该来的终究会来。马丁龙猪今天决定删库跑路了,之后会做些别的。如若有缘,他日江湖再会!多的话就不说了,总结、回忆过去的种种,其实是最难受的,所以还是干脆利落点吧!

这是2023年1月7日,魔趣 (Mokee) 创始人的发言,很多手机老玩家一定还记得曾经那个来回折腾的刷机时代,魔趣就是当年比较重要的一个ROM,早期基于曾经全球最知名的第三方安卓定制ROM——CyanogenMod(CM),一加手机曾经还与CM进行合作。

如何压榨安卓手机的全部性能,安卓堆料很高的手机

好好的手机为什么要刷机呢?十年前安卓手机使用起来普遍比较卡顿, 即便手机已经堆料到极致了还是一样卡顿,如何解决呢?答案是刷机!同样的硬件,同一款手机,刷了一个好的ROM就变的流畅好用了

如何压榨安卓手机的全部性能,安卓堆料很高的手机

后来随着硬件性能的大幅提升,Android系统的不断更新完善,各手机厂商定制AOSP(Android Open Source Project,安卓开放源代码项目)的优化,安卓生态的逐步规范,卡顿的现象越来越少了。但并不是不存在,前年我花四千多买了某个旗舰手机,配置堆料在当时也是领先的,结果用起来却状况不断,甚至卡的怀疑人生。是因为堆料不够吗?当然不是,堆料是最简单粗暴的提升使用体验的方法,通常也是有效的,但是 仅仅堆料肯定是不行的,尤其是当处理器在性能或者功耗方面表现不理想的情况下就很考验手机厂商在系统软件方面的基本功了

现在的安卓厂商面临的情况与十年前相比有很大的不同,硬件性能足够强了,但是利用情况不太好,功耗控制与资源调度还有优化空间。与添加一个功能,修改各UI相比,这就涉及到了操作系统的核心,属于技术的深水区。

什么是操作系统?操作系统最基本的就是实现让硬件可以正常的管理硬件,让CPU可以运算数值,可以往硬盘写入数据,让网卡能够传输数据等,这就是操作系统的内核,在Linux中,这个内核称之为Kernel。内核是如此的重要,自然需要进行一些保护,同时也是为了让程序员容易开发,因此操作系统除了内核程序之外通话还会提供一整套的接口,这就是系统调用的中间层。我们安装的应用程序就是跟这些系统调用打交道,然后通过内核告诉硬件做什么。所以一般来说操作系统分为两部分,一部分为系统内核,一部分是负责系统调用的,注意,这里只是最简单的划分,如果详细的划分还会有驱动层等。

我们都知道Android并不是从0开始的而是以Linux Kernel为内核的一个操作系统,从某种程度来说Android也算Linux的某个发行版,Andorid 13的框架就如下图所示,既有与硬件打交道的内核(虽然是Linux的),也有与上层打交道的系统调用框架以及运行时等。

如何压榨安卓手机的全部性能,安卓堆料很高的手机

想要改变系统的调用,优化功耗,就要深入Linux Kernel了,在内核中DVFS(Dynamic Voltage and Frequency Scaling,动态电压频率调节)就是一种低功耗技术,目的是根据的芯片当时的实际功耗需要设定工作电压和时钟频率,这样可以保证提供的功率既满足要求又不会性能过剩,从而可以降低功耗。在Linux Kernel中cpufreq framework就是具体负责该功能的模块。

如何压榨安卓手机的全部性能,安卓堆料很高的手机

以高通骁龙8 Gen2移动平台为例,这颗芯片集成了CPU、GPU、DSP等很多的IP核,仅仅CPU部分又分有Cortex-A510、Cortex-A710、Cortex-A715、Cortex-X3等不同的微架构。所以在制定DVFS调整策略前,需要先掌握芯片上每个IP核的负载情况,在不同的情况下进行DVFS调节,这是当前的通常做法。

想要更高效的在SoC上进行调度调节,通常是对计算资源的分配进行优化,去年发布的ColorOS超算平台就是这么做的。但是让我没想到的是仅仅时隔半年,他们居然深入到了微架构层面,能够将SoC 芯片中决定性能功耗的关键因子抽取建模计算,从而精准得出性能调度的最佳能效组合,这就是OPPO发布的行业首个微架构级算力模型 – 微架构超算引擎。

手机SoC上仅仅CPU就会有Cortex-A510、Cortex-A710、Cortex-A715、Cortex-X3等不同的微架构,它们都是CPU的核心,但是在执行同样的指令时的功耗、运行速度等都是不同的,这就是优化的空间。如果范围再扩大到SoC层面,手机执行一个任务在行可能涉及CPU、GPU、DDR内存等不同的IP核,如何更好的分配算力就成了决定功耗的关键。OPPO对微架构运行链路的“全解析”从一条指令所需要的时钟周期数 CPI(Cycle Per Instruction)维度,建立了能够覆盖各类用户场景的计算模型。对微架构运行链路的“全解析”,将传统性能功耗调度也就是上面提到的DVFS策略可以调教的参数提升了十几倍。

比如在游戏场景中CPU读取指令进行控制并将渲染的指令发送给GPU,如果当前功耗发热严重,可以先把 CPU 频率压降 15%,这样整体功耗可能降低5%,现在多数厂商也都是这么做的。而微架构超算引擎可以识别计算的瓶颈在哪儿,比如当前游戏画面的平静在数据的读取上,就选择让缓存和 DDR 总线提速 20%(功耗增 2.5%), GPU 渲染强度降低 10.5%(功耗降 2.5%),CPU 频率降低 15%(功耗降 5%),这样就使得整 体性能不减,而功耗依然降低 5%。

那换成联发科的SoC也可以吗?这就需要对按合适的算力转换方式将不同的模块和芯片平台融合生成算力的数据模型,这样就可以跨平台和使用场景了。

硬件堆料对手机而言只是提供运算的硬件基础,堆料肯定是好事儿,其实不止是安卓手机厂商,苹果也是一样。之前还有人问苹果为什么不堆料,恰恰相反,苹果才是堆料最厉害的,单单一个A系列处理器就已经够卷硬件的了。现在也没人再去刷机了,在系统层面只能指望手机厂商的努力,就安卓领域而言,当大家都是骁龙8 Gen2处理器 + LPDDR5X 满血版 + UFS 4.0的时候怎么做到更好的性能和功耗平衡及优化?OPPO的ColorOS拿出了微架构超算引擎,这就是差异化,也给业内提供了新思路。不过还是要强调一下,这需要更新到ColorOS 13.1版本才能体验,其实这也是ColorOS 13发布时诸多功能和特性的后续落地。