文章目錄
- 19-1 app啟動性能測驗
- 1)adb logcat方法
- 2)使用ffmpeg拆幀
- 19-2 介面性能測驗
- 19-3 PC瀏覽器的性能資料獲取與分析
- 1)關鍵選項
- 2)時間線關鍵資訊
- 19-4 系統資源分析
- 1)cpu統計
- GPU渲染工具
- 2)mem統計
- 查記憶體命令procstas
- 也可以用meminfo命令
- 提示
- 3)網路流量分析
- 顯示網路流量命令
- 指定應用UID命令
- 19-5 耗電量測驗
- 安裝環境
- clone代碼
- 19-6 健壯性測驗
19-1 app啟動性能測驗





android設計理念,利用activity降低模塊耦合度





1)adb logcat方法

-S 啟動前先停掉
-W 等待activity完成


totaltime即為冷啟動時間


2)使用ffmpeg拆幀

adb pull . 拉到本地
ffmpeg 工具可進行視頻拆解
-r 10 1秒拆成10幀(1幀相當于0.1秒)——通過拆幀時間推算出每個啟動用了多長時間
frames_%03d.jpg 格式化命名拆幀圖片——frames開頭,后面3個長度,0代表不夠三個長度用0補充



19-2 介面性能測驗


19-3 PC瀏覽器的性能資料獲取與分析

- webview:手機內嵌瀏覽器,可以加載小型頁面,android4.4后直接采用Chrome瀏覽器,webview主要用來加載html
- h5:就是html5,就是html的技術
- webview通常采用的技術是h5,h5依托webview加載
1)關鍵選項


- 藍線代表資料的dom出現的時間,到藍線代表dom加載完全,可以對dom進行點擊,sendkeys,但圖片,動圖,視頻未加載完全
- 紅線后代表資源加載完全
- Disable cache:每次重繪時,從0開始,清除快取,相當于移動端的冷啟動
- XHR:加載動態資源,圖片,CSS靜態資源不會出現在懸框里
selenium中
- xpath方式定位是在dom中查找,dom加載后即會查找
- css方式定位是在css加載完成后查找(圖片等加載完成)
- 使用css 定位更穩定
2)時間線關鍵資訊

雙擊專案即可點擊時間線
- Queueing:排隊時間(資料傳輸程序中排隊程序,佇列排隊0.91ms)
- Stalled:資源在排隊程序中被丟棄的時間(在佇列排隊中請求停止請求0.25ms)
- Waiting(TTFB):等待服務器回應的時間(發出了一個請求,等待了25.72ms收到服務器的回應)
- Content Download:下載資源的時間


滑鼠選定拖動后可以只顯示選中內容


Explanation——官網欄位詳細解釋






Chrome62版本webview比較穩定



19-4 系統資源分析
1)cpu統計


cpu處理圖形后,GPC拿到進行繪制
中間經過Graphics中間件繪圖處理工具
cpu處理過快,GPU處理過慢,出現快取(綠色方塊),進行碼隊
如果GPU顯示完整,GPU渲染程序平緩,佇列也好,那么cpu一定也也沒問題
因此可以借助GPU繪制工具,反觀CPU狀態

GPU渲染工具



- 每個豎條都是1幀,每1幀代表一個畫面
- 綠線:看電影時fps通常為24,1s繪制24幀,android規定繪制1幀時間不要超過16ms,綠線代表16ms,超過綠線代表超過16ms,超過16ms時現象:發生卡頓





GPU拿到view之前的作業,CPU放入佇列或中間件處理的程序即為藍色

OpenGL或其他中間件處理displaylist
較高:負載過重


可到android官網查看



2)mem統計

手機記憶體即為room

所有RSS 相加大于實際物理記憶體(不按比例分配)
所有PSS相加等于實際物理記憶體
USS 互動資料存放在共享記憶體中


查記憶體命令procstas

process stats行程狀態
– hours 僅看3小時內的



*行程名,用戶名,版本號:
- Total綜合記憶體情況:100%代表3個小時內完全占據了記憶體,說明應用在3個小時內一直在啟動,沒有中斷過
- Persistent常駐記憶體:期間一直常駐的時間
- Imp Fg是否前臺顯示
- Service是否以服務形式駐留記憶體
- Top目前最高級別



也可以用meminfo命令


如果不指定包名,默認以PSS進行排序

提示
- 同一時間total有好幾個100%,同一時間有多個占記憶體應用,測驗記憶體不準確,做版本對比才有意義,而不是看應用本身記憶體大小
3)網路流量分析

顯示網路流量命令



type:網路型別
subType:子網型別
networkID:網路ID


指定應用UID命令

指定包,過濾userID

直接輸入命令報空指標例外(模擬器無效,需連接真機)



- rb:receive bytes 接收位元組數
- rp:receive package 接收包數
- tb:transport bytes 傳輸位元組數
- tp:transpor package 傳輸包數

網路資訊的內容建議查閱AndroidStuio官網或Android Developer官網進行擴展
19-5 耗電量測驗



1、clone專案
2、進入目錄
3、安裝golang語言;編譯,拉取;-d -u不運行只編譯和拉取
4、go run 運行


清空
電量錄制


左邊:常見內容指標
黑線:所有走勢代表整體耗電量變化(時間較短時看不到黑線,小時以上才能看到黑線)

battery_level電量百分比
screen螢屏亮度

安裝環境
1、下載golang
2、環境變數設定golang
3、python版本設定2.7(history依賴2.7,3.7會報錯)
clone代碼

不建議docker安裝,專案比較老,未更新,建議手動編譯




修改版本為20190513(最穩定)





注意??:正常測驗應使用真機,不用模擬器,(演示使用模擬器&不清楚資料)

電量資料收集
對手機進行隨機操作或自動化測驗腳本等
長時間操作

資料下載
uptime開機時間

匯入資料

用模擬器匯入的資料非常少
👇真機資料10min 左右

19-6 健壯性測驗



盲點:隨機操作
網路不佳:弱網+盲點
資料不通:無網,飛行模式測驗

打開安卓模擬器



轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/286785.html
標籤:其他
