1. 程式人生 > >android7.0的新特性--延長裝置電池壽命和減少 RAM 使用

android7.0的新特性--延長裝置電池壽命和減少 RAM 使用

1、低電耗模式

(1)Android 6.0(API 級別 23)引入了低電耗模式,當用戶裝置未插接電源、處於靜止狀態且螢幕關閉時,該模式會推遲 CPU 和網路活動,從而延長電池壽命。而 Android 7.0 則通過在裝置未插接電源且螢幕關閉狀態下、但不一定要處於靜止狀態(例如使用者外出時把手持式裝置裝在口袋裡)時應用部分 CPU 和網路限制,進一步增強了低電耗模式。Android7.0在低電耗模式上的改進之處是,在裝置未插接電源且螢幕關閉狀態下,但不一定要處於靜止狀態時,應用部分CPU和網路限制。

(2)當裝置處於充電狀態且螢幕已關閉一定時間後,裝置會進入低電耗模式並應用第一部分限制:關閉應用網路訪問、推遲作業和同步。如果進入低電耗模式後設備處於靜止狀態達到一定時間,系統則會對 

 鬧鈴、GPS 和 WLAN 掃描應用餘下的低電耗模式限制。

(3)請注意,啟用螢幕或插接裝置電源時,系統將退出低電耗模式並移除這些處理限制。

新舊低電耗模式的對比:

2、低電耗模式對手機應用的影響

 在某些情況下,您必須優化應用管理網路、鬧鈴、作業和同步的方式。 應用應該能夠在每個維護時段內高效管理 Activity。低電耗模式很容易影響  鬧鈴和定時器管理的 Activity,因為當系統處於低電耗模式時,不會觸發 Android 5.1(API 級別 22)或更低版本中的鬧鈴。Android 6.0(API 級別 23)引入了兩種新的  方法: 和 。通過這些方法,您可以設定即使裝置處於低電耗模式也會觸發的鬧鈴。


3、低電耗模式以及低電耗模式下應用的測試方法

      在低電耗模式下,您的應用會受到以下限制:

您可按以下步驟測試低電耗模式:

  • 使用 Android 6.0(API 級別 23)或更高版本的系統映像配置硬體裝置或虛擬裝置。
  • 將裝置連線到開發計算機並安裝應用
  • 執行應用並使其保持活動狀態
  • 關閉裝置螢幕。(應用保持活動狀態。)
  • 通過執行以下命令強制系統在低電耗模式之間迴圈切換:
  • $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step

    您可能需要多次執行第二個命令。不斷地重複,直到裝置變為空閒狀態。

  • 在重新啟用裝置後觀察應用的行為。確保應用在裝置退出低電耗模式時正常恢復。

2、應用待機模式

應用待機模式允許系統判定應用在使用者未主動使用它時處於空閒狀態。 當用戶有一段時間未觸控應用時,系統便會作出此判定,以下條件均不適用:

    • 使用者顯式啟動應用。
    • 應用當前有一個程序位於前臺(表現為 Activity 或前臺服務形式,或被另一 Activity 或前臺服務佔用)。
    • 應用生成使用者可在鎖屏或通知托盤中看到的通知。

當用戶將裝置插入電源時,系統將從待機狀態釋放應用,從而讓它們可以自由訪問網路並執行任何待定作業和同步。 如果裝置長時間處於空閒狀態,系統將按每天大約一次的頻率允許空閒應用訪問網路。

3、在應用待機模式下測試應用

     要在應用待機模式下測試您的應用,請執行以下操作:

  • 使用 Android 6.0(API 級別 23)或更高版本的系統映像配置硬體裝置或虛擬裝置。
  • 將裝置連線到開發計算機並安裝應用
  • 執行應用並使其保持活動狀態
  • 通過執行以下命令強制應用進入應用待機模式:

$ adb shell dumpsys battery unplug

$ adb shell am set-inactive <packageName> true

  • 使用以下命令模擬喚醒應用:

$ adb shell am set-inactive <packageName> false

$ adb shell am get-inactive <packageName>

  • 觀察喚醒後的應用行為。確保應用從待機模式中正常恢復。 特別地,您應檢查應用的通知和後臺作業是否按預期繼續執行
3、部分免除低電耗模式和應用待機模式優化的應用提供了一份可配置的白名單

     加入白名單的應用可以使用網路並保留部分 wake locks。 不過,其他限制仍然適用於加入白名單的應用。