Android性能優化

Android性能優化

按:

App的體積越來越大,App的功能越來越多,面臨同一個問題,原有的App可能不適合現在的用戶使用。基於“不要過早優化”的原則,在早期快速迭代反饋確定正確的方向之後,是時候做一些優化了。

 

性能優化,需要在用戶的角度來思考。用戶理解的“性能”是快:快速打開頁面,快速找到我想要的內容,頁面的切換流程,等等。

 

從三個維度來談性能優化:

        1,  技術層面(主動)

            1-1 UI的優化應該分爲三個層面來談:

                     一個是簡潔的UI代碼

                     一個是較少的UI層數。

                     一個是具體view的渲染過程速度

        2,  工具層面(被動)

        3,  產品層面(主動)

 

一,基本技術原理篇

    1,  UI線程減少耗時操作

    2,  View層級減少(將線性佈局轉換爲相對佈局)

    3,  ViewStub

    4,  Merge

    5,  Include

    6,  Style

 

二,工具檢測篇

   1,StrictMode

             1-1安卓2.3之後出現

             1-2用途

         探測UI線程進行的阻塞操作(網絡/數據庫查詢)

             1-3輸出

             Log

             1-4鏈接

              http://developer.android.com/reference/android/os/StrictMode.html



  2,Systrace

           2-1 安卓4.1之後

           2-2 用途

                  2-2-1分析app的性能,通過分析本應用進程和其他系統進程的執行時間。

                  2-2-2可以很容易分析出你的程序在UI線程的哪些函數佔用了過多的時間

           2-3 輸出

           通過分析android內核信息(CPU scheduler, disk activity, and application threads ),輸出Html網頁

           2-4 鏈接

                   http://developer.android.com/tools/help/systrace.html

      2-5 其他參考資料

          http://blog.csdn.net/rogeryi/article/details/8242250

      2-6 侷限性

          必須在linux下運行

 

   3,  Traceview

                3-1 用途:

                      分析app具體方法執行所耗費appcpu,執行時長

        3-2  輸出

  3-2-1 timeline panel 按照方法執行的先後時間順序排列,寬度代表耗時

  3-2-2 profile panel 方法棧關係,及佔用cpu,時間的具體值和比例

        3-3  鏈接

            http://developer.android.com/tools/debugging/debugging-tracing.html

        3-4  其他參考

            http://www.open-open.com/lib/view/open1370251009945.html

 

   4,  dumpsys gfxinfo

        4-1查看掉幀的情況,一般情況下1秒鐘是60幀會保證流程,即一幀的渲染時間不超過16ms

        4-2 referencehttp://www.tuicool.com/articles/ZzmYFf重要


   5,  hierarchy viewer

       從整個View的圖中,會有三個點,代表onMeasure onLayout onDraw效率,這樣就可以看到拖累 加載速度的view,並且知道在View的那個步驟拖累了效率。

參看:http://developer.android.com/tools/debugging/debugging-ui.html

 

三,交互產品篇

    1,  進度條的顯示

    2,  歡迎界面

    3,  重構導航

        3-1 TabDrawser的轉換

    4,  插件化

    5,  功能定製化(eg,微信選擇功能)


四,參考文檔

    1,  http://www.yixieshi.com/it/16683.html

    2,  http://developer.android.com/tools/debugging/debugging-ui.html

    3,  http://www.oschina.net/question/195301_32202

    4,  http://blog.venmo.com/hf2t3h4x98p5e13z82pl8j66ngcmry/performance-tuning-on-android

    5,  http://www.uisdc.com/5-ways-to-slim-app


五,未完待續,暫時總結這麼多。

 


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