安卓效能最佳化總結

來源:互聯網
上載者:User

標籤:建立   填充   簡化   不可   帶來   art   應該   解決   merge   

一、合理的管理記憶體1.節制的使用service:如果應用程式當中需要使用Service來執行背景工作的話,請一定要注意只有當任務正在執行的時候才應該讓Service運行起來。另外,當任務執行完之後去停止Service的時候,要小心Service停止失敗導致記憶體流失的情況。 為了能夠控制Service的生命週期,Android官方推薦的最佳解決方案就是使用IntentService,這種Service的最大特點就是當背景工作執行結束後會自動停止,從而極大程度上避免了Service記憶體流失的可能性。2.當介面不可見時釋放記憶體3.避免bitmap上浪費記憶體 :讀取一個Bitmap圖片的時候,有一點一定要注意,就是千萬不要去載入不需要的解析度。4.使用最佳化過的資料集合:如SparseArray,SparseBooleanArray,以及LongSparseArray等,使用這些API可以讓我們的程式更加高效。5.謹慎使用物件導向編程:因為的抽象的編程方法更加物件導向,而且在代碼的維護和可擴充性方面都會有所提高。但是,在Android上使用抽象會帶來額外的記憶體開支,因為抽象的編程方法需要編寫額外的代碼,雖然這些代碼根本執行不到,但是卻也要映射到記憶體當中,不僅佔用了更多的記憶體,在執行效率方面也會有所降低。6.盡量避免使用依賴注入架構:架構為了要搜尋代碼中的註解,通常都需要經曆較長的初始化過程,並且還可能將一些你用不到的對象也一併載入到記憶體當中。7.使用ProGuard簡化代碼8.使用多個進程二、高效能編碼最佳化1.避免建立不必要的對象:因為建立一個對象就意味著記憶體回收行程需要回收一個對象,而這兩步操作都是需要消耗時間的。
  1. 靜態優於抽象:
  2. 對常量使用static final修飾符
  3. 使用增強型for迴圈文法
三、布局最佳化
  1. 重用布局檔案:<include>
  2. <merge>:換用了<merge>標籤,這就表示當有任何一個地方去include這個布局時,會將<merge>標籤內包含的內容直接填充到include的位置,不會再添加任何額外的布局結構。
  3. 僅在需要時才載入布局
 

安卓效能最佳化總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.