Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android App優化之延長電池續航時間

Android App優化之延長電池續航時間

編輯:關於Android編程

禁用廣播接收器

確保廣播接收器在真正需要時才執行指令,在onResume中其中廣播接收器,在onPause中禁用,

在manifest文件中聲明廣播接收器時,事先默認配置成禁用的


網絡

1. 後台數據,後台傳輸數據時,判斷ConnectivityManager的getBackgroundDataSetting()的返回值,如果為true,則進行後台數據傳輸,如果為false,則不進行後台數據傳輸

2. 數據傳輸,手機設備中最耗電的部件依次是:Wi-Fi-》3G-》CPU-》屏幕(都在最高負載時的數據),所以在傳輸數據時一定不要長時間的占用網絡資源,而是應該突發性地傳輸一段時間內所需的所有資源,關於這個有一篇論文:http://www.research.att.com/articles/featured_stories/2011_03/201102_Energy_efficient?fbid=1N507ukp1ch,最後結論就是:The single most important measure: transmit as much data as possible in a single burst and then end the connection.

1.使用GZIP壓縮文本數據,使用GZIPInputStream類訪問數據

2.如果可能的話,使用JPEG而不是PNG的圖片文件

3.使用匹配設備分辨率的資源(比如,不必為96x54大小的顯示空間下載1920x1080的圖片)


位置

1. 在不需要監聽位置時注銷位置監聽器

2. 減小更新位置的頻率

3. 使用合適的位置服務,android提供了三種位置服務,GPS、網絡定位、被動定位(你的應用會等待其他應用,服務或系統組件發出定位請求,而後和其他監聽器一起接受更新)

4. 使用Criteria類來篩選合適的定位服務

5. 使用最後已知位置,可以提高用戶體驗


傳感器

降低傳感器數據的更新頻率來達到省電的目的


圖形

在Android應用性能優化這本書中的第八章有專門的介紹


提醒AlarmManager

ELAPSED_TIME

ELAPSED_TIME_WAKEUP

RTC

RTC_WAKEUP

使用ELAPSED_TIME和RTC表示,計時完時如果設備沒有被喚醒則等待設備被喚醒時才執行相應的動作

所以要盡量使用這兩個參數

另外,使用AlarmManager的setInexactRepeating也可以達到省電的目的,主要區別是在系統如何安排提醒到時,Android可以調整實際的觸發事件,同時觸發多個提醒(可能來自多個應用),這種提醒更節能,系統也避免了出現不必要的喚醒。


WakeLock

獲得wakelock之後一定要記得釋放

為了防止出現問題,建議使用帶超時的WakeLock.acquire()版本,他會在超過時限後釋放WakeLock。

如果用到的屏幕是和Activity中的View關聯的,也可以在布局文件中使用XML屬性android:keepScreenOn。這種方法的好處是,不必冒著忘記釋放WakeLock的風險,交由系統處理,也不需要在manifest文件中設置權限

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved