乙個是響應速度,要保證介面之間跳轉的時候沒有延遲,也就是說要保證onclick之後,
1. activity/fragment的onpause()方法不會占用主線程太多時間
2. onclick()事件裡面不要寫耗時的操作,盡量放在
3. 新的activity的create、start、resume等生命週期函式不要占用太多時間
耗時操作可以等介面初始化好之後再去做,這樣才能保證響應速度能達到使用者可以接受的程度!
另外乙個是流暢性,這個就是說使用者在某個介面操作的時候,不要出現卡頓(掉幀)的情況!這種情況比較複雜,所以要case by case地去解決!推薦用systrace和method trace等效能工具來發現和排查!
想達到使用流暢這種事,就是要盡量避免在主線程有過多的計算操作,所謂過多你可以簡單理解為每次超過16ms的計算。我說一下自己平時的習慣
編碼過程原則:
第一:先ui,後資料。比如頁面跳轉,就要採用這種原則,獲取資料的過程ui可以是乙個讀取狀態的展示。
第二:非同步計算儲存。比如持久化資料,各種壓縮演算法,都採用非同步的方式。
第三:精簡view處理。對於列表型別的view,注意layout的計算和draw時的計算。
除錯過程原則:
第一:注意記憶體使用。感覺對流暢度影響比較大是記憶體抖動。
第二:開發者工具布局邊界的使用,儘量減少布局層級
第三:開發者工具gpu過度繪製,控制背景以及重疊區域的過渡繪製
第四:開發者工具gpu呈現模式分析,這裡是幀率最好的體現,這裡可以結合monitors和記憶體cpu的trace檔案來分析開銷。
和高爺
APP響應時間和響應速度測試
測試方法 冷啟動 adb shell am start w com.ui.launcherui 絕對路徑,首個activity。dos命令下獲取路徑命令 adb shell dumpsys window w findstr findstr name am是shell中整合的乙個命令,activity...
PHP專案響應速度優化
專案可優化範圍很廣,這裡我們只討論php程式本身的加速。開啟opcache。zend引擎每次都會把php 解析成opcode,開啟opcache後,會快取opcode。伺服器的gcc編譯器使用4.8 zend處理opcode部分的優化gcc4.8 才支援,官方稱會帶來5 效能提公升。跟第一條的opc...
PHP專案響應速度優化
專案可優化範圍很廣,這裡我們只討論php程式本身的加速。開啟opcache。zend引擎每次都會把php 解析成opcode,開啟opcache後,會快取opcode。伺服器的gcc編譯器使用4.8 zend處理opcode部分的優化gcc4.8 才支援,官方稱會帶來5 效能提公升。跟第一條的opc...