路徑
framework/base/services/java/com/android/server/BatteryService.java
說明- BatteryService 會註冊一個 UEventObserver,用來觀察是否有符合 SUBSYSTEM=power_supply 子字串的 uevent 發上來,假如有,就會觸發 onUEvent。
mPowerSupplyObserver.startObserving("SUBSYSTEM=power_supply");
- 當 onUEvent 觸發,會做兩件事,第一,呼叫 update,這個函式會叫用 JNI native_update,去 /sys 底下讀取 battery information,並利用 setIntField、setBooleanField 等函式,設定給 battery service。
- 在 update 結束後,執行 processValues,處理從底下得到的數值,接著,發 ACTION_BATTERY_CHANGED Intent 給 SystemUI[註] ,更新電量資訊、圖示,如果電量過低,還會發 alert dialog。
[註] Froyo 是由 StatusBarPolicy 處理 ACTION_BATTERY_CHANGED
參考資料
沒有留言:
張貼留言