获取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

 

posted @ 2019-07-04 09:39  油条稀饭  阅读(1769)  评论(1编辑  收藏  举报