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

  • 相关阅读:
    Maven学习总结(九)——使用Nexus搭建Maven私服
    Maven学习总结(八)——使用Maven构建多模块项目
    Maven学习总结(七)——eclipse中使用Maven创建Web项目
    Maven学习总结(六)——Maven与Eclipse整合
    Maven学习总结(五)——聚合与继承
    Maven学习总结(四)——Maven核心概念
    剑指offer【12】- 二进制中1的个数
    剑指offer【11】- 矩形覆盖
    剑指offer【10】- 变态跳台阶
    剑指offer【09】- 跳台阶
  • 原文地址:https://www.cnblogs.com/zzllovehappy/p/11130489.html
Copyright © 2020-2023  润新知