假如可以用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.當介面不可見時釋放記憶體 當使用者開啟另...