功耗分析

摘要:
处理功耗问题的原则:1。花时间整理一下这种现象,并找出它会在什么样的环境下重现。如果日志未打开,请使用adbshelldumpsysarmlogon5.音频播放功耗问题音频播放当MTK低端平台没有专用音频DSP时,它无法在暂停状态下完成音频播放,因此需要CPU执行此操作。

功耗分析第1张

功耗分析第2张

极力推荐Android 开发大总结文章:欢迎收藏
程序员Android 力荐 ,Android 开发者需要的必备技能

功耗分析第3张

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

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

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 及多媒体功耗 参考文档
功耗分析第16张

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

微信关注公众号: 程序员Android,领福利

免责声明:文章转载自《功耗分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇模块三 GO语言实战与应用-并发安全字典sync.Map(上)GAN作用——在我做安全的看来,就是做数据拟合、数据增强下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

基于时间干涉电场的非侵入式深部脑刺激法

现有的侵入式的深部脑刺激方法需要在头盖骨上开孔,同时潜在有感染、中风等风险,另外,TMS或tDCS等非侵入的方法虽然可以刺激深部脑组织,但是不可避免地会同时刺激到目标区域上方的脑部位。 该文的特色在于发现虽然高频的电场(比如:大于1000Hz)并不能引起脑神经的振荡,但同时在颅外施加两个高频电场,并且两电场的频率存在微小差异时(比如同时施加2000Hz和2...

手机功耗测试

极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 本篇文章主要介绍 Android 开发中的部分 功耗 知识点,通过阅读本篇文章,您将收获以下内容: 1.测试功耗手机配置 2.飞行模式待机功耗 3.单SIM卡实网待机功耗 4.双SIM卡实网待机功耗 5.单SIM卡实网待机 + 数据连...

二极管常用

二极管常用术语: Junction Capacitance (CJ)结电容 Rectification Efficiency (ηV)整流效率 DC Forward Current (IF)正向直流电流  Average Forward Rectified Current (I(AV))正向平均整流电流 Peak Forward Surge Current...

典型的阻容降压电路

一、概述 将交流市电转换为低压直流的常规方法是采用变压器降压后再整流滤波,当受体积和成本等因素的限制时,最简单实用的方法就是采用阻容降压式电源。阻容降压包括电容降压和电阻降压两种。电容降压的原理用复函数来分析:电容的阻抗Xc=1/jωC,电容上的压降IXc,此处I为复函数电流。也可近似表示为IoXc,此处Io为负载电流。 电容降压整流后未经稳压的直流电压一...

锂电池电流单位C5A

C5A是一起的,是一个单位!C5A是描述一个电池本身容量标准中一个放电电流的单位,具体是直观意义是这电池在充满电状态下放电到2.75或者3V,用C5A这么大的电流,能放电5小时,那么C5A就代表的是这个放电电流,又可以简称1C电流。一个标称容量为700mAh的电池,那么它的1C5A就表示700mA,0.5C5A就表示350mA...

DP4054替代LTC405x系列500mA锂电池充电芯片

DP4054是一款单节锂离子电池恒流/恒压线性充电器,简单的外部应用电路非常适合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外部隔离二极管。热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。DP4054充电截止电压为4.2V,充电电流可通过外部电阻进行设置。当充电电流降至设定值的1/10时,...