Android应用开发者经常要想尽办法来提升程序性能。由于应用越来越复杂,这个问题也变得越来越棘手。性能优化的过程分两部分:发现性能瓶颈,制定方案、解决性能问题。解决性能问题的方案需要具体情况具体分析,并没有完全固定的路子,更多的是靠经验的积累,下面就启动速度优化方面我们一起来谈一谈。
了解启动速度
启动的类型,一般分为冷启动和热启动
冷启动:启动时,后台没有任何该应用的进程,系统需要重新创建一个进程,并结合启动参数启动该应用。
热启动:启动时,系统已经有该应用的进程(比如按 home 键临时退出该应用)下启动该应用。
如何获取启动时间
1、adb 命令
adb shell am start -S -W 包名/启动类的全名
adb shell am start -S -W xxx/xxxActivity
Stopping: xxx
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=xxx/xxxActivity }
Status: ok
Activity: xxx/xxxActivity
ThisTime: 770
TotalTime: 770
WaitTime: 848
Complete
ThisTime: 表示最后一个 Activity 启动时间
TotalTime: 表示启动过程中,所有的 Activity 的启动时间
WaitTime: 表示应用进程的创建时间 + TotalTime
一般我们关注 TotalTime 就好了。
2、时间戳
时间戳的方法基于以下的 2 个知识点。
应用进程刚创建,会调用 Application 的 onCreate 方法。