温启动(Warm start)
场景:App进程存在,当时Activity可能因为内存不足被回收。这时候启动App不需要重新创建进程,但是Activity的onCrate还是需要重新执行的。场景类似打开淘宝逛了一圈然后切到微信去聊天去了,过了半小时再次回到淘宝。这时候淘宝的进程存在,但是Activity可能被回收,这时候只需要重新加载Activity即可。
生命周期:onCreate->onStart->onResume->Activity生命周期
启动速度:较快
热启动(Hot start)
场景:App进程存在,并且Activity对象仍然存在内存中没有被回收。可以重复避免对象初始化,布局解析绘制。
场景就类似你打开微信聊了一会天这时候出去看了下日历 在打开微信 微信这时候启动就属于热启动。
生命周期:onResume->Activity生命周期
启动速度:快
adb shell am start -W [packageName]/[packageName.***Activity]
- 例如:
adb shell am start -W com.dateyou.test/com.datayou.test.ui.home.PageLoadingActivity
- 当然为了结果更加准确,可以执行多次取平均值。
adb shell am start -S -R 10 -W com.dateyou.test