功耗問題分析

2021-10-23 19:07:19 字數 3496 閱讀 4910

檢視是否休眠

adb root

adb shell cat /sys/power/system_sleep/stats > stats00.txt

adb shell cat /sys/power/rpmh_stats/master_stats > master_stats00.txt

移除usb,待機3分鐘後,插入usb

adb shell cat /sys/power/system_sleep/stats > stats11.txt

adb shell cat /sys/power/rpmh_stats/master_stats > master_stats11.txt

如果休眠過,其節點內的數值會改變,若沒有改變說明未成功睡眠

d/wakeup_sources節點可以檢視當前是否有未休眠的部分

功耗分析:

手機連線假電池,待綠燈亮後開機,然後設定電壓,調整到正確顯示範圍

關閉藍芽,wifi,抬起喚醒,觸屏喚醒等一系列功能,開啟飛行模式,息屏等待系統suspend

休眠後觀察波形以及平均電流,若出現異常,可從串列埠log以及上述節點著手分析。

若波形劇增,應考慮:

1.系統未休眠,可以通過/sys/power/system_sleep/stats節點中count值前後是否改變來判斷;

2.硬體漏電,可以拔掉硬體繼續觀察;

3.感測器反應,可以通過刺激感測器的方式判斷是否是其在作用,判斷出就是該感測器產生的干擾,盡量注意不去刺激感測器 或者直接移除感測器;

4.由於某些原因ap側停止休眠,可以檢視串列埠log是否恢復工作,如果串列埠log列印級別夠的話可以從log分析終止休眠的原因;

5.若以上現象都未出現,可以從/sys/power/rpmh_stats/master_stats節點來判斷,找出節點中休眠前後值未改變的部分,從該部分著手定位。

輸出battery log

adb shell dumpsys batterystats > batterystats.t

手機開機時間 搜尋關鍵字reset:time

battery history (101% used, 258kb used of 256kb, 103 strings using 10kb):

0 (26) reset:time: 2010-01-01-08-56-31

reset time: 表示手機開機時間是2023年1月1日上午8點56分

電量百分比

+14s977ms (2) 062 -top=1000:「android」 +14s977ms (2) 062 +top=u0a25:「com.tct.launcher」 +16s034ms (2) 062 +audio +17s179ms (2) 062 phone_state=off 每行第一列是時間,而且是相對時間。相對於1.1裡提到的手機開機時間 第二列不太清楚,作用不大,可以忽略 第三列是電量百分比 062代表62%

充電和不充電狀態 搜尋關鍵字status=

+5h17m21s015ms (3) 051 status=charging plug=usb volt=3802 +plugged brightness=medium

+5h17m21s015ms 這是相對時間,絕對時間是2010-01-01-08-56-31+5h17m21s015m = 下午兩點13分 051 代表電量51% status=charging 代表 下午兩點13分這個時間點正在充電, plug=usb 是usb充電

亮屏和滅屏狀態 搜尋關鍵字 brightness=

+1m02s904ms (2) 062 brightness=dark +1m02s904ms 代表時間 2010-01-01-08-56-31+1m02s904ms = 2010-01-01-08-57m-33s 062 代表電量62% brightness=dark 代表螢幕滅屏 +5h17m07s783ms (4) 051 +running +wake_lock=1000:「phonewindowmanager.mpowerkeywakelock」 +screen brightness=medium wake_reason=0:「unknown」 screenwake=1000:「android.policy:power」 051 代表電量51% brightness= medium 代表亮屏,螢幕亮度是medium狀態 只要brightness不是dark狀態都代表螢幕亮著

手機是否休眠狀態 搜尋關鍵字-running和+running · +2m45s859ms (1) 061 -running

061 代表電量61% -running 代表cpu進入休眠 +2m52s798ms (2) 061 +running wake_reason=0:「unknown」

061 代表電量61% +running 代表cpu退出休眠,正在執行

手機是否進入doze狀態 搜尋關鍵字device_idle=

0m34s785ms (2) 059 +running +wake_lock=1000:「walarm:deviceidlecontroller.light」 device_idle=off wake_reason=0:「abort:some devices failed to suspend, or early wake event detected」

device_idle=off 退出doze狀態 +1h20m42s766ms (2) 059 +running device_idle=light wake_reason=0:「unknown」 device_idle=light 進入light doze狀態

+1h20m42s766ms (2) 059 +running device_idle= full wake_reason=0:「unknown」 device_idle=full 進入deep doze狀態

wifi是否在開啟 搜尋關鍵字+wifi_running和- wifi_running

+40m09s967ms (1) 098 +wifi_running +wifi +40m10s152ms (1) 098 +wifi_scan -wifi_running -wifi +wifi_running wifi開啟 -wifi_running wifi關閉

是否打** 搜尋關鍵字+phone_in_call和-phone_in_call

+1h33m41s601ms (2) 091 +phone_in_call active=u0a95:「com.huawei.vdrive」 +1h34m16s780ms (3) 091 data_conn=hspap -phone_in_call +phone_in_call 開始打** -phone_in_call 結束通話**

相機是否開啟 搜尋關鍵字 +camera和-camera

+1h42m13s770ms (2) 088 +running +wake_lock=1000:"hwphonewindowmanager. mvolumedownwakelock " +mobile_radio +camera wake_reason=0:「unknown」 +1h42m14s776ms (2) 088 -camera +top=u0a68:「com.huawei.vassistant」 +camera 相機開啟 -camera相機關閉

Android功耗 高通功耗問題分析(3)

高通功耗問題分析 高通官方提供了一篇文件extensive power debug guide simplified chinese功耗除錯 pdf 用來分析中斷功耗問題。本文結合該文件簡單的總結了ap端功耗問題分析手段。首先是官方功耗分析流程圖 注意幾個關鍵的名詞 modem 數據機晶元 rpm ...

MTK 功耗分析

一 遇到有功耗的手機專案,首先刷個驅動軟體版本進行功耗測試作對比,看驅動版本是否存在該問題 當然mtk 既然把基線版本給出,他們內部肯定也是進行過嚴格測試認證,這個一般都是正常,但為了分析我們還是得進行測試,同樣的你在基線版本中合入了各模組的驅動 這樣做呢,目的就是確認是驅動版本本身軟體就有該功耗問...

功耗問題研究

簡單列舉如下研究及優化功耗的方法 1.通過穩壓電源給裝置供電,觀測瞬時電流,輸出電流變化曲線 裝置關閉螢幕 鍵盤燈 wifi和熱點 藍芽等所有外設,進入深度休眠以後 cpu停止供電後 電流可低至5 7ma 開啟熱點而沒有終端接入,cpu休眠後電流可低至60 70ma 若有接入但未使用網路,通常不會休...