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

时间:2022-01-04 04:48:21

时间启动测试的意义:良好的用户体验 APP启动的三种状态:冷启动、热启动、温启动   冷启动:当应用启动时,后台没有该应用的进程,系统会重新创建一个进程分配给该应用,也就是实例化application如APP首次安装后打开 冷启动的流程即为APP启动流程的全过程,需要创建APP进程,加载相关资源,启动Main Thread,初始化首屏activity   热启动:当应用启动时,后台已有该应用的进程,这时会从已有的进程来启动activity(不需要重新创建application),如:按home键退出,按back键退出,进程是保存在后台的 温启动:介于冷启动和热启动之间   首次启动(冷启动):首次启动会做一些系统初始化工作,如缓存目录的生产,数据库的建立,SharedPreference的初始化,如果存在多 dex 和插件的情况下,首次启动会有一些特殊需要处理的逻辑,而且对启动速度有很大的影响   备注:为了保存软件的设置参数,Android平台为我们提供了一个SharedPreferences接口,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下   测试项: 1.冷启动速度 2.热启动速度 3.首次启动   操作步骤: 1、获取包名:adb shell pm list packages 2、获取启动Activity名 执行命令:adb shell am start -S -W [packageName]/[packageName.MainActivity] -S 启动页面前先强制停止应用, -W 等待启动完成   测试冷启动: 1.首次安装完APP,不打开 执行命令:adb shell am start -W [packageName]/[packageName.MainActivity] 2.将APP从后台杀死 3.执行命令:adb shell am start -W [packageName]/[packageName.MainActivity]   测试暖启动: 1.点击物理返回键或home键 执行命令:adb shell am start -W [packageName]/[packageName.MainActivity]  测试结果如下图所示 APP专项测试--启动时间测试

 

 

ThisTime:一般和TotalTime时间一样,除非在应用启动时开了一个透明的Activity预先处理一些事再显示出主Activity,这样将比TotalTime小 TotalTime:应用的启动时间,包括创建进程 Application初始化 Activity初始化到界面显示(一般需要关注这个时间,开发可根据这个时间去判断是否需要优化) WaitTime:一般比TotalTime大点,包括系统影响的耗时   拓展知识: 针对application的介绍: Application 是用来维护应用程序全局状态[maintain global application state]的基础类,Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例模式的一个类。且 Application 对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局唯一的,所以在不同的Activity、Service中获得的对象都是同一个对象。所以通过 Application 来进行一些数据传递、数据共享、数据缓存等操作 常见用途: 1.初始化资源,APP启动时会在application的oncreate()方法中初始化一些全局资源,系统配置,三方sdk等 2.数据共享,由于application对象是全局唯一的,所以可以用来缓存一些全局变量,这些变量在任何地方都可以调用,达到共享目的 3.监听APP所处状态,锁屏开屏,退到后台回到前台,退出应用等