獲取Android手機app啟動時間


經過一天的摸索,終於找到怎么處理了,對於一個自動化技術不高的小白來說,還是挺有成就感的,哈哈

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

  使用dumpsys命令可以查看Android手機當前正在運行的Activity
adb shell dumpsys activity activities | findstr "Run"

如果結果不是想要找的Activity,可以去掉findstr過濾條件,這樣會輸出大量的信息,可以在結果中查找



 

備注: 查看Android應用包名、Activity的幾個方法: http://www.sohu.com/a/294671907_216613

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM