Android電源管理
copy from: StevGuo系列文章翻譯之Android電源管理
上圖展示了Android電源管理的整體設計框架。Android實現了一個非常簡單的電源管理機制,目前,它只支援screen on/off,screen backlight on/off,keyboard backlight on/off,button backlight on/off和調整screen亮度。不支援sleep,standby等更加充分利用CPU能力的模式。電源管理模組通過三個途徑接收輸入:RPC呼叫,電池狀態改變事件和電源設定改變事件。與其它模組通訊時,使用Intent廣播或者直接API呼叫。也提供了重啟和關機服務。當電池電量低於某個值時,會自動關閉裝置。當沒有使用者事件時,電源模組會自動使螢幕dim或者off,狀態轉換如下圖: PowerManagerService.java是核心服務。它呼叫Power.java做具體的工作。PowerManager.java是通過RPC訪問PowerManagerService.java的代理。Power.java與JNI通訊。Android_os_Power.cpp是對Power.java中JNI介面的實現它呼叫Power.c做具體的工作。Power.c通過讀寫下面的檔案控制著電源裝置驅動: "/sys/android_power/acquire_partial_wake_lock", "/sys/android_power/acquire_full_wake_lock", "/sys/android_power/release_wake_lock", "/sys/android_power/request_state" "/sys/android_power/auto_off_timeout", "/sys/class/leds/lcd-backlight/brightness", "/sys/class/leds/button-backlight/brightness", "/sys/class/leds/keyboard-backlight/brightness" BatteryService.java把自己註冊為一個對路徑”/sys/class/power_supply”的UEvent監視器,如果這個路徑中的資訊有改變的話,它通過JNI通過java層次的API傳送ACTION_BATTERY_CHANGED廣播來把最新的狀態資訊傳遞出去。 Com_android_server_BatteryService.cpp是BatteryService.java中JNI的本地實現。它通過下面的檔案獲得當前電池狀態: "/sys/class/power_supply/ac/online" "/sys/class/power_supply/usb/online" "/sys/class/power_supply/battery/status" "/sys/class/power_supply/battery/health" "/sys/class/power_supply/battery/present" "/sys/class/power_supply/battery/capacity" "/sys/class/power_supply/battery/batt_vol" "/sys/class/power_supply/battery/batt_temp" "/sys/class/power_supply/battery/technology" 想在程式當中呼叫電源模組的話,使用下面的程式碼: PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock( PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, TAG); wl.acquire(); // ... wl.release();
相關文章
- win10電源管理在哪裡_win10怎麼開啟電源管理Win10
- ipmi 遠端電源管理模組
- Android系統資源管理與電池最佳化策略詳解Android
- 電源管理在哪win10系統_win10電源管理怎麼檢視Win10
- Android Manager之PowerManager(電源服務)Android
- Linux筆記本電源管理指南(轉)Linux筆記
- win10電源管理無法使用怎麼辦 如何解決win10系統電源管理問題Win10
- WIN10電源管理怎麼恢復成預設 WIN10電源管理如何恢復預設設定Win10
- dell電腦win10電源管理無效能模式如何修復Win10模式
- 淺析Windows 2000的電源管理(轉)Windows
- windows10系統怎麼開啟電源管理Windows
- 全志AXP216電源系統管理晶片晶片
- Android 解讀開源專案UniversalMusicPlayer(資料管理)Android
- Android的資源管理器的建立過程Android
- Linux作業系統的高階電源管理(轉)Linux作業系統
- CPU 電源管理器:Linux 系統中 CPU 主頻的控制和管理Linux
- 電源分配系統及電源完整性
- BQ25606RGER應用 系統電源路徑管理
- 資源管理
- win10電源管理只有平衡模式怎麼辦 win10電源找不到高效能模式怎麼開Win10模式
- 如何選購臺式電腦電源?電腦電源選購知識指南:電源品牌、尺寸、功率知識介紹
- 常見的電腦電源型別區分 電源種類有哪些?型別
- 開關電源——壓敏電阻
- 怎麼測試電腦電源好壞?如何檢測電腦電源好壞的方法
- Webpack資源管理Web
- 在win10系統中檢視電源管理設定位置的方法Win10
- 全志AXP809電源系統管理晶片引數介紹晶片
- ArduinoYun的電源插座UI
- 臺式電腦電源功率越大越好嗎?組裝電腦選購電源功率瓦數指南
- Android 資源大全Android
- UPS電源和EPS電源的區別是什麼
- 在工作管理員中不小心把資源管理器給關了導致電腦黑屏
- 多專案管理-資源管理(3)專案管理
- 多專案管理-資源管理(2)專案管理
- 多專案管理-資源管理(1)專案管理
- win10電腦電源功率怎麼看_win10檢視電腦電源功率的方法Win10
- 專案資源管理
- 膝上型電腦的電源計劃