手机功耗问题浅析

作者: 程序员Android1 | 来源:发表于2018-06-27 14:08 被阅读55次

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

1.飞行模式底电流问题
2.正常待机功耗简介
3.最干净的待机电流波形
4.通过唤醒源理清正常待机问题
5.Audio Playback 功耗问题
6.Display 及多媒体功耗问题
7.通话功耗问题

欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

1. 飞行模式底电流问题

系统睡眠的底电流是所有功耗问题的前置条件,此时wifi 、Bluetooth、Location、Radio 都处于关闭状态。

系统睡眠的条件

查看CPU是否进入suspend状态, suspend确切的说是 MCU (ARM)suspend, 也是CPU 进入WFI(Wait For Interrupt)状态,CPU 进入WFI后,整个系统就依靠一颗 SCP:SPM(System Power Manager) 来控制 睡眠/唤醒 的流程

灭屏到CPU 进入suspend的流程

灭屏到CPU 进入suspend的流程

判断系统是否进入suspend
在kernel log中搜索关键字 Chip_pm_begin 或者 suspend entry

查看suspend状态

查看SPM(System Power Manager)状态

kernel log 中搜索关键字 wake up by, 在kernel Log中查看R13寄存器跟debug_flag的值

查看SPM(System Power Manager)状态

2. 正常待机功耗简介

待机功耗很容易出现问题,并且很难理清,因为其涉及到APK 、Modem、Wifi、Other这些不确定因素。

功耗问题处理原则:

1.先花时间把现象理清,到底在什么样的环境下复现。
2.多做几个实验,给出清晰的问题描述、问题复现条件、电流波形图。
3.提供关闭 modem 的log

3. 最干净的待机电流波形

最干净的待机电流波形

4. 通过唤醒源理清正常待机问题

1. 其他唤醒源分析

kernel Log收缩关键字 wakeup by, wakeup by xxxx ,其中 xxxx 就是唤醒源。

image.png

2. APK 唤醒源分析

APK 唤醒系统是通过设置 type 0type 2的alarm 来唤醒系统,这两种alarm 会设置到RTC寄存器中,而RTC Module 其实是在PMIC 里面,因此APK唤醒实际上是PMICEINT唤醒。

RTC 唤醒sys_log中搜索关键字 AlarmManager: sending alarm Alarm,查看 type 0type 2 的应用有哪些。

gms包APK经常唤醒系统

如果log没有开启,请使用adb shell dumpsys alarm log on

5. Audio Playback 功耗问题

Audio playback 时候MTK低端平台没有专门的audio DSP(Heilo X20除外),故无法在suspend状态下完成audio playback,故需要CPU 做这件事情。

通话的时候之所以可以睡眠,是疑问modem 充当了dsp的角色。

deep idle 状态

Deep idle 实际上系统还是Active状态,因此CPU需要快速响应系统请求调度,因此 GPT唤醒源Deep idle的主要唤醒源。

Kernel Log中搜索关键字 wake up by , 这个log是在 swapper进程 中打印出来的(代表当前CPU在运行idle task) ,并且后面可以看到 DP:的字样。

播放MPS GPT 唤醒源 log

MP3播放时进入deep idle状态(20mA)举例

MP3 播放时进入deep idle 状态(20mA)举例

区分suspend 与deep Idle

  1. suspend 是跑在 suspend workqueue 中,因此log的进程主体是kwork
  2. deep idle 是跑在idle task 中,因此log的进程主体是swapper
  3. suspend 默认不会被 GPT 唤醒。

6.Display 及多媒体功耗问题

手机所有亮屏的场景都是模块自身的耗电跟Display 部分耗电的叠加,所以Display 的功耗在整个系统中占比非常高。
Display 功耗 = 硬件+平台+内容

Kernel Log中搜索关键字 wake up by , 这个log是在 swapper进程 中打印出来的(代表当前CPU在运行idle task) ,并且后面可以看到 SO:的字样(通)

Display 及多媒体功耗问题

7. 通话电流功耗问题

通话模式的功耗跟正常模式的功耗区别

通话模式的功耗跟正常模式的功耗区别

一般情况下
GSM 功耗< 3G-TD < 3G-W 功耗

GSM 3G-TD 功耗图 3G-W功耗图

飞行模式底电流 参考文档
标准模式功耗 参考文档
Audio PlayBack功耗 参考文档
通话底功耗 参考文档
Display 及多媒体功耗 参考文档

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。期待您的关注,
感谢您的阅读,谢谢!

如有侵权,请联系小编,小编对此深感抱歉,同时小编会立即停止侵权行为。

​欢迎关注微信公众号:程序员Android
公众号ID:ProgramAndroid
获取更多信息

微信公众号:ProgramAndroid

我们不是牛逼的程序员,我们只是程序开发中的垫脚石。
我们不发送红包,我们只是红包的搬运工。

点击阅读原文,获取更多福利


相关文章

  • 手机功耗问题浅析

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 1.飞行模式底电流问题...

  • 直播专题问题排查-功耗高(九)

    直播功耗高 1. 问题现象直播过程中手机发热严重,耗电快。2. 问题排查 导致手机功耗高,发热严重的根本因素,无...

  • realme真我X50续航有多出色?用一天还剩62%,这个技术立

    众所周知,5G手机除了有比4G更快的网速之外,同时还有更大的功耗。因此,如何在高功耗的前提下保证手机的续航问题,也...

  • Low Power概念介绍-Voltage Area

    随着智能手机,以及物联网的普及,芯片功耗的问题最近几年得到了越来越多的重视。为了实现集成电路的低功耗设计目标,我们...

  • 功耗 Log 抓取要求规范

    在功耗测试时候,由于默认开启的Modem等Log会导致手机功耗异常。故,在测试功耗时,需要我们手动关闭Modem等...

  • 手机功耗问题解决方案

    本篇文章主要介绍手机开发中的功耗部分知识点,功耗直接影响到手机的待机时间,通过阅读本篇文章,您将收获以下内容: 一...

  • APP耗电量测试工具 Power-Tutor

    PowerTutor是一款用来测试手机功耗的小工具,它可以只管地展示手机系统主要的组件和各种用户app产生的功耗数...

  • 5G和新能源车

    5G功耗总体功耗非常大,主要是服务器 & 传输网络终端功耗虽然占端到端的比例不高,但是同比原来的设备,比如5G手机...

  • Android 低功耗蓝牙BLE 开发注意事项

    基本概念和问题 1、蓝牙设计范式? 当手机通过扫描低功耗蓝牙设备并连接上后,手机与蓝牙设备构成了客户端-服务端架构...

  • 数字IC低功耗设计总结

    1、功耗分类: 低功耗按照类型分类,主要有动态功耗、静态功耗、浪涌功耗三种。 (1)动态功耗包括: 开关功耗(翻转...

网友评论

    本文标题:手机功耗问题浅析

    本文链接:https://www.haomeiwen.com/subject/viyeyftx.html