經過一天的摸索,終於找到怎么處理了,對於一個自動化技術不高的小白來說,還是挺有成就感的,哈哈
1. 手機鏈接電腦時遇到的問題,設備一直顯示不出來,運行命令adb devices,只顯示:List of devices attached,后來換了數據線可以顯示了。
2. 有些手機一直顯示:xxxxx unauthorized, 后來重啟電腦解決問題。
1,2兩種情況遇到的幾率比較大,注意一下就好。
獲取device的包名和Activity名:
aapt dump badging app.apk(備注:直接把電腦上存在的app拖到這里即可)
獲取app的啟動時間:
adb shell am start -S -R 5 -W 包名/完整的Activity名
這個命令的輸出日志如下:
Stopping: 包名
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=包名/完整的Activity名 }
Status: ok
Activity: 包名/完整的Activity名
ThisTime: 2808
TotalTime: 2808
WaitTime: 2832
幾個時間參數的講解:
- WaitTime 返回從 startActivity 到應用第一幀完全顯示這段時間. 就是總的耗時,包括前一個應用 Activity pause 的時間和新應用啟動的時間;
- ThisTime 表示一連串啟動 Activity 的最后一個 Activity 的啟動耗時;
- TotalTime 表示新應用啟動的耗時,包括新進程的啟動和 Activity 的啟動,但不包括前一個應用Activity pause的耗時。
所以只關心 TotalTime 參數就可以了。但是問題來了:
- 首先這個是shell命令,能不能通過 Runtime 來進行調用這個命令我沒試過,極有可能是不行的
- 這個命令需要新起一個Activity來統計,在已運行應用中肯定不可能新起Activity來統計,因為新起肯定是熱啟動的,啟動時間不准
使用adb獲取當前正在運行的Activity
adb shell dumpsys activity activities | findstr "Run"
如果結果不是想要找的Activity,可以去掉findstr過濾條件,這樣會輸出大量的信息,可以在結果中查找
備注: 查看Android應用包名、Activity的幾個方法: http://www.sohu.com/a/294671907_216613