Android應用效能最佳化筆記

來源:互聯網
上載者:User

標籤:

                                                               Java代碼最佳化

 緩衝結果: 

                     如果計算代價過高,最好把過去的結果緩衝起來。

 虛擬碼如下:

                result=cache.get(n);        //輸入參數n作為鍵

                if(result==null)

               {

                  //如果在緩衝中沒有result值,就計算出來填進去

                  result=computeResult(n);

                  cache.put(n,result);   //n作為鍵,

                }

               return result;

 你可能打算一個HashMap充當緩衝,它可以勝任這項工作.不過,Android定義了SparseArray類,當鍵是整數時,它比HashMap效率更高。

因為HashMap 使用的是java.lang.Integer對象,而SparseArray使用的是基本類型int.因此使用HashMap會建立很多Integer對象,而使用

SparseArray則可以避免.

 API

      if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB)

       {

         sparseArray.removeAt(1);  //API等級11及以上

       }

        else

        {

           int key=sparseArray.keyAt(1);  //預設實現慢一些

          sparseArray.remove(key);

        }

     這類代碼很常用,它既可以使用最適當的API來擷取最好效能,也可以在舊的平台上(可能使用了較慢的API)正常運行.

   資料結構:

      如果你使用基於散列的資料結構(例如HashMap),而且鍵是自訂的對象,確保你正確覆蓋了類定義中的equal和hashCode

方法。hashCode的低劣實現可以輕易將散列的收益化為烏有. 

 每當Android新版本的發布,都要特別注意android.util包和java.util包.(因為幾乎所有的組件依賴這兩個工具箱).

  響應能力: 

     應用可以延遲建立對象,直到需要時才建立,稱為延遲初始化的技術.

     為Activity最佳化啟動序列:

        onCreate->onStart->onResume (這個序列發生在建立Activity時),當配置發生變化時,當前Activity被銷毀,並建立一個新執行個體,會調用

以下序列:onPause->onStop->onDestory->onCreate->onStart->onResume

    應用可以在mainfest檔案裡指定每個Activity元素的Android:configChanges屬性,讓它只接受自己想處理的配置變化。這會導致

調用Activity的onConfigurationChanged(),而不是銷毀.

     通常情況下,在應用啟動時,既當onCreate()被調用時,啟用StrictMode。

 SQLite

          使用+運算子來連接字串不是最有效方法,而使用StringBuilder對象,或調用String.format可以提高效能.

           

 

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.