在日志中打印当前返回堆栈

Posted

技术标签:

【中文标题】在日志中打印当前返回堆栈【英文标题】:print the current back stack in the log 【发布时间】:2012-07-17 23:02:54 【问题描述】:

有没有办法在 android 应用中打印当前任务的当前返回堆栈?特别是,我想了解一个活动在其 onDestroy() 被调用后何时从堆栈中弹出。

【问题讨论】:

【参考方案1】:

要改进 Paul 的答案并查看与您的应用相关的数据,只有您可以这样做:

adb shell dumpsys activity package <your.package.name>

【讨论】:

【参考方案2】:

使用下面的命令可以显示tasks和activity backstack

adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'

结果如下:

Running activities (most recent first):
  TaskRecord29b17859 #1134 A=com.google.android.dialer U=0 sz=1
    Run #0: ActivityRecord180fd6be u0 com.google.android.dialer/.extensions.GoogleDialtactsActivity t1134
Running activities (most recent first):
  TaskRecord7764a61 #1054 A=com.google.android.googlequicksearchbox U=0 sz=1
    Run #1: ActivityRecord2900994b u0 com.google.android.googlequicksearchbox/com.google.android.launcher.GEL t1054
  TaskRecord4aa804c #1129 A=com.android.systemui U=0 sz=1
    Run #0: ActivityRecord1816140b u0 com.android.systemui/.recents.RecentsActivity t1129

【讨论】:

【参考方案3】:

如果只想查看 Activity 回栈,请使用以下设置命令

adb 外壳

dumpsys 活动 | grep -i 运行

【讨论】:

【参考方案4】:

您可以为此使用 adb:

adb shell dumpsys activity

【讨论】:

打印出来的信息很多。我应该关注哪个部分?我似乎没有找到任务堆栈的描述。

以上是关于在日志中打印当前返回堆栈的主要内容,如果未能解决你的问题,请参考以下文章

程序中打印当前进程的调用堆栈(backtrace)

打印日志查看调接口时间

我可以从 Microsoft Access VBA 中的当前事件堆栈返回吗?

有没有比使用 backtrace() 更便宜的方法来查找调用堆栈的深度?

单击通知时如何保留当前的返回堆栈(或任务)?

React中插值表达式里面的函数返回值无效?