首页 > 移动平台 > 详细

Android App 启动时间

时间:2020-09-27 16:12:15      阅读:80      评论:0      收藏:0      [点我收藏+]

一、简介

    启动时间同样也遵循2-5-8原则,所谓2-5-8原则就是当用户能够在2秒以内启动应用进入第一帧,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择退出这个app或者卸载该app。因此启动时间对用户的使用行为起到至关重要的作用。

二、测试点

  • 冷启动:程序首次启动(进程首次创建并占用资源的过程)
  • 热启动:应用程序在后台(back返回或home键退到后台)未被完全杀掉时再次启动应用的过程
  • 应用界面切换(Activity)

三、测试方法

3.1 通过硬件进行测试

3.2 高速相机

采用录像的方法录制应用启动过程,然后通过人工数帧或者程序数帧的方式计算启动时间。

3.3 通过软件测试

1. 通过 logcat 中 ActivityManager 的相关数据获取,使用 DDMS 直接查看             

技术分享图片

 

 这个信息在 Activity 窗口完成所有的启动之后,首次绘制的时候输出,也就是如果 activity 栈里有这个 Activity,再启动(如从多任务管理列表切回)则不会输出该信息。

 log中的时间包括系统从开始处理启动Activity的时间到完成运行layout和draw函数的时间,不包括点击icon到系统接收到消息的时间。测试关注的其实是用户体验的启动时间,上面log不能满足我们的需求。

2. logcat 指令

启动应用后通过抓取 log 查看

  •  抓取log后查看 :adb logcat -d -s ActivityManager|findstr "Displayed">D:\log.txt
  •  在线查看: adb logcat -b events -s am_activity_launch_time 

3. 通过 am 启动 Activity 查看启动时间

adb shell am start -W –n <packageName>/<activityName>    单位ms  

技术分享图片

 如果只关心某个应用自身启动耗时,参考 TotalTime;如果关心系统启动应用总耗时,参考 WaitTime;如果关心应用有界面 Activity 启动耗时,参考 ThisTime。

4. 使用 screenrecord 命令

(1)adb shell screenrecord --bugreport /sdcard/launch.mp4

(2)启动app后,等待页面显示完成,结束录屏,拷贝到电脑使用能够逐帧查看的视频播放器播放(mac上quicktime就可以,win下可以用kmplayer),并按帧播放

5. 通过 ActivityManager 轮询实现获取启动时间        

技术分享图片

如何停止app?

1. adb shell am force-stop package (杀掉应用进程)

2. adb shell input keyevent 3      back返回退出应用

如何获取应用包名和activity名?

1. 有源码:打开源码在 AndroidManifest.xml 查看包名

2. 有安装包:aapt dump badging xx.apk

3. 已安装在手机:

(1)使用 adb logcat | grep START 命令启动应用查看

(2)pm list package 列出所有应用

(3)启动apk,使用 adb shell logcat | grep ActivityManager 查看



 

Android App 启动时间

原文:https://www.cnblogs.com/sharef/p/13739702.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!