Android性能優化總結,必須知道的重點!!!

說到Android性能優化主要從以下六點說一下 

1.佈局優化

主要就是儘量減少佈局文件的層次,Android繪製的工作量少,程序的性能就高了。首先在佈局中可以採用LinearLayout也可以採用RelativeLayout的時候儘量使用LinearLayout,因爲在繪製的時候它只會繪製一次。也可以採用<include>標籤 它可以指定一個佈局文件加載到當前的佈局文件,大多實現一些佈局文件的複用。<merge>標籤一般和<include>一起使用 減少佈局層次。還有一個是ViewStub控件,它是非常輕量級的寬高都是0,它本身不參與佈局和繪製過程。(可以理解爲ViewPager的懶加載)在使用的時候再加載,從而提高性能。

2.繪製優化

繪製優化是指View的onDraw方法要避免執行大量的操作,這個主要體現在兩個方面:一、不要在onDraw中創建新的局部對象,因爲這個方法會被重複調用,這樣會產生大量的臨時對象,佔用內存。二、不要在onDraw中耗時操作,儘量降低onDraw方法的複雜度,(保證View的每幀繪製時間在16ms左右)

3.內存泄漏優化

內存泄漏優化也可以分爲兩個方面來說 一個是避免在代碼編寫過程中有內存泄漏的代碼,第二個是通過一些第三方的檢測工具來找出潛在的內存泄漏的問題所在從而解決。

需要注意的一些點:(1)靜態變量進行強應用導致的內存泄漏。(2)屬性動畫導致的內存泄漏,從3.0開始Google提供了屬性動畫,他其中有一類是是無限循環的動畫  我們需要在當前Activity銷燬的時候對動畫進行終止 若不停止會導致View對Activity一直持有,最終Activity無法釋放。

4.響應速度優化

響應速度優化的核心思想是在避免在主線程中耗時操作(防止ANR),若有需要採用異步的方式去執行。當我們在應用啓動的時候會出現白屏現象,我們可以採用改變啓動頁樣式,給他設置一個背景,來提升用戶體驗。這也是一個開發的小技巧。(Android規定 Activity如果5秒鐘無法響應或者是BroadcaseReceiver10秒鐘沒有執行完操作會出現ANR。當我們在開發過程中遇到ANR了,系統會在/data/anr目錄下創建一個traces.txt文件,我們可以去查看文件。)

5.ListView優化和Bitmap優化

Listview優化主要有兩個個方面:(1)採用ViewHolder來實現item的複用,並避免在getView方法中執行耗時操作。(2)根據列表的滑動狀態來控制任務的執行效率,比如當列表快速滑動時不適合開啓大量的異步任務。

Bitmap優化只要是採用BitmapFactor根據需要來對圖片進行二次採樣(這個有專門對Bitmap的操作)

6.線程優化

線程優化就是考慮採用線程池,避免程序中存在大量的線程進行創建銷燬帶來的性能開銷,同時能有效地控制線程的最大併發數,避免出現線程搶佔cpu從而出現阻塞現象(這時候可給說一下關於線程池的一些東西,有做專門總結)

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