Android功耗值測量

原文:https://source.android.com/devices/tech/power/values

設(shè)備制造商必須提供組件功耗配置文件/frameworks/base/core/res/res/xml/power_profile.xml

要測定電源配置文件的值,請使用測量設(shè)備使用功耗的硬件,并執(zhí)行所需信息的各種操作。測量這些操作期間的所用功耗并計(jì)算值(根據(jù)需要從其他基線所用功耗中獲得差異)。

由于功耗曲線的目標(biāo)是適當(dāng)?shù)毓烙?jì)電池消耗,因此功率曲線值以電流(安培)給出。Android Framework 將電流乘以子系統(tǒng)處于活動狀態(tài)的時(shí)間并計(jì)算mAh值,然后用于估計(jì)應(yīng)用程序/子系統(tǒng)耗盡的電池量。

具有運(yùn)行Android 7.0及更高版本的藍(lán)牙,modem和Wi-Fi控制器的設(shè)備可以提供從芯片組數(shù)據(jù)獲得的額外功耗值。

具有異構(gòu)CPU的設(shè)備

具有異構(gòu)體系結(jié)構(gòu)CPU核心的設(shè)備的電源配置文件必須包含以下附加字段:

  • 每個(gè)群集的CPU總數(shù)(以cpu.clusters.cores表示)。
  • 每個(gè)群集支持的CPU速度。
  • 每個(gè)群集的活動CPU功耗。

要區(qū)分群集的活動CPU功耗和支持的CPU速度,請將群集編號附加到陣列的名稱中。群集編號按內(nèi)核設(shè)備樹中CPU核的順序分配。例如,在具有兩(2)個(gè)具有四(4)個(gè)核的集群的異構(gòu)體系結(jié)構(gòu)中:

  • cluster0由cpu0-3組成
  • cluster1由cpu4-7組成

Android Framework從sysfs文件/sys/devices/system/cpu/cpu<number>/cpufreq/stats中讀取統(tǒng)計(jì)信息時(shí)需要用到這些CPU核編號。

集群CPU和速度的示例:

<array name="cpu.active.cluster0">
<value>200</value>
<value>300</value>
<value>400</value>
</array>
<array name="cpu.speeds.cluster0">
<value>600000</value>
<value>800000</value>
<value>1200000</value>
</array>

<array name="cpu.active.cluster1">
<value>400</value>
<value>500</value>
<value>600</value>
</array>
<array name="cpu.speeds.cluster1">
<value>800000</value>
<value>1200000</value>
<value>1400000</value>
</array>

功耗值

下表介紹了可用的功耗值設(shè)置。要查看AOSP中的示例文件,請參閱 power_profile.xml。

名稱 描述 示例值 備注
none 0 -
screen.on 屏幕以最小亮度打開時(shí)使用的額外功率。 200mA 含觸控和顯示背光。在0亮度,而不是Android最小值(接近10或20%)。
screen.full 與最小亮度的屏幕相比,屏幕處于最大亮度時(shí)使用的額外功率。 100mA-300mA 將該值的一小部分(基于屏幕亮度)被添加到screen.on值以計(jì)算屏幕的使用功耗。
wifi.on 打開Wi-Fi但未接收、傳輸或掃描時(shí)使用的額外功耗。 2mA -
wifi.active 使用Wi-Fi發(fā)送或接收時(shí)的額外功耗。 31mA -
wifi.scan 使用Wi-Fi掃描接入點(diǎn)時(shí)的額外功耗。 100mA -
dsp.audio 使用DSP進(jìn)行音頻解碼/編碼時(shí)的額外功率。 14.1mA 保留供將來使用。
dsp.video 使用DSP進(jìn)行視頻解碼時(shí)的額外功率。 54mA 保留供將來使用。
camera.avg 使用經(jīng)典相機(jī)應(yīng)用的相機(jī)子系統(tǒng)的平均功耗。 600mA 運(yùn)行預(yù)覽的應(yīng)用程序的粗略估計(jì),每分鐘捕獲大約10個(gè)全分辨率圖片。
camera.flashlight 打開相機(jī)閃光燈模塊時(shí)的平均功耗。 200mA -
gps.on 使用GPS獲取信號時(shí)的額外功耗。 50mA -
radio.active 使用蜂窩無線電發(fā)送/接收時(shí)的額外功耗。 100mA-300mA -
radio.scanning 使用蜂窩無線電尋呼塔時(shí)的額外功耗。 1.2mA -
radio.on 開啟蜂窩無線電時(shí)的額外功率。多值輸入,每個(gè)信號強(qiáng)度一個(gè)(無信號,弱,中等,強(qiáng))。 1.2mA 一些無線電設(shè)備在搜索蜂窩塔并且沒有檢測到信號時(shí)會增加功率。值可以相同或隨著信號強(qiáng)度的增加而減小。如果只提供一個(gè)值,則所有強(qiáng)度都使用相同的值。如果提供兩個(gè)值,第一個(gè)用于無信號,第二個(gè)值用于所有其他強(qiáng)度,依此類推。
bluetooth.controller.idle 空閑時(shí)藍(lán)牙控制器的平均電流消耗(mA)。 - 這些值不是估算的,而是取自控制器的數(shù)據(jù)表。如果存在多個(gè)接收或發(fā)送狀態(tài),則采用這些狀態(tài)的平均值。此外,系統(tǒng)現(xiàn)在為 低能耗(LE)和藍(lán)牙掃描收集數(shù)據(jù)。Android N及更高版本不再為bluetooth.active(通過藍(lán)牙A2DP播放音頻時(shí)使用)和bluetooth.on(藍(lán)牙開啟但空閑時(shí)使用)使用藍(lán)牙功耗值。
bluetooth.controller.rx 接收時(shí)藍(lán)牙控制器的平均電流消耗(mA)。 - -
bluetooth.controller.tx 發(fā)送時(shí)藍(lán)牙控制器的平均電流消耗(mA)。 - -
bluetooth.controller.voltage 藍(lán)牙控制器的平均工作電壓(mV)。 - -
modem.controller.idle 空閑時(shí)modem控制器的平均電流消耗(mA)。 - 這些值不是估算的,而是取自控制器的數(shù)據(jù)表。如果存在多個(gè)接收或發(fā)送狀態(tài),則采用這些狀態(tài)的平均值。
modem.controller.rx 接收時(shí)modem控制器的平均電流消耗(mA)。 - -
modem.controller.tx 發(fā)送時(shí)modem控制器的平均電流消耗(mA)。 - -
modem.controller.voltage modem控制器的平均工作電壓(mV)。 - -
wifi.controller.idle 空閑時(shí)Wi-Fi控制器的平均電流消耗(mA)。 - 這些值不是估算的,而是取自控制器的數(shù)據(jù)表。如果存在多個(gè)接收或發(fā)送狀態(tài),則采用這些狀態(tài)的平均值。
wifi.controller.rx 接收時(shí)Wi-Fi控制器的平均電流消耗(mA)。 - -
wifi.controller.tx 發(fā)送時(shí)Wi-Fi控制器的平均電流消耗(mA)。 - -
wifi.controller.voltage Wi-Fi控制器的平均工作電壓(mV)。 - -
cpu.speeds 多值輸入,以KHz列出每個(gè)可能的CPU速度。 125000KHz,250000KHz,500000KHz,1000000KHz,1500000KHz 條目的數(shù)量和順序必須與cpu.active中的mA條目相對應(yīng)。
cpu.idle 當(dāng)CPU(和SoC)處于系統(tǒng)休眠狀態(tài)時(shí)系統(tǒng)汲取的總功耗。 3mA -
cpu.awake CPU處于調(diào)度空閑狀態(tài)時(shí)的額外功耗(內(nèi)核空閑循環(huán)); 系統(tǒng)未處于系統(tǒng)休眠狀態(tài)。 50mA 您的平臺可能有多個(gè)閑置狀態(tài),使用不同的功耗水平; 為較長時(shí)間的調(diào)度程序空閑(幾毫秒)選擇代表性空閑狀態(tài)。檢查測量設(shè)備上的功率圖并選擇CPU處于最低功耗的樣本,丟棄CPU退出空閑時(shí)的較高樣本。
cpu.active CPU以不同速度運(yùn)行時(shí)的額外功耗。 100mA,120mA,140mA,160mA,200mA 值表示以不同速度運(yùn)行時(shí)CPU軌道使用的功耗。將內(nèi)核中的最大速度設(shè)置為允許的每個(gè)速度,并以該速度將CPU固定。條目的數(shù)量和順序?qū)?yīng)于cpu.speeds中條目的數(shù)量和順序。
cpu.clusters.cores 每個(gè)CPU群集包含的核數(shù)。 4,2 僅適用于具有異構(gòu)CPU架構(gòu)的設(shè)備。條目數(shù)和順序應(yīng)與cpu.active和cpu.speeds的集群條目數(shù)相匹配。第一個(gè)條目表示cluster0中的CPU核心數(shù),第二個(gè)條目表示cluster1中的CPU核心數(shù),依此類推。
電池容量 總電池容量,單位為mAh。 3000mAh的 -

低能耗(LE)和藍(lán)牙掃描

對于運(yùn)行Android 7.0的設(shè)備,系統(tǒng)會收集低能耗(LE)掃描和藍(lán)牙網(wǎng)絡(luò)流量(如RFCOMM和L2CAP)的數(shù)據(jù),并將這些活動與啟動應(yīng)用程序相關(guān)聯(lián)。藍(lán)牙掃描與啟動掃描的應(yīng)用程序相關(guān)聯(lián),但批量掃描不是(與藍(lán)牙應(yīng)用程序相關(guān)聯(lián))。對于掃描N毫秒的應(yīng)用程序,掃描的成本是n毫秒的rx時(shí)間和N毫秒的tx時(shí)間; 所有剩余控制器時(shí)間都分配給網(wǎng)絡(luò)流量或藍(lán)牙應(yīng)用程序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容