如何查看Activity任务栈以及dumpsys_activity命令的简要使用及介绍

来源:互联网 发布:unity3d 5.3.4f1 下载 编辑:程序博客网 时间:2024/05/17 09:39

今天看到淘宝客户端的某个页面效果,效果是在两个Activity中做动画,为了知道究竟是不是在同一个Activity中做的效果,就必须采取一种手段来知道是不是同一个Activity.描述一下这个动画效果:列表页面点击图片,图片会滑动到下个页面的顶部,这就涉及到一个问题,如何在两个Activity之间做动画?有什么思路吗?


有两种实现方式:


第一种:自己手动写一个程序,通过系统提供的函数来打印任务栈顶的Activity名称来判断是否是同一个Activity:

List<RunningTaskInfo> runningTasks = mActivityManager.getRunningTasks(5);                    for (RunningTaskInfo runningTaskInfo : runningTasks) {                      Log.v("taskInfo", runningTaskInfo.topActivity.toString());                  }  
以下是列表页的任务栈顶信息:



以下是详情页的任务栈顶信息:



很明显,两个页面不是同一个Activity.


第二种:通过adb shell dumpsys activity命令:

如下:

使用cmd启动adb shell:

E:\Android_Sdk\Android-sdks\platform-tools>adb shellshell@NX601J:/ $

使用命令dumpsys activity > taskinfo.txt 命令 将打印出的结果输出到taskinfo.txt文件中,方便导出到电脑查看.


1.首先在磁盘的根目录建立一个taskinfo.txt的文件:

shell@NX601J:/storage/sdcard0 $ touch taskinfo.txt

2.然后通过命令将结果输出到这个文件中:

shell@NX601J:/storage/sdcard0 $ dumpsys activity > /storage/sdcard0/taskinfo.txt

命令执行完成文件中就存入了各种任务信息(只截取了部分):

这个文件中存储了非常丰富的信息:


ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents)ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)ACTIVITY MANAGER SERVICES (dumpsys activity services)ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)Historical broadcasts [background]:Running activities (most recent first):Recent tasks:


通过字面意思就可以知道是什么吧?


找到我们想要的结果:


=================================================================



这样,通过执行俩次同样的操作就可以知道是否是同一个Activity了.



转自:http://blog.csdn.net/sahadev_/article/details/48246319


原创粉丝点击