zoukankan      html  css  js  c++  java
  • 获取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

  • 相关阅读:
    Ubuntu12.04配置永久静态ip地址
    linux shell 命令获取字符串/文件的MD5值
    设置VMware中Kali 共享文件夹
    tomcat的一些优化及报错
    用Toad for Oracle创建数据库表空间和用户
    linux远程Windows服务器
    linux查询及添加用户
    AJAX
    Cookie和Session
    Django-中间件
  • 原文地址:https://www.cnblogs.com/zzllovehappy/p/11130489.html
Copyright © 2011-2022 走看看