我刚刚开始学习这个平台,我刚开始开发一个简单的Android应用程序 .
我正在使用带有ADT插件0.9.6的Eclipse IDE .
我需要知道是否可以查看与任务相关联的 Activity
堆栈?
有没有办法通过DDMS工具或通过任何其他技术?
基本上我需要的是能够看到任务的堆栈活动,以确保应用程序按预期运行 .
我知道通过使用 Intent
对象中的标志和 <activity>
元素的某些属性,可以在某种程度上控制任务行为 .
然而,拥有一种工具会很好 - 尤其是在调试模式下 - 这样可以让开发人员直接看到 Activity
堆栈 .
8 回答
从命令行,您可以使用:
adb shell dumpsys activity
这要求活动管理器打印其当前状态的转储 . 第一部分是完整的活动历史,按任务组织 . 之后还会打印很多东西,所以你可能需要向上滚动才能找到你想要的东西 .
以下是其输出示例(确切内容因平台版本而异),显示顶级任务是两个活动的联系人,后面是具有一个活动的启动器:
您可以在命令行中使用以下命令来查看系统中的任务和backstack:
或者您可以尝试TaskLogger,这是我创建的一个简单工具,可以监控应用程序中的所有活动和任务,并在Logcat中实时输出 .
我知道这是一个老问题但是,此功能现已融入Android Studio:
然后在生成的文本文件中,搜索
ACTIVITY
(全部大写):如果要检查特定包的任务堆栈,以下命令将执行:
我总是检查这部分长转储消息..
Note: Run #4 is the activity that you see now on the screen. :)
您可以使用工具hierarchyviewer.bat . 它是android SDK的一部分 . 它只适用于模拟器 . 但它更加舒适和清晰 .
编辑:我刚刚在Eclipse中找到了Hierarchy Viewer!它也适用于真实设备 . 只需打开透视图Windows-> Open Perspective-> Hierarchy View在列表中,您可以看到所有连接的设备和模拟器以及活动堆栈 . 此外,在树视图中,您可以看到有关视图本身的更多信息 .
编辑:层次结构查看器仅适用于开发人员设备 . 出于安全原因, 生产环境 设备无法执行此操作 . 欲了解更多信息,请查看following answer
对于最近的任务列表
对于正在运行的服务列表
对于当前内容提供商的列表
对于广播状态列表
对于Pending Intents列表
对于权限列表
解决方案:'adb shell dumpsys activity'不适用于TabActivity . 选中每个标签项后,将启动相应的活动 . 但是当使用'adb shell dumpsys activity'时它总是返回'main'活动:
}