cpu優化,內存的優化,卡頓優化,啓動優化的方式,其他的一些優化

cpu優化
1.主線程更新ui的時候,子線程不要搶奪cpu的佔有權。
比如子線程裏面讀寫大文件,或者操作數據庫的時候操作大的對象。

2.設置佈局的時候儘量減少層級的嵌套。儘量使用LineaLayout作爲父佈局容器,還可以使用meger標籤來設置佈局但是前提是要知道外層使用佈局的類型,還可以使用viewstub設置佈局,viewstub在佈局沒有內容顯示的情況下是不會加載到父佈局容器中的。設置Activity的背景爲透明,佈局容器在沒有其他需求的情況下也要設置爲透明,這樣可以減少過度繪製。

3.可以使用include引用佈局,使用include的好處不僅可以複用佈局,在程序二次加載include佈局的時候可以加載得更快。

4.加載數據條目過多的情況下可以使用分頁。

5.大量創建動態對象的時候可以使用享元模式。即對象的複用。

6.請求網絡多種類型的數據儘量合併爲一個接口,避免多次請求網絡。請求網絡也是耗電的操作,這樣做可以節省電量。 網絡請求儘量做緩存操作。

7.涉及頻繁創建銷燬線程的操作,使用線程池來處理。因爲創建和銷燬線程是很耗性能的。

內存優化
1.bitmap的優化,加載bitmap的時候可以預先計算bitmap的大小。對bitmap進行採樣率的壓縮。可以設置bitmap的位深設置爲RGB_565可以減少一半的內存佔用。

2.使用service之後要及時關閉釋放內存推薦使用IntentService。

3.使用完廣播之後要及時取消註冊。

4.UI界面不可見的情況下釋放一些只有ui使用的資源。

5.系統內存不足的時候儘量釋放非重要資源。

6.做內存緩存的時候可以使用軟引用對象。

7.儘量使用一些谷歌推薦的數據結構,比如SparseArray、SparseBooleanArray、LongSparseArray,使用這些API可以讓我們的程序更加高效。

8.字符串的拼接儘量不要使用加號連接符,推薦使用StringBuffer或者StringBulider

9.使用動畫的時候要及時釋放資源。

卡頓優化
1.主線程內不要做耗時的操作(讀寫文件,操作數據庫,請求網絡,耗時的計算,視頻幀的獲取等等)。
2.繪製view的時候不要頻繁的創建動態對象。
3.設置子線程的優先級,避免搶佔主線程的資源。
4.避免頻繁創建對象導致頻繁GC
5.避免繪製view的時候重複繪製背景。
6.scorllview嵌套recyclerview的時候recyclerview一次加載的項不應過多。
7.使用idleHandle加載

啓動優化
使用idleHandle加載
異步加載
懶加載
延遲加載
onCareate onResume裏面不要做耗時操作

其他的優化
方法具體實現的優化。如數據結構,算法的優化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章