前言:雖然有翻譯軟件货裹,雖然有chatgpt,畢竟語言隔閡铁材,對這個工具還是一知半解绎速,因此想通過翻譯的方式和大家來一起學習下Perfetto這個強大的工具
#####################以下分割線#####################
英文原文在這里
在 Android 上虾啦,Perfetto 綁定數(shù)據(jù)源锰扶,以從設(shè)備電源管理單元(如果支持)顯示電源計數(shù)器本谜。
電池計數(shù)器
此數(shù)據(jù)源已在 Android 10 (Q) 中引入初家,要求設(shè)備上存在電源管理硬件。這在大多數(shù)谷歌Pixel智能手機上都可用。
現(xiàn)代智能手機配備了功率監(jiān)控IC溜在,能夠測量流入和流出電池的電荷陌知。這允許Perfetto觀察整個設(shè)備(SoC,顯示器掖肋,通信基帶和所有其他硬件單元的結(jié)合)從電池中釋放的總電荷和瞬時電荷仆葡。
簡化框圖:
這些計數(shù)器報告:
- 剩余電池容量(以 % 為單位)。
- 剩余電池電量(以微安時 (μAh) 為單位)志笼。
- 瞬時(通常是小時間窗口內(nèi)的平均值)電流沿盅,單位為微安 (μA)
這些計數(shù)器的存在和分辨率取決于設(shè)備制造商。在平臺級別纫溃,此數(shù)據(jù)是通過輪詢Android IHealth HAL獲得的腰涧。有關(guān)硬件規(guī)格和分辨率的更多詳細信息,請參閱測量設(shè)備功率紊浩。
插入 USB 時測量電荷
電池計數(shù)器測量流入和流出電池的電荷窖铡。如果設(shè)備插入 USB 線,您可能會觀察到負瞬時電流和總電量增加坊谁,表示電荷流入電池(即充電)而不是流出万伤。
這可能會使實驗室環(huán)境中的測量出現(xiàn)問題。對此的已知解決方法是:
- 使用專用的USB集線器呜袁,允許從主機不再通過USB端口供電敌买。這允許在測試運行時不再充電。
- 在Root的手機上阶界,電源管理 IC 驅(qū)動程序允許斷開 USB 充電虹钮,同時保持 USB 數(shù)據(jù)鏈路處于活動狀態(tài)。此功能是 SoC的功能膘融,不是通用的芙粱,也不會通過任何 HAL 公開。例如氧映,在 Pixel 2 上春畔,在root 下運行: echo 1 > /sys/devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/battery/input_suspend。請注意岛都,在大多數(shù)設(shè)備中律姨,內(nèi)核 USB 驅(qū)動程序會保持喚醒鎖以保持 USB 數(shù)據(jù)鏈路處于活動狀態(tài),因此即使關(guān)閉屏幕臼疫,設(shè)備也永遠不會完全掛起择份。
UI
SQL
select ts, t.name, value from counter as c left join counter_track t on c.track_id = t.id
跟蹤配置
跟蹤原型:BatteryCounters
配置原型: AndroidPowerConfig
示例配置(安卓):
data_sources: {
config {
name: "android.power"
android_power_config {
battery_poll_ms: 250
battery_counters: BATTERY_COUNTER_CAPACITY_PERCENT
battery_counters: BATTERY_COUNTER_CHARGE
battery_counters: BATTERY_COUNTER_CURRENT
}
}
}
示例配置(Chrome OS 或 Linux):
data_sources: {
config {
name: "linux.sysfs_power"
}
}
設(shè)備電源軌監(jiān)視器 (ODPM)
此數(shù)據(jù)源已在 Android 10 (Q) 中引入,需要設(shè)備上的專用硬件烫堤。此硬件在大多數(shù)生產(chǎn)手機上尚不可用荣赶。
最新版本的 Android 在硬件子系統(tǒng)級別引入了對更高級電源監(jiān)控的支持凤价,稱為“設(shè)備上電源軌監(jiān)控器”(ODPM)。這些計數(shù)器測量(一組)硬件單元消耗的電量拔创。
與電池計數(shù)器不同利诺,它們不受電池充電/放電狀態(tài)的影響,因為它們測量電池下游的功率剩燥。
電源軌計數(shù)器的存在和分辨率取決于設(shè)備制造商立轧。在系統(tǒng)級別,這些數(shù)據(jù)是通過輪詢{Android IPowerStats HAL](https://cs.android.com/android/platform/superproject/+/main:hardware/interfaces/power/stats/1.0/IPowerStats.hal)獲得的躏吊。
Google員工:請參閱go/power-rails-internal-doc氛改,了解如何更改Pixel設(shè)備上的故障導(dǎo)軌選擇的說明。
簡化框圖:
跟蹤配置
跟蹤原型:PowerRails
配置原型:AndroidPowerConfig
示例配置:
data_sources: {
config {
name: "android.power"
android_power_config {
battery_poll_ms: 250
collect_power_rails: true
# Note: it is possible to specify both rails and battery counters
# in this section.
}
}
}
相關(guān)數(shù)據(jù)源
請參閱 CPU -> 頻率變化數(shù)據(jù)源
#####################以上分割線#####################
后記:
1 本次主要使用百度翻譯比伏,雖然被罵胜卤,但至少翻譯這個工具降低了門檻。
2 英文文檔中的長難句真的是又長又難赁项,基于百度的翻譯葛躏,然后自己再調(diào)整下,水平實在有限悠菜。
3 技術(shù)背景知識不夠舰攒,有些專有名詞不知道怎么翻譯,也不知道百度翻譯的是否準確悔醋,功夫在詩外摩窃。
4 萬事開頭難,中間難不難芬骄,還不知道猾愿。中間的事后面再說,正確一天翻譯一篇账阻。
5 雖然可能會有人不屑蒂秘,但總要有人去做不起眼的小事。
6 google 厲害淘太,這個perfetto 工具也很厲害姻僧。君子善假于物也。
7 工具的使用是最簡單的入門蒲牧,背后還有更多的東西值得學習撇贺。
8 水平實在有限,聞過則喜造成,希望有更多的人反饋显熏,期待更好的建議