概述
低功耗是指设备在运行各种任务时,通过采用一系列技术和策略来降低设备的能耗,从而延长电池寿命和设备使用时间。因为手机等移动设备具有便携、移动的属性,其续航时间的长短直接影响用户对该品牌手机的体验和满意度。移动设备的续航时间越长,用户就可以更长时间地使用设备,无需频繁充电,在户外或旅行场景下提供便利。一般而言,为了提供更长的续航时间,可以采取了多种技术和方法来降低功耗、优化电池管理,如优化软件算法、优化屏幕亮度和显示等。其中,省电模式和深色模式是手机功耗优化中常用的优化手段:
- 省电模式:一种通过调整设备的设置来降低系统功耗的功能,例如适当降低屏幕亮度和CPU性能。
- 深色模式:深色模式是应用程序的一种背景颜色设置,用于将应用程序显示背景颜色改为深色调,例如黑色或深灰色。
为了有效去测量手机运行时的功耗,DevEco Profiler提供实时监控(Realtime Monitor)能力,可帮助开发者实时监控设备资源(如CPU、内存、FPS、GPU、Energy等)使用情况,其中Energy以3s为周期进行刷新,体现统计周期内总功耗以及各耗能部件(包括CPU、Display、GPU、Location、Other)的功耗占用情况。综合考虑业界共识指标和实际用户使用体验,实验将主要对比屏幕显示耗电量、CPU耗电量、GPU耗电量以及最终总耗电量,关键指标如下所示:
- 显示耗电量:显示耗电量是手机耗电的主要来源之一,它通常占总能耗的很大比例,影响显示耗电量的关键因素包括屏幕亮度、显示内容、刷新率等。
- CPU耗电量:高性能的任务通常需要更多的CPU计算能力,导致较高的CPU耗电量,影响CPU耗电量的关键因素包括CPU的工作频率、功耗管理策略以及对任务的调度和分配等。
- GPU耗电量:类似于CPU,高性能的图形任务会导致较高的GPU耗电量,影响GPU耗电量的关键因素包括GPU的工作频率、工作负载、绘制内容、分辨率、绘制帧率等。
- 最终总耗电量:最终总耗电量是指设备在特定使用场景下的总能耗,包括屏幕显示、CPU计算和GPU图形处理等。它反映了设备在某种使用情境下的总体能耗水平。
本文将以 “HMOS世界”APP 为例,通过设置省电模式和深色模式来验证不同场景下对手机功耗的影响,观察手机的电量消耗变化情况。同时本文还探讨了主动降低应用亮度、停止冗余动画两项降低功耗的措施,测试不同条件下的电量消耗情况。实验结果表明:
- 主动省电模式:设置省电模式后,系统会自动调节屏幕亮度、调整灭屏时间等配置项,使得耗电量在显示模块降低明显,总耗电量随之降低约12%。
- 主动深色模式:通过主动切换深色模式,OLED屏幕可以使用更少的像素点和背光,实现更低的亮度和对比度。相对于正常模式,总耗电量降低约24.5%。
- 主动调节屏幕亮度:应用主动发起屏幕亮度调节时,可以通过主动降低应用的亮度来减少显示屏的功耗,延长设备的续航时间。相对于正常模式,总耗电量降幅约为36.9%。
- 停止冗余动画:冗余的动画绘制指的是在屏幕上绘制不必要或重复的动画效果,通过停止冗余动画可以减少GPU的工作量,从而降低GPU的功耗。相对于正常模式,总耗电量降幅约为40.2%。
通过设置省电模式、深色模式、调节屏幕亮度调节、停止冗余动画,最终测量的总耗电量对比如下图所示:
图1 总耗电量对比
功耗测量工具
DevEco Profiler
DevEco Profiler应用调优工具(以下简称为Profiler)内置集成在DevEco Studio内,提供场景化的调优体验,不仅方便开发者及时了解应用或服务的CPU、内存、图形等资源的使用情况,还提供了高效的问题定位能力,帮助开发者快速定位到问题所在代码。使用Profiler测试应用程序功耗的方法如下所示:
-
打开Profiler:在DevEco Studio内可以通过以下三种方式打开Profiler
- 在DevEco Studio顶部菜单栏中选择“View -> Tool Windows -> Profiler”。
- 在DevEco Studio底部工具栏中单击“Profiler”。
- 按“Double Shift”或者“Ctrl+Shift+A”打开搜索功能,搜索“Profiler”。
-
连接设备:将设备通过USB连接到计算机上。
-
选择应用程序:在Profiler中,选择要测试的应用程序并开启Realtime Monitor。
-
进行应用程序操作:在设备上进行应用程序操作,如浏览网页、播放视频等。
-
查看结果:右侧区域展示时间窗内Energy资源的实时使用情况,将鼠标悬浮于统计图中任意位置,打开时间标线,左右移动鼠标并结合时间轴可查看不同时间点上的实时信息。
图2 ProfilerEnergy模块示意图
说明
- 上图区域展示时间窗内CPU、Memory、FPS、GPU、Energy资源的实时使用情况,将鼠标悬浮于统计图中任意位置,打开时间标线,左右移动鼠标并结合时间轴可查看不同时间点上的实时信息。
- Energy以3s为周期进行刷新,体现统计周期内总功耗以及各耗能部件(包括CPU、Display、GPU、Location、Other)的功耗占用情况。
程控电源
程控电源是一种可以进行电压、电流、功率、电阻等参数控制的电源设备,它可以根据用户设定的参数来输出相应的电压和电流,从而满足不同的测试需求。程控电源可以通过编程控制来模拟不同的负载条件,从而测试应用程序在不同负载下的功耗表现。通过这种方式,开发人员可以更好地了解应用程序的能耗特性,从而针对性地