使用命令查看当前正在运行的Activity栈
adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'
查看当前的TaskRecord信息
adb shell dumpsys activity activities > data.txt 查看信息
四种启动模式
standard模式 也是activity的默认启动模式。
不论当前 Task栈中有没有 目标activity实例,都会创建一个新的activity实例,放入当前Task栈(最近的非singleInstance模式 的Task栈)
singleTop模式
若当前Task栈的栈顶不是 目标activity实例 ,创建一个新的activity实例,放入当前Task栈(最近的非singleInstance模式 的Task栈) 若当前Task栈的栈顶是 目标activity实例,则复用已有的activity实例
singleTask模式
若当前Task栈中没有 目标activity实例,则创建新的Task栈,并创建目标activity实例。(Task栈中存放activity的实例)
若当前Task栈中有 目标activity实例,系统会把位于该activity上的所有activity移除Task栈,从而使得目标activity转入栈顶
singleTask模式的activity所在栈,可以接受其他standard模式和singleTop模式的activity实例
singleInstance模式
若所有Task栈中都没有 activity实例,则创建新的Task栈,并创建activity实例。
若存在 目标activity实例,则把activity实例所在的Task栈转到前台
singleInstance模式的activity所在栈,不接受standard模式、singleTop模式、singleTask模式的activity实例。
所以singleInstance模式的activity实例所在栈,永远只有一个activity实例
其他的dumpsys当前的调用信息
adb shell dumpsys activity ----------查看ActvityManagerService 所有信息
adb shell dumpsys activity activities ----------查看Activity组件信息
adb shell dumpsys activity services ----------查看Service组件信息
adb shell dumpsys activity providers ----------产看ContentProvider组件信息
adb shell dumpsys activity broadcasts --------查看BraodcastReceiver信息
adb shell dumpsys activity intents--------------查看Intent信息
adb shell dumpsys activity processes---------查看进程信息
使用工具添加Hprof文件
hprof-conv dump.hprof converted-dump.hprof
查看当前系统里面WakeLock的使用规则
- adb shell dumpsys power > power.txt