1、避免頻繁網路請求
有效管理service 後台服務就相當於乙個持續執行的acitivity,
如果開發的程式後台都會乙個service不停的去伺服器上更新資料,在不更新資料的時候就讓它sleep,這種方式是非常耗電的,
解決:
通常情況下,可以使用alarmmanager來定時啟動服務。
實驗:30分鐘執行一次:
2、資料壓縮inputstream compressed = entity.getcontent();alarmmanager alarmmanager =
(alarmmanager) context.getsystemservice(context.alarm_service);
intent intent = new intent(context, myservice.class);
pendingintent pendingintent =
pendingintent.getservice(context, 0, intent, 0);
//設定的時間
long interval = dateutils.minute_in_millis * 30
;long firstwake = system.currenttimemillis() + interval;
//管理器的執行(30分鐘執行一次服務的更新)
am.setrepeating(alarmmanager.rtc,firstwake, interval, pendingintent);
inputstream rawdata = new gzipinputstream(compressed);
long start = system.currenttimemillis();**3、使用執行緒池**
**4、選擇合適的資料格式傳輸形式**
(1)json和protobuf效率明顯比xml好很多
(2)移動裝置,最好能使用json之類的輕量級資料格式為佳
(3)使用sax等邊讀取邊解析的方式來解析資料
**5、資料庫**
(1) 相對於封裝過的contentprovider而言,使用原始sql語句執行效率高,比如使用方法rawquery、execsql的執行效率比較高。
(2)一次修改多個資料時,使用sqlite的事務方式批量處理
(3)批量插入多行資料使用inserthelper或者bulkinsert方法
(4)能用檔案操作的,盡量採用檔案操作,檔案操作的速度比資料庫的操作要快10倍左右
6、效能測試:
(1)邏輯演算法的效率執行,我們使用android上最普遍的,計算執行時間來檢視:
// 你想要測試的方法
long duration = system.currenttimemillis() - start;
「` (2)可以在ddms中檢視下logcat的vm釋放記憶體情況,大概模擬下那些地方可以快取資料或改進演算法的
(3)利用traceview和monkey等工具測試應用。
(7)利用layoutopt和ninepatch等工具優化檢視。
安卓效能優化 網路優化建議
移動裝置因為其獨特的網路環境,應用可以獲取的網路速度 網路質量 網路頻寬都有很大的限制,如何在這種限制環境下表現出優秀的使用者體驗,就涉及到應用的網路環境優化了,下面僅從幾個常見的方面給出幾點建議。移動裝置與伺服器接 互的優化主要體現在傳輸速度 請求頻次 資源消耗幾個方面。客戶端自身的優化則主要體現...
安卓布局優化
1,androidui渲染機制 正如玩pc遊戲,fps大概在60fps左右,就表示顯示卡效能較高,遊戲不會卡頓。而在安卓中系統通過vsync訊號觸發對ui的渲染 重繪,其間隔時間是16ms。16ms就是1000ms中顯示60幀畫面的單位時間 2,避免overdraw 過度繪製會浪費很多的cpu gp...
安卓記憶體優化
1.資料結構優化 頻繁字串拼接用stringbuilder arraymap sparsearray替換hashmap 記憶體抖動 再小的class耗費0.5kb hashmap乙個entry需要額外占用32b 2.物件復用 復用系統自帶的資源 listview gridview的convertvi...