adb dumpsys 调用栈的使用

3,550 阅读2分钟

使用命令查看当前正在运行的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的使用规则


  1. adb shell dumpsys power > power.txt

adb 查看当前系统的版本号

adb shell getprop ro.build.version.release

8.1.0