第15章 android效能優化方法

2021-07-26 13:12:37 字數 966 閱讀 3815

假如可以用linearlayout,就用linearlayout,因為relativelayout比較複雜。

採用include,merge,viewstub標籤重用布局。

include 的id以include指定id為準,假如根元素也有id

include 假如指定android:layout_*屬性,那麼必須重寫include的寬高。

merge去掉多餘的巢狀

viewstub不參與繪製過程,按需載入。infalteid是載入後的根元素id。目前不支援merge標籤。

繪製優化

ondraw避免做大量操作,不要建立新的區域性物件。

ondraw不要做耗時操作,保證每幀繪製不超過16ms

記憶體洩露優化

靜態變數導致的記憶體洩露。不要持有activity的引用無法釋放。

單例模式導致的記憶體洩露。註冊記得要解綁。

屬性動畫導致記憶體洩露。在ondestory呼叫animator。cancel()停止動畫。

響應速度優化和anr日誌分析

activity5秒無法響應和broadreceiver10秒無法響應就會anr.

發生anr會/data/anr建立檔案traces.txt

listview優化 1)採用viewholder避免在getview做耗時操作 2)根據滑動狀態來執行任務,快速滑動時不適宜開啟大量非同步任務。3)開啟硬體加速來讓listview滑動更加流暢。

bitmap優化,採用bitmapfactory.options根據取樣,使用insamlesize引數。

執行緒優化,使用執行緒池。

避免建立過多的物件;不要過多使用列舉,列舉占用記憶體空間大;常量使用static final修飾;使用android特有的資料結構例如sparsearray和pair

適當使用弱引用和軟引用

採用記憶體快取和磁碟快取

盡量採用靜態內部類,避免內部類的記憶體洩露。

善用mat分析記憶體洩露。

《高效能MySQL》第6章 查詢效能優化

6.2 慢查詢基礎 優化資料訪問 6.2.1 是否向資料庫請求了不需要的資料 有些查詢會請求超過實際需要的資料,然後這些多餘的資料會被應用程式丟棄。這會給mysql伺服器帶來額外的負擔,並增加網路開銷,另外也會消耗應用伺服器的cpu和記憶體資源。6.2.2 mysql是否在掃瞄額外的記錄6.3 重構...

Android效能優化

android效能優化 1.http用gzip壓縮,設定連線超時時間和響應超時時間 http請求按照業務需求,分為是否可以快取和不可快取,那麼在無網路的環境中,仍然通過快取的httpresponse瀏覽部分資料,實現離線閱讀。2.listview 效能優化 1 復用convertview 在geti...

Android效能優化

1.節制地使用service 如果應用程式當中需要使用service來執行後台任務的話,請一定要注意只有當任務正在執行的時候才應該讓service執行起來。另外,當任務執行完之後去停止service的時候,要小心service停止失敗導致記憶體洩露的情況 2.當介面不可見時釋放記憶體 當使用者開啟另...