精华内容
下载资源
问答
  • 例如,待机功耗小于或等于30mW 的手机充电器属于最高星级,在其标签上印有五颗星。相反,如果待机功耗≤500 mW,则充电器标签上将无任何星级标记。为适应手机充电器的技术革新和发展,新进半导体制造有限公司(简称...
  • 做一个简单的数学计算,就很容易理解为什么政府机构和手机制造商突然积极致力降低手机充电器的待机功耗了:全球手机用户超过40亿,而其中大多数用户都习惯于即使在电池完全充满并拔掉手机之后,仍然让自己的充电器...
  • 例如,待机功耗小于或等于30mW 的手机充电器属于最高星级,在其标签上印有五颗星。相反,如果待机功耗≤500 mW,则充电器标签上将无任何星级标记。为适应手机充电器的技术革新和发展,新进半导体制造有限公司(简称...
  • 做一个简单的数学计算,就很容易理解为什么政府机构和手机制造商突然积力降低手机充电器的待机功耗了:手机用户超过40亿,而其中大多数用户都习惯于即使在电池完全充满并拔掉手机之后,仍然让自己的充电器保持连接...
  • 为适应手机充电器的技术革新和发展,新进半导体制造有限公司(简称BCD 半导体)于近期推出一种新的电源控制芯片AP3768,并基于AP3768 开发出全面满足能源之星外部电源2.0 标准和五星级标准的充电器方案。
  • 一直专注于开发高性能、高效率电源IC解决方案的 Power Integrations(简称PI)这次带来了多个重量级的解决方案,包括可满足五星级标准的手机充电器方案、高效率低待机功耗的电源方案、超薄笔记本电脑适配器、适合于...
  • 反激式电路结构通常用于低功率适配器的设计。在反激式设计中,市电输入在以高频开关之前将经由隔离变压器进行整流。对于这种设计结构,如果要求超高效率,设计师则会面临以下两大难题。
  • 做一个简单的数学计算,就很容易理解为什么政府机构和手机制造商突然积极致力降低手机充电器的待机功耗了:全球手机用户超过40亿,而其中大多数用户都习惯于即使在电池完全充满并拔掉手机之后,仍然让自己的充电器...
  • 一项新的需求进入手机制造商的考虑中,即手机可以有提供状态的LED提示,以便在待机的同时,提醒用户注意有未读消息、即将到来的
  • 反激式电路结构通常用于低功率适配器的设计。在反激式设计中,市电输入在以高频开关之前将经由隔离变压器进行整流。隔离变压器属于安全电源,一般用来机器维修保养用起保护、防雷、滤波作用。 隔离变压器是一种1/1的...
  • (Nasdaq: NXPI)今日宣布推出新一代GreenChip:trade_mark:电源解决方案,待机功耗低于10mW,为业界最低。 恩智浦GreenChip电源IC,也称为开关电源控制器IC,用于手机充电器、平板电脑等移动设备的适配器及家用电器或...
  • 电源适配器广泛应用于笔记本电脑、游戏机、打印机、DSL调制解调器和手机等领域,应用规模非常庞大。而从人们的使用习惯来看,这些设备也有相当比例的时间处于轻载或待机(空载)工作模式。
  • 举例而言, 数字电视的待机能耗在l~5W左右,机顶盒待机能耗20~40W左右,个人计算机和显示器待机能耗5~10W左右,手机充电器待机能耗0.5~1W左右。根据国际经济合作组织的一项调查称,各国因待机而消耗的能量约占...
  • 电源适配器广泛应用于笔记本电脑、游戏机、打印机、DSL调制解调器和手机等领域,应用规模非常庞大。而从人们的使用习惯来看,这些设备也有相当比例的时间处于轻载或待机(空载)工作模式。因此,“能源之星”等规范...
  • 举例而言, 数字电视的待机能耗在l~5W左右,机顶盒待机能耗20~40W左右,个人计算机和显示器待机能耗5~10W左右,手机充电器待机能耗0.5~1W左右。根据国际经济合作组织的一项调查称,各国因待机而消耗的能量约占...
  • 电源适配器广泛应用于笔记本电脑、游戏机、打印机、DSL调制解调器和手机等领域,应用规模非常庞大。而从人们的使用习惯来看,这些设备也有相当比例的时间处于轻载或待机(空载)工作模式。因此,“能源之星”等规范...
  • 统一推送标准的建立,对我国安卓智能手机有着重大的意义,目前除了苹果手机以外,国内的安卓手机的相关推送都是由软件自己来单独完成。特别是在安装了多个软件后,无论是社交软件收发消息,还是各种资讯推送,这...

    3月18日消息,来自泰尔实验室的数据显示,OPPO旗下的Find X2近日通过了“移动端高性能长连接”的测试,根据相关数据显示,这次OPPO Find X2的实验数据符合统一推送联盟标准中规定的指标要求。

    统一推送标准的建立,对我国安卓智能手机有着重大的意义,目前除了苹果手机以外,国内的安卓手机的相关推送都是由软件自己来单独完成。特别是在安装了多个软件后,无论是社交软件收发消息,还是各种资讯推送,这种“长连接”都会对手机待机能耗造成很大影响。

    29cf74790b30c0752887ccfd34241bc2.png

    所有APP与手机终端都需要基于“长连接”而进行数据交换,而手机最重要的长连接其实就是“推送通道”。此前工信部下属的泰尔终端实验室牵头成立了“统一推送联盟”,目前已经有7家手机厂商支持统一推送联盟的标准。在统一推送机制下,手机待机功耗将大大降低,同时流量的消耗也会很少,当然辐射量也会相应降低。

    根据OPPO公布的试验数据表明,在北京5G移动网络连接情况下,即使OPPO Find X2只安装了五个App,在统一推送的机制下,比软件自建的长连接节约了29.5%的待机功耗,而理论上,安装的软件越多,节约的流量也就越多。

    023fde597d5eedf83970d09285bbda05.png

    除了手机厂商以外,统一推送联盟还需要得到各大软件厂商的参与。

    bd2ed715941b8355b098ec58c60ef84f.png
    展开全文
  • 手机功耗测试

    2020-07-24 14:05:04
    2.飞行模式待机功耗 3.单SIM卡实网待机功耗 4.双SIM卡实网待机功耗 5.单SIM卡实网待机 + 数据连接功耗 6.单SIM卡待机 + WIFI/BT/GPS功耗 7.通话电流功耗 8.home界面idle电流功耗 9.home界面idle + 去掉背光和TP功耗 ...

    1.测试功耗手机配置
    2.飞行模式待机功耗
    3.单SIM卡实网待机功耗
    4.双SIM卡实网待机功耗
    5.单SIM卡实网待机 + 数据连接功耗
    6.单SIM卡待机 + WIFI/BT/GPS功耗
    7.通话电流功耗
    8.home界面idle电流功耗
    9.home界面idle + 去掉背光和TP功耗
    10.FM电流 (耳机模式)功耗
    11.BT传输数据功耗
    12.Audio - MP3 Play back (headset)功耗
    13.Video功耗
    14.Camera 功耗
    15.MTK 平台手机功耗提交注意事项

     

    1. 测试功耗手机配置

    测试功耗数据之前,请先确认以下配置:

    • 1.关闭WIFI/BT/GPS,关闭数据连接,设置飞行模式。 (根据具体测试场景设置)
    • 2.关闭 mobile log/modem log/net log,打开LOG会增加电流。注意:确认/sdcard/mtklog (/data/mtklog) 中是否有LOG生成,确定关闭成功。
    • 3.确认各个模块是否已经正常工作,各个模块都会影响功耗,需要在模块工作 OK 之后再测试功耗问题。
    • 4.测试将所有第三方 APK删除,排除第三方APK 问题。

    2.飞行模式待机功耗

    测试步骤:

    • 1.设置飞行模式,关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    电流异常需要提供 mobile log

    3.单 SIM卡实网待机功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    实网待机需要先确认网络问题及SIM卡问题:

    • 1.用其他对比机是否有同样问题
    • 2.同一手机在其他地点是否有问题
    • 3.其他SIM卡是否有同样问题

    电流异常需要提供 mobile log

    4.双SIM卡实网待机功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power 键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    实网待机需要先确认网络问题及SIM卡问题:

    • 1.用其他对比机是否有同样问题
    • 2.同一手机在其他地点是否有问题
    • 3.其他SIM卡是否有同样问题

    电流异常需要提供 mobile log

    5.单SIM卡实网待机 + 数据连接功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    实网待机需要先确认网络问题及SIM卡问题:

    • 1.用其他对比机是否有同样问题
    • 2.同一手机在其他地点是否有问题
    • 3.其他SIM卡是否有同样问题

    电流异常需要提供 mobile log

    6.单SIM卡待机 + WIFI/BT/GPS功耗

    测试步骤:

    • 1.关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    电流异常需要提供 mobile log

    7.通话电流功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.通话后灭屏,等待2分钟开始测试电流,测试时间5分钟

    Log提供

    电流异常需要提供mobile log

    8.home界面idle电流功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.拔掉SIM卡、SD
    • 4.保持在home界面,不开任何应用,设置自动灭屏时间为30分钟
    • 5.保持默认背光
    • 6.等待5分钟后开始测试电流,测试时间5~10分钟

    Log提供

    home界面电流和背光、TP、LCM有关,需要先确认去掉背光、TP、LCM电流,请看下一场景

    9.home界面idle + 去掉背光和TP功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.拔掉SIM卡、SD
    • 4.保持在home界面,不开任何应用,设置自动灭屏时间为30分钟
    • 5.拔掉LCMTP
    • 6.等待5分钟后开始测试电流,测试时间5~10分钟

    Log提供

    home界面电流异常需要抓CPU信息,(需要Eng版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供mobile log

    10.FM电流 (耳机模式)功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.打开FM后灭屏,等待2分钟后开始测试电流,测试时间5分钟

    Log提供

    • 1.FM SPEAKER模式 以及I2S 通道电流都会偏大,是正常的。
    • 2.FM电流异常需要同时提供 mobile log

    11.BT传输数据功耗

    测试步骤:

    • 1.关闭WIFI/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.传输5M大小文件,灭屏,测试电流

    Log提供

    • 1.BT传输电流异常需要抓CPU信息,(需要 Eng 版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供mobile log

    12.Audio - MP3 Play back (headset)功耗

    测试步骤:

    • 1.设置飞行模式
    • 2.关闭mobile log、modem log、net log
    • 3.播放mp3,灭屏,灭屏后等待2分钟,开始测试电流,测试时间2分钟

    Log提供

    • 1.播放MP3SD卡及音频文件有关,需要换SD卡及音频文件测试
    • 2.MP3电流异常需要同时提供mobile log

    13.Video功耗

    Video 功耗包含(MP4 (720P),MP4 (1080P),H.264 (720P),H.264 (1080P) )

    测试步骤:

    • 1.设置飞行模式
    • 2.关闭mobile log、modem log、net log
    • 3.播放video,播放后等待2分钟,开始测试电流,测试时间2分钟

    Log提供

    • 1.播放video电流和背光、TP、LCM有关,需要先确认去掉背光、TP、LCM电流
    • 2.播放video和播放器和视频文件有关,需要使用默认播放器及MTK提供的视频文件
    • 3.播放video电流异常需要抓CPU信息(需要Eng版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供 mobile log

    14.Camera 功耗

    Carmera功耗 包含( Video Record H264 (720 P)、 Preview (720 P))

    测试步骤:

    • 1.设置飞行模式
    • 2.关闭mobile log、modem log、net log
    • 3.打开preview,等待2分钟,开始测试电流,测试时间2分钟

    Log提供

    • 1.camera电流和拍摄场景及camera相关设置有关,对比测试时请尽量保持相同拍摄场景以及相同配置。
    • 2.preview电流异常需要抓CPU信息,(需要Eng版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供 mobile log

    15.MTK 平台手机功耗提交注意事项

    1.飞行模式底电流

    • A: 如果漏电小于10mA-------->同时提交HW/SW的eservice
    • B: 如果漏电大于10mA-------->提交SW的eservice

    2. 飞行模式平均电流-------->提交SW的eservice

    3.传导待机/通话功耗

    先保证飞行模式功耗正常

    • A: 如果某些band有问题(比如2g fail,3/4g ok)-------->提交RF的eservice
    • B: 如果所有的band都有问题-------->提交SW的eservice

    4.实网待机/通话功耗

    先保证传导功耗正常

    • A: 如果联网/选网/通话功能存在异常(modem不正常)-------->提交RF的eservice
    • B: 如果正常附着网络各项功能正常-------->提交SW的eservice

    5. wireless connecivity相关功耗问题(wifi,BT,GPS,FM,NFC)

    • A: 如果打开飞行模式,再单独打开其中某个模块功耗异常-------->提交SW的eservice(标题里写明是哪个模块的功耗问题,比如“wifi功耗”)

    • B: 如果只有在关闭飞行模式的情况下,功耗才会异常(说明跟modem有一定关联)-------->按照 步骤4 的流程处理

    • C: 如果涉及某个模块的非常专业的测试(其他模块的人可能看不懂)-------->提交SW的eservice (标题里写明测试项,比如“wifi XXX测试”)

    展开全文
  • 举例而言, 数字电视的待机能耗在l~5W左右,机顶盒待机能耗20~40W左右,个人计算机和显示器待机能耗5~10W左右,手机充电器待机能耗0.5~1W左右。根据国际经济合作组织的一项调查称,各国因待机而消耗的能量约占...
  • 电源适配器广泛应用于笔记本电脑、游戏机、打印机、DSL调制解调器和手机等领域,应用规模非常庞大。而从人们的使用习惯来看,这些设备也有相当比例的时间处于轻载或待机(空载)工作模式。因此,“能源之星”等规范...
  • 电源适配器广泛应用于笔记本电脑、游戏机、打印机、DSL调制解调器和手机等领域,应用规模非常庞大。而从人们的使用习惯来看,这些设备也有相当比例的时间处于轻载或待机(空载)工作模式。因此,“能源之星”等规范...
  • Android手机功耗

    2019-09-28 20:13:08
    本篇文章主要介绍手机开发中的功耗部分知识点,功耗直接影响到手机待机时间,通过阅读本篇文章,您将收获以下内容: 一、手机功耗问题浅析博文 二、Sleep 、suspend 三、SPM (System Power Manager) 四、Deep idle...

    strip

    strip

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

    1240

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

    一、手机功耗问题浅析博文
    二、Sleep 、suspend
    三、SPM (System Power Manager)
    四、Deep idle
    五、SODI (screen on deep idle)
    六、systrace/ftrace
    七、wireshark
    八、layerdump
    九、如何确定阻止进入suspend的原因
    十、如何分析wakelock(wakeup source)持锁问题
    十一、如何看SPM的状态是否正确
    十二、如何查找待机唤醒源
    十三、如何找到阻止进入deep idle / SODI的元凶

    一、手机功耗问题浅析博文

    手机功耗问题直接影响到手机的待机时长,因此,解决功耗篇问题对于智能机十分必要。
    之前有写过一个功耗浅析的文章,可以先参考下:
    手机功耗问题浅析博文

    二、Sleep 、suspend

    这里的suspend确切的说是MCU(ARM )suspend,也就是cpu进入Wait for interrupt 状态(WFI);因为对整个系统来说,CPUWFI是整个系统睡眠的先决条件,我们debug也是从CPU是否进入WFI开始,从Linux的角度来说,CPU进入suspend就是SW完全不跑了,停在suspend workqueue里面。

    从灭屏到CPU进入suspend的大体流程框架如下:

    从灭屏到CPU进入suspend的大体流程框架

    相关code路径:

    /frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java
    
    /frameworks/base/services/core/jni/com_android_server_power_PowerManagerService.cpp
    
    /system/core/libsuspend/
    
    /kernel-x.x/kernel/power/

    三、SPM (System Power Manager)

    因为整个系统不只是AP(MCU),还包括modem、connectivity等子系统;
    CPU 进入 WFI 后,整个系统就依靠一颗 SCP:SPM 来控制睡眠/唤醒的流程,它会去关注各个子系统的状态

    SPM =System Power Manager
    它掌控着cpu suspend之后系统是否能掉到最小电流的关键逻辑,你可以把它理解成一个投票机制,当系统的关键资源(memory、clock)没有任何人使用的时候,它就会让系统进入一个真正的深睡状态(最小电流)只要它检测到有任何资源请求还没释放,系统就无法降到底电

    所以在底电问题上的debug流程中,我们不仅仅要看cpu有没有suspend成功,还要看SPM的状态是否正确,SPM里面有一个可编程控制器PCM(Programmable Command Master)CPU在进去WFI之前会把SPMfirmware写入PCM,然后PCM就依据firmware的逻辑来控制SPM的工作

    SPM强相关的一个东西就是系统中的时钟请求信号,也就是26M时钟开关的控制逻辑;因为系统工作在最小电流的时候,SPM只依靠32K时钟工作;因此要判断系统是不是已经到深睡状态,就要看26M有没有关闭

    26M时钟的控制逻辑概要如下图

    26M 时钟控制逻辑

    所以从上图我们就可以看到, 26M有没有关,就只要看SCLKENA这个信号有没有关闭;而SPM对这个信号的输出以及子系统的信号输入,都会记录在SPM的寄存器里面,这个就是我们通过log排查的依据

    代码路径
    /kernel-x.x/drivers/misc/mediatek/base/power/spm_vx/

    四、Deep idle

    Deep idle 基本概念

    首先顾名思义,这是一种CPU进入空闲后的状态,也就是在idle进程中执行的

    简单地说,Mediatek会在CPU进入空闲的情况下,再去关闭一些不必要的power domain,以达到最省电的目的,因为CPU空闲的时候,其实系统中有不少的domain也是不需要运行的,不这样做的话,就仅仅是CPU这块的电省下来 ,达不到省电的目的。

    Mediatek的做法是在CPU在进入idle进程后,会去判断当前系统的状态是否满足进入更省电状态的条件,首先就会检查是否能进入deep idle,因为dpidle最省电

    系统进入dpidle需要满足的条件是

    • 单核(BY_CPU)
    • 预设的能block deep idle的所有clock都已经关闭(BY_CLOCK)
    • CPU在2ms内没有从idle task调度出去的需求(BY_TMR)
    • BY_VTG / BY_OTH的case很少(BY_OTH在个别平台跟TEE(SPI指纹模块)有关)

    我们可以从波形上检查系统是否进入deep idle

    下图中电流的底部就是deep idle的状态,在MP3播放的状态大约20mA
    如果没有进deep idle,这个底部会被抬高

    deep idle的状态

    deep idle也是由SPM来控制它的执行逻辑,跟suspend一样,CPU在进去WFI之前会把SPMfirmware写入PCM,这个firmwaresuspend是完全不一样的。

    五、SODI (screen on deep idle)

    SODI:Screen On Deep Idle
    SODIdeep idle类似,是SPM的另外一种工作模式.SODI的进入条件跟 deep idle是类似的,区别只是要检查的clockdeep idle不完全一样 ,SODIdisplay功耗的影响相对于CMD / VDO mode是不一样的

    前面讲过了CMD / VDO的差别,其实就很容易理解这一点:因为CMD mode下,CPU不用送数据出去,因此MIPI clock可以不用送,这整条clock路径上的东西(PLL/clock)都可以关闭,而且memory跟VDO相比也可以做更多省电的action;所以SODICMD mode的省电效果会比VDO的效果更明显,是否进入SODI也可以从波形上明显地看到:

    下图示SODI enable/disableidle mode波形比较

    CMD mode:SODI on(左) vs SODI off(右)

    CMD mode

    VDO mode:SODI on(左) vs SODI off(右)

    VDO mode

    重点关注波形的形状,电流下降的数值不同平台不一样

    六、systrace/ftrace

    systrace/ftrace 也是我们分析功耗问题常用的工具,systrace/ftrace可以帮你定位到是谁在使用CPU,也可以用来分析idle状态下的毛刺波形是谁触发的,来定位root cause

    七、wireshark

    为什么要使用wireshark
    wireshark是我们用来分析netlog的一个工具.通常用来定位开数据连接的待机功耗问题,查找是哪个APP/Process在使用数据.wireshark可以在公共网络上下载到,一般公司负责协议/TCP/Wifi这些部门也会有这个工具

    怎么使用wireshark
    首先需要在抓log时,打开mtklog中的netlog,就可以找到netlog对应的文件
    netlog

    wireshark打开这个.cap文件,界面如下

    用wireshark打开这个.cap文件

    有时候最前面的【时间戳】格式会不对,会跟mobile log对不上,如果遇到了,可以通过如下菜单调整[View]->[Time Display Format]

    时间戳格式

    八、layerdump

    查看图层的adb 命令:
    adb shell dumpsys SurfaceFlinger

    下面是launcher界面的图层:

    launcher的图层

    九、如何确定阻止进入suspend的原因

    系统没有进入suspend,主要的原因是 因为系统有锁导致.

    锁一般分为:

    • APP通过PowerManager拿锁,
    • 以及kernel wakelock.

    分析上层持锁的问题:
    目前PowerManagerService的log 默认不会打开,可以通过修改:
    /frameworks/base/services/core/java/com/android/server/power/PowerManagerService.java

        private static final boolean DEBUG = true;
        private static final boolean DEBUG_SPEW = DEBUG && false;
    修改为:
        private static final boolean DEBUG = true;
        private static final boolean DEBUG_SPEW = true;
    打开上层的log

    通过syslog:搜索关键字:total_time= 来确定持锁的时间.

    PowerManagerService: releaseWakeLockInternal: lock=31602562 
    [job/DownloadManager:com.android.providers.downloads], flags=0x0, 
    total_time=600051ms

    十、如何分析wakelock(wakeup source)持锁问题

    kernel的锁默认不会打印出来,一般是待机结束后通过节点来获取:
    adb shell cat /sys/kernel/debug/wakeup_sources > wakeup_sources.log
    名称|解释
    ----|----
    active_count:|对应wakeup source被激活的次数.
    event_count:|被信号唤醒的次数
    wakeup_count:|中止suspend的次数.
    expire_count:|对应wakeup source超时的次数.
    active_since:|上一次还活跃的时间点.时间单位跟kernel log前缀时间是一样(kernel单调递增时间).
    total_time:|对应wakeup source活跃的总时长.
    max_time:|对应的wakeup source持续活跃最长的一次时间.
    last_change:|上一次wakeup source变化的时间(从持锁到释放or释放到持锁),时间单位跟kernel log前缀时间是一样(kernel单调递增时间).
    prevent_suspend_time:|对应wakeup source阻止进入autosleep的总累加时间.

    一般情况下:
    如果是复现机,前面没有捉log,也没有dump log,只有一份wakeup_sources.log
    可以看下prevent_suspend_time,一般时间越大越可能是阻止系统进入suspendwakeup sources.

    如果测试前后,都有捉 wakeup_sources.log 请对比两份wakeup_sources.logtotal time的差值.
    差值时间跟灭屏的时间对得上,一般就是这个锁引起的问题.

    比两份wakeup_sources.log的total time的差值

    把捉出来的wakeup_sources.log复制到excel表格中,比较好对齐,一个是比较好计算.

    image.png

    其中dispsys_wakelock,total_time的时间有697614mS 也就是总共有697s.

    image.png

    或者在待机测试结束后通过命令:
    adb bugreport > bugreport.txt

    底层的锁:

    All kernel wake locks: 
    Kernel Wake lock ttyC0 : 1h 33m 15s 668ms (3856 times) realtime 
    Kernel Wake lock radio-interface: 1h 20m 56s 210ms (3995 times) realtime 
    Kernel Wake lock ccci3_at : 1h 9m 43s 491ms (2932 times) realtime 
    Kernel Wake lock ccci_fs : 1h 0m 52s 818ms (3432 times) realtime 
    Kernel Wake lock ccci3_at2 : 41m 16s 938ms (2465 times) realtime

    上层的锁:

    All partial wake locks: 
    Wake lock 1001 RILJ: 5m 29s 768ms (13118 times) realtime 
    Wake lock 1000 *alarm*: 4m 7s 823ms (2330 times) realtime 
    Wake lock 1000 ConnectivityService: 59s 513ms (1 times) realtime 
    Wake lock u0a111 *alarm*: 50s 334ms (751 times) realtime 
    Wake lock u0a111 WakerLock:999603354: 28s 655ms (125 times) realtime 
    Wake lock 1000 NetworkStats: 11s 434ms (569 times) realtime

    十一、如何看SPM的状态是否正确

    待机被唤醒之后,确认:大部分debug_flag最后的bit位是不是 f or ff, 说明系统还有模块咬住26M,系统并没有最后进入真正的suspend.

    譬如下面的log 最后bit 位是 0 都是有问题的:

    <4>[ 250.874040] -(0)[1244:system_server][SPM] wake up byCONN2AP, timer_out = 8635, r13 = 0x20045038, debug_flag = 0x9 0

    <4>[ 600.704307] -(0)[2722:system_server][SPM] wake up by R12_EINT_EVENT_B, timer_out = 81779, r13 = 0xe040000, debug_flag = 0x113f0

    十二、如何查找待机唤醒源

    系统场景的唤醒源如下:

    • EINT
    • CONN
    • CLDMA

    EINT:

    PMIC的唤醒.

    • a.Powerkey
      唤醒后面的log会有 pwrkey_int_handler

    • b. rtc alarm
      唤醒后面的log会有 alarm time is up

    rtc alarm

    具体类型的唤醒包,可以确认:
    syslog里面搜索关键字 wakeup alarm:

    01-25 01:23:04.026 830 898 D AlarmManager: wakeup alarm = Alarm{3e671462 type 2 when 27213196 com.android.phone}; package = com.android.phoneneedGrouping = true

    一般alarm的唤醒,除了第三方APK之外,有时会遇到类似android/phone APK的唤醒.
    确认具体android的唤醒的原因,需要确定唤醒后,紧接着发下来的intent事件.

    01-24 19:50:30.031 830 898 D AlarmManager: wakeup alarm = Alarm{9ba1b41 type 2 when 7259546 android}; package = androidneedGrouping = false 01-24 19:50:30.031 830 898 V ActivityManager: Broadcast: Intent { act=android.content.syncmanager.SYNC_ALARM· flg=0x114 (has extras) } ordered=true userid=0 callerApp=null·

    搜索:android.content.syncmanager.SYNC_ALARM ,可以定位到:/frameworks/base/services/core/java/com/android/server/content/SyncManager.java
    进一步找对应owner确认.

    phone apk的唤醒:

    数据网络的定时恢复.

    • c. others

    kernel log有关键字:**EINT.*is pending**
    序号:206,EINT 206 is pending,需要结合DCT跟cat /proc/interrupts

    1.通过DCT:

    通过DCT

    2.cat /proc/interrupts :pmic-eint对应的序号是150.

    289: 149 mt-eint 1 TOUCH_PANEL-eint
    291: 0 mt-eint 3 11240000.msdc1 cd
    294: 0 mt-eint 6 ALS-eint
    295: 0 mt-eint 7 mrdump_ext_rst-eint
    314: 73 mt-eint 26 irq_nfc-eint
    332: 246 mt-eint 44
    432: 0 mt-eint 144 iddig_eint
    438: 341 mt-eint **150** pmic-eint
    440: 0 mt-eint 152 spm_vcorefs_start_eint
    441: 0 mt-eint 153 spm_vcorefs_end_eint
    442: 0 mt-eint 154 spm_vcorefs_err_eint
    
    <5>[30640.939329] -(0)[1191:system_server]EINT **150** is pending
    ......
    <3>[30640.942131] (0)[69:pmic_thread]kpd: Power Key generate, pressed=1
    <3>[30640.942189] (0)[69:pmic_thread]kpd: kpd: (pressed) HW keycode =116 using PMIC

    CLDMA:
    确认唤醒的channel ID关键字CLDMA_MD, wakeup source
    CLDMA 唤醒源确认

    常用的唤醒的channel:

    [channel 10]
    channel 10

     常见的AT command的唤醒:参考下面【常见AT 命令解析】
    命令|解释
    ----|----
    AT +ECOPS|PLMN信息变化.
    搜网的次数  | AT: CREG   CGREG   (一个是CS,一个是PS)
    网络PDP状态变化的次数   |AT:CGEV  (PDN activate/deactivate)
    VOLTE功能导致唤醒的次数      |   AT: CIREPI   CIREPH CNEMS1  CIREG EIMS
    LTE数据连接|AT: EDRBSTATE

    [channel 14]
    一般是跟channel10一起产生,modem小区消息变化,会记录小区的信息到nvram.

    [channel20/24]
    数据连接的唤醒.

    channel20/24

    使用winshark打开netlog:

    winshark

    main log里面搜索IP 地址:

    112.17.251.148
    01-06 21:47:58.060   313 25080 D libc-netbsd: res_queryN name =** push.hexin.cn **succeed
    01-06 21:47:58.060 25056 25081 I AppStore.StorageManager: ab:e:150407-372=>in removeSpuriousFiles
    01-06 21:47:58.060 21561 25079 D libc-netbsd: getaddrinfo: push.hexin.cn get result from proxy >>
    01-06 21:47:58.060 21561 25079 I System.out: [propertyValue:true](http://propertyvaluetrue/)
    01-06 21:47:58.061 21561 25079 I System.out: [CDS]connect[[**push.hexin.cn**/112.17.251.148:8887](http://push.hexin.cn/112.17.251.148:8887)] tm:90

    [channel32]
    modem SIM driver获取sim GPIO状态所造成的唤醒. 这部分情况比较少,确认review贵司sim driver是否有相关的design.

    [channel34]
    WIFI4G有部分频段是重叠的,modem需要把频段的信息通知WIFI所造成的唤醒. 这部分属于正常的design.

    [channel55]
    VOLTE网络的唤醒.

    [channel6/42]
    这是打开modem log造成的,分析功耗问题除非发现跟modem有关系,否则捉log时,不要打开modem log

    具体的channel 对应的定义可以参考:

    N版本:

      N版本:
     /kernel-4.4/drivers/misc/mediatek/eccci/ccci_core.h 
    
      M版本:
     /kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt_ccci_common.h 
    
      L版本:
     /kernel-3.10/include/mach/mt_ccci_common.h

    L版本:
    /kernel-3.10/include/mach/mt_ccci_common.h

    [channel 14与10]常见AT 命令解析,注意红色字体部分字段

    网络切换状态AT:

    命令1:AT+EDRBSTATE
    
    命令2:AT< +COPS(运营商信息)
    
    命令4: AT< +CGREG
    
    命令6:AT+EGTYPE(attach状态)
    
    命令8:AT+EI3GPPIRAT(C2K切网)

    信号强度相关AT:

    命令7:AT< +ECSQ(信号强度)

    网络注册状态AT:

    命令3:AT< +CREG(NEWORK REGISTER)
    
    命令4: AT< +CGREG

    网络VOLTE支持情况上报:

    命令5:AT+CIREP (IMS网络支持情况)

    十三、如何找到阻止进入deep idle / SODI的元凶

    1240

    image.png

    如果是由于CLOCK 卡住,请参考下面的flow:

    Debug节点:/sys/kernel/debug/cpuidle/

    -rw-r--r-- 1 root root 0 1970-01-01 00:00 dpidle_state
    -rw-r--r-- 1 root root 0 1970-01-01 00:00 idle_state
    -rw-r--r-- 1 root root 0 1970-01-01 00:00 mcidle_state
    -rw-r--r-- 1 root root 0 1970-01-01 00:00 reg_dump
    -rw-r--r-- 1 root root 0 1970-01-01 00:00 slidle_state
    -rw-r--r-- 1 root root 0 1970-01-01 00:00 soidle3_state
    -rw-r--r-- 1 root root 0 1970-01-01 00:00 soidle_state

    从节点中确认:/sys/kernel/debug/cpuidle/dpidle_state

    1240

    其中dpidle_block_mask里面的数值对应的bit位为1的,代表对应的clock卡住系统进入省电idle了.
    从上图看:

    INFRA 的CG group占用的clock是从bit 0到bit31
    
    PERI 的CG group 占用的clock是从bit32 到bit63
    
    DISP0的CG group 占用的clock是从bit64到bit95

    以此类推

    N版本对应平台的clock ID:

    6735/6737:
    kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6735/include/mach/mt_clkmgr1_legacy.h
    6735M:
    kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6735/include/mach/mt_clkmgr2.h
    6753:
    kernel-3.18/drivers/misc/mediatek/include/mt-plat/mt6735/include/mach/mt_clkmgr3.h

    cg_clk_id

    enum cg_clk_id {
    MT_CG_INFRA_DBGCLK = 0,
    MT_CG_INFRA_GCE = 1,
    MT_CG_INFRA_TRBG = 2,
    MT_CG_INFRA_CPUM = 3,
    MT_CG_INFRA_DEVAPC = 4,
    MT_CG_INFRA_AUDIO = 5,
    MT_CG_INFRA_GCPU = 6,
    MT_CG_INFRA_L2C_SRAM = 7,
    MT_CG_INFRA_M4U = 8,
    MT_CG_INFRA_CLDMA = 12,

    1240

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

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

    转载于:https://www.cnblogs.com/wangjie1990/p/11326993.html

    展开全文
  • Android 手机功耗测试方案

    千次阅读 2018-05-15 10:36:59
    极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备...2.飞行模式待机功耗 3.单SIM卡实网待机功耗 4.双SIM卡实网待机功耗 5.单SIM卡实网待机 + 数据连接功耗 6.单SIM卡待机...

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

     

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

    1.测试功耗手机配置
    2.飞行模式待机功耗
    3.单SIM卡实网待机功耗
    4.双SIM卡实网待机功耗
    5.单SIM卡实网待机 + 数据连接功耗
    6.单SIM卡待机 + WIFI/BT/GPS功耗
    7.通话电流功耗
    8.home界面idle电流功耗
    9.home界面idle + 去掉背光和TP功耗
    10.FM电流 (耳机模式)功耗
    11.BT传输数据功耗
    12.Audio - MP3 Play back (headset)功耗
    13.Video功耗
    14.Camera 功耗
    15.MTK 平台手机功耗提交注意事项

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

    微信公众号:ProgramAndroid

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

    1. 测试功耗手机配置

    测试功耗数据之前,请先确认以下配置:

    • 1.关闭WIFI/BT/GPS,关闭数据连接,设置飞行模式。 (根据具体测试场景设置)
    • 2.关闭 mobile log/modem log/net log,打开LOG会增加电流。注意:确认/sdcard/mtklog (/data/mtklog) 中是否有LOG生成,确定关闭成功。
    • 3.确认各个模块是否已经正常工作,各个模块都会影响功耗,需要在模块工作 OK 之后再测试功耗问题。
    • 4.测试将所有第三方 APK删除,排除第三方APK 问题。

    2.飞行模式待机功耗

    测试步骤:

    • 1.设置飞行模式,关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    电流异常需要提供 mobile log

    3.单 SIM卡实网待机功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    实网待机需要先确认网络问题及SIM卡问题:

    • 1.用其他对比机是否有同样问题
    • 2.同一手机在其他地点是否有问题
    • 3.其他SIM卡是否有同样问题

    电流异常需要提供 mobile log

    4.双SIM卡实网待机功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power 键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    实网待机需要先确认网络问题及SIM卡问题:

    • 1.用其他对比机是否有同样问题
    • 2.同一手机在其他地点是否有问题
    • 3.其他SIM卡是否有同样问题

    电流异常需要提供 mobile log

    5.单SIM卡实网待机 + 数据连接功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    实网待机需要先确认网络问题及SIM卡问题:

    • 1.用其他对比机是否有同样问题
    • 2.同一手机在其他地点是否有问题
    • 3.其他SIM卡是否有同样问题

    电流异常需要提供 mobile log

    6.单SIM卡待机 + WIFI/BT/GPS功耗

    测试步骤:

    • 1.关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.按power键灭屏,灭屏5分钟后,开始测试电流,测试时间5 ~ 10分钟

    Log提供

    电流异常需要提供 mobile log

    7.通话电流功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.通话后灭屏,等待2分钟开始测试电流,测试时间5分钟

    Log提供

    电流异常需要提供mobile log

    8.home界面idle电流功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.拔掉SIM卡、SD
    • 4.保持在home界面,不开任何应用,设置自动灭屏时间为30分钟
    • 5.保持默认背光
    • 6.等待5分钟后开始测试电流,测试时间5~10分钟

    Log提供

    home界面电流和背光、TP、LCM有关,需要先确认去掉背光、TP、LCM电流,请看下一场景

    9.home界面idle + 去掉背光和TP功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.拔掉SIM卡、SD
    • 4.保持在home界面,不开任何应用,设置自动灭屏时间为30分钟
    • 5.拔掉LCMTP
    • 6.等待5分钟后开始测试电流,测试时间5~10分钟

    Log提供

    home界面电流异常需要抓CPU信息,(需要Eng版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供mobile log

    10.FM电流 (耳机模式)功耗

    测试步骤:

    • 1.关闭WIFI/BT/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.打开FM后灭屏,等待2分钟后开始测试电流,测试时间5分钟

    Log提供

    • 1.FM SPEAKER模式 以及I2S 通道电流都会偏大,是正常的。
    • 2.FM电流异常需要同时提供 mobile log

    11.BT传输数据功耗

    测试步骤:

    • 1.关闭WIFI/GPS,关闭数据连接
    • 2.关闭mobile log、modem log、net log
    • 3.传输5M大小文件,灭屏,测试电流

    Log提供

    • 1.BT传输电流异常需要抓CPU信息,(需要 Eng 版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供mobile log

    12.Audio - MP3 Play back (headset)功耗

    测试步骤:

    • 1.设置飞行模式
    • 2.关闭mobile log、modem log、net log
    • 3.播放mp3,灭屏,灭屏后等待2分钟,开始测试电流,测试时间2分钟

    Log提供

    • 1.播放MP3SD卡及音频文件有关,需要换SD卡及音频文件测试
    • 2.MP3电流异常需要同时提供mobile log

    13.Video功耗

    Video 功耗包含(MP4 (720P),MP4 (1080P),H.264 (720P),H.264 (1080P) )

    测试步骤:

    • 1.设置飞行模式
    • 2.关闭mobile log、modem log、net log
    • 3.播放video,播放后等待2分钟,开始测试电流,测试时间2分钟

    Log提供

    • 1.播放video电流和背光、TP、LCM有关,需要先确认去掉背光、TP、LCM电流
    • 2.播放video和播放器和视频文件有关,需要使用默认播放器及MTK提供的视频文件
    • 3.播放video电流异常需要抓CPU信息(需要Eng版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供 mobile log

    14.Camera 功耗

    Carmera功耗 包含( Video Record H264 (720 P)、 Preview (720 P))

    测试步骤:

    • 1.设置飞行模式
    • 2.关闭mobile log、modem log、net log
    • 3.打开preview,等待2分钟,开始测试电流,测试时间2分钟

    Log提供

    • 1.camera电流和拍摄场景及camera相关设置有关,对比测试时请尽量保持相同拍摄场景以及相同配置。
    • 2.preview电流异常需要抓CPU信息,(需要Eng版本 300s 内top 10 进程 adb shell cputime -e 300 -m 10),需要同时提供 mobile log

    15.MTK 平台手机功耗提交注意事项

    1.飞行模式底电流

    • A: 如果漏电小于10mA-------->同时提交HW/SW的eservice
    • B: 如果漏电大于10mA-------->提交SW的eservice

    2. 飞行模式平均电流-------->提交SW的eservice

    3.传导待机/通话功耗

    先保证飞行模式功耗正常

    • A: 如果某些band有问题(比如2g fail,3/4g ok)-------->提交RF的eservice
    • B: 如果所有的band都有问题-------->提交SW的eservice

    4.实网待机/通话功耗

    先保证传导功耗正常

    • A: 如果联网/选网/通话功能存在异常(modem不正常)-------->提交RF的eservice
    • B: 如果正常附着网络各项功能正常-------->提交SW的eservice

    5. wireless connecivity相关功耗问题(wifi,BT,GPS,FM,NFC)

    • A: 如果打开飞行模式,再单独打开其中某个模块功耗异常-------->提交SW的eservice(标题里写明是哪个模块的功耗问题,比如“wifi功耗”)

    • B: 如果只有在关闭飞行模式的情况下,功耗才会异常(说明跟modem有一定关联)-------->按照 步骤4 的流程处理

    • C: 如果涉及某个模块的非常专业的测试(其他模块的人可能看不懂)-------->提交SW的eservice (标题里写明测试项,比如“wifi XXX测试”)

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

    如有侵权,请联系小编,小编对此深感抱歉,届时小编会删除文章,立即停止侵权行为,请您多多包涵。

    既然都看到这里,领两个红包在走吧!
    以下两个红包每天都可以领取

    1.支付宝搜索 522398497,或扫码支付宝红包海报。

    支付宝扫一扫,每天领取大红包

    2.微信红包,微信扫一扫即可领取红包

     

    微信扫一扫,每天领取微信红包

    小礼物走一走,来简书关注我

    展开全文
  • 飞行模式待机功耗3.单SIM卡实网待机功耗4.双SIM卡实网待机功耗5.单SIM卡实网待机 + 数据连接功耗6.单SIM卡待机 + WIFI/BT/GPS功耗7.通话电流功耗8.home界面idle电流功耗9.home界面idle + 去掉背光和TP功耗10.FM电流 ...
  •  Justin Rattner在采访:"目前我们Moorestown处理器在待机功耗上已经和ARM芯片持平,而下一代Medfield则会在工作状态功耗方面赶上竞争对手。在那之后我们就会和他们拉开差距,因为我们拥有根本性技术优势。"  本月...
  • 手机功耗问题浅析

    千次阅读 2018-06-27 14:20:16
    极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 ...2.正常待机功耗简介 3.最干净的待机电流波形 4.通过唤醒源理清正常待机问题 5.Audio Playback 功耗问题 6.Display ...
  • 对于移动设备来说不谈功耗的性能没有什么意义。不过对于Intel来说,Medfield...Intel在CES展台利用Medfield公版设备运行了一些测试,数据大概为:待机功耗为20mW左右,拨打3G呼叫时约750mW,3G上网浏览时功耗约1W。Int

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 186
精华内容 74
关键字:

手机待机功耗