Android性能優化總結

1、布局優化

(1)使用優先順序:LinearLayout,FrameLayout > RelativeLayout > 嵌套;

(2)使用onDraw()方法可能會頻繁使用,避免在這個方法中創建新的局部對象和執行耗時操作,

由于可能頻繁調用onDraw(),就會頻繁出發GC,降低效率。

2、內存泄漏

(1)在該釋放對象的時候釋放(動態注冊廣播、數據庫操作)

(2)靜態變量,生命周期從類加載到銷毀

(3)單例模式,生命周期和Application一樣

(4)屬性動畫,動畫無限循環執行,在onDestroy()是沒有停止,Activity和View相互持有,Activity無法釋放。

3、ANR

(1)主線程避免耗時操作,如有耗時操作,開子線程進行

4、ListView

(1)contentView復用View

(2)使用ViewHolder

(3)避免在getView()中有太多耗時操作或者創建局部對象,滑動較快時避免大量異步操作

5、線程優化

(1)開大量線程時使用線程池,線程池可以重復使用內部的線程,避免線程創建銷毀帶來的性能開銷

6、圖片相關

(1)使用弱引用、軟引用緩存。弱引用擁有更短暫的生命周期,一旦發現有弱引用的,就回收,不管內存足夠與否。軟引用只有當內存空間不足的時候才會回收。

(2)圖片壓縮

7、其它

(1)盡量創建局部變量,避免全局變量。

(2)for循環也要避免創建對象。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • [原文鏈接](http://android.jobbole.com/81944/) 我在幾周前的 Droidcon...
    發財哥閱讀 7,452評論 0 22
  • 常用的Android性能優化方法: 一、布局優化: 1)盡量減少布局文件的層級。 層級少了,繪制的工作量也就少了,...
    Stan_Z閱讀 1,148評論 0 10
  • 最近大半個月都在做app的優化,最主要是從apk包大小、界面過度繪制、掉幀、內存抖動、主線程IO這幾個方面來入手的...
    shenhuniurou閱讀 920評論 0 3
  • 1.簡介 2.內存的管理和分析2.1 當界面不可見時釋放內存2.2 當內存緊張時釋放內存2.3 避免在Bitmap...
    JC_Mobile閱讀 922評論 0 6
  • 1,UI優化:這篇文章總結的不錯 2,內存泄漏優化 常見的幾種形式: 資源對象沒關閉造成的內存泄漏: 資源對象沒關...
    Richard_7df6閱讀 275評論 0 0