編輯:關於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文件中設置權限
我們首先看一下效果圖,有個整體的印象好了,為了便於理解,這裡就按照動畫所見內容依次展開來說准備這裡決定采用canvas(畫布)和paint(畫筆)實現了這個簡單動畫控件。
經典Builder模式1) 定義:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。2) 經典的Builder模式有四個參與者Product:被構
看一段簡單的代碼,在一個pager裡面顯示兩個TextView List items = new ArrayList();adapter = new MyPag
一、Socket通信簡介 Android與服務器的通信方式主要有兩種,一是Http通信,一是Socket通信。兩者的最大差異在於,http連接使用的是“請求—響