測量裝置功率

您可以確定包含電池電量計的 Android 裝置的功耗,例如 Summit SMB347 或 Maxim MAX17050(許多 Nexus 裝置上都有)。當外部測量設備不可用或不方便連接到設備時(例如在行動使用中),請使用系統內儀表。

測量可以包括瞬時電流、剩餘電量、測試開始和結束時的電池容量等,具體取決於設備支援的屬性(見下文)。為了獲得最佳結果,請在長時間運行的 A/B 測試期間執行設備功率測量,這些測試使用相同的設備類型、相同的電量計和相同的電流檢測電阻。確保每個設備的起始電池電量相同,以避免電池放電曲線中不同點的電量計表現不同。

即使使用相同的測試環境,也不能保證測量具有高絕對精度。然而,電量計和檢測電阻器特有的大多數誤差在測試運行之間是一致的,這使得相同設備之間的比較很有用。我們建議在不同的配置中執行多個測試,以確定配置之間的顯著差異和相對功耗。

讀取功耗

若要讀取功耗數據,請在測試程式碼中插入對 API 的呼叫。

import android.os.BatteryManager;
import android.content.Context;
BatteryManager mBatteryManager =
(BatteryManager)Context.getSystemService(Context.BATTERY_SERVICE);
Long energy =
mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
Slog.i(TAG, "Remaining energy = " + energy + "nWh");

可用屬性

Android 支援以下電池電量計屬性:

BATTERY_PROPERTY_CHARGE_COUNTER   Remaining battery capacity in microampere-hours
BATTERY_PROPERTY_CURRENT_NOW      Instantaneous battery current in microamperes
BATTERY_PROPERTY_CURRENT_AVERAGE  Average battery current in microamperes
BATTERY_PROPERTY_CAPACITY         Remaining battery capacity as an integer percentage
BATTERY_PROPERTY_ENERGY_COUNTER   Remaining energy in nanowatt-hours

大多數屬性都是從具有相似名稱的核心 power_supply 子系統屬性中讀取的。但是,特定設備的確切屬性、屬性值的解析度以及可用的更新頻率取決於:

  • 電量計硬件,例如 Summit SMB347 或 Maxim MAX17050。
  • 電量計與系統的連接,例如外部電流檢測電阻的值。
  • 電量計晶片軟體配置,例如為核心驅動程式中的平均電流計算間隔選擇的值。

有關詳細信息,請參閱適用於Nexus 設備的屬性。

馬克西姆燃油表

當確定電池長時間的充電狀態時,Maxim 電量計 (MAX17050、BC15) 會校正庫侖計數器偏移測量結果。對於短時間內進行的測量(例如功耗計量測試),電量計不會進行校正,使得噹噹前測量值太小時,偏移成為主要誤差源(儘管沒有任何時間可以消除偏移)完全錯誤)。

對於典型的 10mOhm 偵測電阻設計,偏移電流應優於 1.5mA,這表示任何測量結果均為 +/-1.5mA(PCB 板佈局也會影響這種變化)。例如,當測量大電流 (200mA) 時,您可能會出現以下情況:

  • 2mA(由於電量計增益誤差導致 200mA 的 1% 增益誤差)
  • +2mA(由於偵測電阻誤差導致 200mA 的 1% 增益誤差)
  • +1.5mA(電量計的電流偵測偏移誤差)

總誤差為 5.5mA (2.75%)。將此與中等電流 (50mA) 進行比較,其中相同的誤差百分比給出 7% 的總誤差;或與小電流 (15mA) 進行比較,其中 +/-1.5mA 給出 10% 的總誤差。

為了獲得最佳結果,我們建議測量大於 20mA 的電流。增益測量誤差是系統性且可重複的,可讓您在多種模式下測試設備並獲得清晰的相對測量結果(1.5mA 偏移除外)。

對於 +/-100uA 相對測量,所需的測量時間取決於:

  • ADC 取樣雜訊。 MAX17050採用正常的出廠配置,由於雜訊的影響,樣本間的變化會產生+/-1.5mA的變化,每個樣本的傳輸時間為175.8ms。您可以預期 1 分鐘測試視窗的粗略 +/-100uA 和 6 分鐘測試視窗的乾淨 3-sigma 雜訊低於 100uA(或 33uA 時的 1-sigma 雜訊)。
  • 由於負載變化而導致樣本混疊。變化會放大誤差,因此對於負載中固有變化的樣品,請考慮使用更長的測試視窗。

支援的 Nexus 設備

Nexus 5
模型Nexus 5
油表Maxim MAX17048 電量計(ModelGauge™,無庫侖計)
特性電池屬性_容量
測量電量計不支援除分辨率為 %/256(電池總容量的 1/256)的電池充電狀態以外的任何測量。
Nexus 6
模型Nexus 6
油表Maxim MAX17050 電量計(具有 Maxim ModelGauge™ 調整功能的庫侖計數器)和 10mohm 電流偵測電阻。
特性電池屬性_容量
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
測量CURRENT_NOW解析度156.25uA,更新周期175.8ms。
CURRENT_AVERAGE 解析度 156.25uA,更新週期可配置 0.7s - 6.4h,預設為 11.25 秒。
CHARGE_COUNTER(累積電流,非擴展精度)解析度為 500uAh(原始庫侖計數器讀數,未透過電量計調整庫侖計數器偏移,加上來自 ModelGauge m3 演算法的輸入,包括空補償)。
CHARGE_COUNTER_EXT(核心擴展精度)解析度 8nAh。
ENERGY_COUNTER 是標稱電壓為 3.7V 時的 CHARGE_COUNTER_EXT。
Nexus 9
模型Nexus 9
油表Maxim MAX17050 電量計(具有 Maxim ModelGauge™ 調整功能的庫侖計數器)和 10mohm 電流偵測電阻。
特性電池屬性_容量
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
測量CURRENT_NOW解析度156.25uA,更新周期175.8ms。
CURRENT_AVERAGE 解析度 156.25uA,更新週期可配置 0.7s - 6.4h,預設為 11.25 秒。
CHARGE_COUNTER(累計電流,非擴展精度)解析度為500uAh。
CHARGE_COUNTER_EXT(核心擴展精度)解析度 8nAh。
ENERGY_COUNTER 是標稱電壓為 3.7V 時的 CHARGE_COUNTER_EXT。
累計電流更新周期175.8ms。
ADC 以 175ms 量化取樣,取樣週期為 4ms。可以調整佔空比。
Nexus 10
模型Nexus 10
油表Dallas Semiconductor DS2784 電量計(庫侖計數器),搭配 10mohm 電流偵測電阻。
特性電池屬性_容量
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
測量電流測量(瞬時和平均)分辨率為156.3uA。
CURRENT_NOW 瞬時電流更新周期為3.5秒。
CURRENT_AVERAGE 更新週期為 28 秒(不可設定)。
CHARGE_COUNTER(累計電流,非擴展精度)解析度為625uAh。
CHARGE_COUNTER_EXT(核心擴展精度)解析度為 144nAh。
ENERGY_COUNTER 是標稱電壓為 3.7V 時的 CHARGE_COUNTER_EXT。
全部更新周期為 3.5 秒。