安卓網路優化(5)

2021-07-06 11:38:25 字數 1629 閱讀 2339

1、避免頻繁網路請求

有效管理service 後台服務就相當於乙個持續執行的acitivity,

如果開發的程式後台都會乙個service不停的去伺服器上更新資料,在不更新資料的時候就讓它sleep,這種方式是非常耗電的,

解決:

通常情況下,可以使用alarmmanager來定時啟動服務

實驗:30分鐘執行一次:

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);

2、資料壓縮inputstream compressed = entity.getcontent();

inputstream rawdata = new gzipinputstream(compressed);

**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 start = system.currenttimemillis();

// 你想要測試的方法

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...