Android效能最佳化

來源:互聯網
上載者:User

標籤:android效能最佳化   java最佳化   資料庫最佳化   布局最佳化   

一、布局最佳化:

遵循一條規則:布局層次盡量少(RelativeLayout來代替LinearLayout、減少必要的節點、合理的使用<merge>標籤)

  1. 使用Lint分析布局

  2. HierarchyViewer

  3. 使用ViewStub消極式載入視圖(最佳化那些不是必須要立即在UI上顯示的控制項)

  4. 採用<merge> 最佳化布局層數
  5. 採用<include >來共用布局
  6. 使用SDK的layoutopt工具來分析布局 來降低布局複雜度
  7. 針對ListView的效能最佳化

    item儘可能的減少使用的控制項和布局的層次; RelativeLayout是絕對的利器,通過它可以減少布局的層次。同時要儘可能的複用控制項,這樣可以減少 ListView的記憶體使用量,減少滑動時GC次數。ListView的背景色與cacheColorHint設定相同顏色,可以提高滑動時的渲染效能。 ListView中getView是效能是關鍵,這裡要儘可能的最佳化。getView方法中要重用view;getView方法中不能做複雜的邏輯計算,特別是資料庫操作,否則會嚴重影響滑動時的效能。



參考:

http://rayleeya.iteye.com/blog/1961005


二、Java代碼最佳化:
  1. 緩衝(圖片緩衝、資料庫緩衝、對象資料緩衝等)

  2. 資料類型選取、對象設計(繼承、組合)、設計模式等

  3. 演算法邏輯(必要時候可用空間換時間)

  4. 異常用於錯誤處理,不是控製程序流程

  5. 提前或延遲操作

  6. 網路最佳化

  7. 使用NIO機制

參考:

http://developer.android.com/training/articles/perf-tips.html  (java)

http://rayleeya.iteye.com/blog/1961005 (java)

http://www.trinea.cn/android/java-android-performance/  (java)

http://blog.csdn.net/innost/article/details/9008691  (Traceview)


三、資料庫最佳化:
  1. 索引(當某欄位資料更新頻率較低,查詢頻率較高,經常有範圍查詢(>, <, =, >=, <=)或order by、group by發生時建議使用索引; 經常同時存取多列,且每列都含有重複值可考慮建立複合索引)

  2. 批量插入、更新使用原子操作

  3. 查詢時返回更少的結果集及更少的欄位。

  4. 少用cursor.getColumnIndex(可以在建表的時候用static變數記住某列的index,直接調用相應index而不是每次查詢。)

  5. 有些能用檔案操作的,盡量採用檔案操作,檔案操作的速度比資料庫的操作要快10倍左右,

  6. 最佳化sql語句字串,自訂事務等


Android效能最佳化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.