APP专项测试--启动时间测试


时间启动测试:测试从启动app到主页面显示的时间,当打开一个app需要等待的时间过长时就会有一种较差的体验
为了良好的体验,一般会在启动时增加一个启动页面,为了缓解用户等待加载APP数据内容出现的一个界面,有的可能是一个空白页面
APP的启动可以分为三种情况:冷启动、热启动、温启动
冷启动:当应用启动时,后台没有该应用的进程,系统会重新创建一个进程分配给该应用,也就是实例化application如APP首次安装后打开
冷启动的流程即为APP启动流程的全过程,需要创建APP进程,加载相关资源(,如缓存目录的生产,数据库的建立,SharedPreference的初始化),启动Main Thread,初始化首屏activity
 冷启动场景:1、首次安装打开app
2、app从后台杀死,重新打开
热启动:当应用启动时,后台已有该应用的进程,这时会从已有的进程来启动activity(不需要重新创建application)
热启动场景:按home键退出,进程是保存在后台的,activity由onpusume()和onstop(),变为onresume(),活动可见状态
温启动:用户退出应用,但随后重新启动。该过程可能已继续运行,但应用程序必须通过调用onCreate()从头开始重新创建活动
温启动场景:1、点击back返回键,退出应用,活动被摧毁ondestroy()
2、app由于内存不足被回收,activity在onPause()和onStop()状态时,出现了优先级更高的程序需要内存,进程被杀掉
  
测试项:
1.冷启动速度
2.热启动速度
3.温启动速度
 
操作步骤:
1、获取包名:adb shell pm list packages
2、获取启动Activity:adb shell dumpsys package XXXXX

 3.执行命令:adb shell am start -S -W [packageName]/[packageName.MainActivity]

-S 启动页面前先强制停止应用, -W 等待启动完成
 
测试冷启动:
1.首次安装完APP,不打开
执行命令:adb shell am start -W [packageName]/[packageName.MainActivity]
2.将APP从后台杀死
执行命令:adb shell am start -W [packageName]/[packageName.MainActivity]
 

 测试暖启动:

1.按home键推到后台
执行命令:adb shell am start -W [packageName]/[packageName.MainActivity] 
测试结果如下图所示

 测试温启动:

1.点击返回键,退出应用

执行命令:adb shell am start -W [packageName]/[packageName.MainActivity] 

 ThisTime:一般和TotalTime时间一样,除非在应用启动时开了一个透明的Activity预先处理一些事再显示出主Activity,这样将比TotalTime小

TotalTime:应用的启动时间,包括创建进程+Application初始化+Activity初始化到界面显示(一般需要关注这个时间,开发可根据这个时间去判断是否需要优化)
WaitTime:一般比TotalTime大点,包括系统影响的耗时
 
拓展知识:
一、SharedPreferences接口:为了保存软件的设置参数,Android平台为我们提供了一个SharedPreferences接口,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下
一、针对application的介绍:
Application 是用来维护应用程序全局状态[maintain global application state]的基础类,Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例模式的一个类。且 Application 对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局唯一的,所以在不同的Activity、Service中获得的对象都是同一个对象。所以通过 Application 来进行一些数据传递、数据共享、数据缓存等操作
常见用途:
1.初始化资源,APP启动时会在application的oncreate()方法中初始化一些全局资源,系统配置,三方sdk等
2.数据共享,由于application对象是全局唯一的,所以可以用来缓存一些全局变量,这些变量在任何地方都可以调用,达到共享目的
3.监听APP所处状态,锁屏开屏,退到后台回到前台,退出应用等
二、activity生命周期

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM