1.前言
在10.0的系統產品開發中,在系統關于低電量關機的值,每個平臺都不同,根據實際開發底層硬件的要求看實際情況來調整這個值,
所以需要分析相關的電量變化執行的代碼流程,來實現這個功能
2.系統framework修改低電量關機值為2%的核心類
frameworks\base\services\core\java\com\android\server\BatteryService.java
3.系統framework修改低電量關機值為2%的核心功能分析和實現
BatteryService 作為電池及充電相關的服務: 監聽 Uevent、讀取sysfs 里中的狀態 、廣播Intent.ACTION_BATTERY_CHANGED。
BatteryService實現了一個UevenObserver mUEventObserver。uevent是Linux 內核用來向用戶空間主動上報事件的機制,
對于JAVA程序來說,只實現 UEventObserver的虛函數 onUEvent,然后注冊即可。
BatteryService只關注 power_supply 的事件,主要是通過在驅動層上報的電池相關的信息處理,同時對于電量的變化,也同樣
在BatteryService.java中處理,在電量過低 電池發燙等等事件處理
關于電池的信息,電壓,溫度,充電狀態等等這些信息,都是由BatteryService來提供的。
BatteryService是跑在system_process當中,在系統初始化的時候啟動
BatteryService通過JNI(com_android_server_BatteryService.cpp)讀取相關的數據,然后做出相關處理
接下來分析下BatteryS