执行命令: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]
测试结果如下图所示
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所处状态,锁屏开屏,退到后台回到前台,退出应用等