Android應用性能優化筆記(java代碼優化)

                                                               Java代碼優化java

 緩存結果: android

                     若是計算代價太高,最好把過去的結果緩存起來。緩存

 僞代碼以下:數據結構

                result=cache.get(n);        //輸入參數n做爲鍵工具

                if(result==null)性能

               {優化

                  //若是在緩存中沒有result值,就計算出來填進去ui

                  result=computeResult(n);spa

                  cache.put(n,result);   //n做爲鍵,orm

                }

               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能夠提升性能.

相關文章
相關標籤/搜索