您好,登錄后才能下訂單哦!
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具體方法執行所耗費app的cpu,執行時長
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 reference:http://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 從Tab到Drawser的轉換
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/hf2t3h5x98p5e13z82pl8j66ngcmry/performance-tuning-on-android
5, http://www.uisdc.com/5-ways-to-slim-app
五,未完待續,暫時總結這么多。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。