使用adb查看当前手机的相关内容adb shell dumpsys activity

可以得到如下内容:ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents)

* PendingIntentRecord{42b05f20 com.android.vending startService}

... ... ... ...

ACTIVITY MANAGER BROADCAST STATE (dumpsys activity broadcasts)

Historical broadcasts [foreground]:

#0: BroadcastRecord{430d2fb8 u-1 android.intent.action.TIME_TICK}

act=android.intent.action.TIME_TICK flg=0x50000014 (has extras)

extras: Bundle[{android.intent.extra.ALARM_COUNT=1}]

... ... ... ...

ACTIVITY MANAGER CONTENT PROVIDERS (dumpsys activity providers)

Published single-user content providers (by class):

* ContentProviderRecord{429d18a8 u0 com.android.phone/.IccProvider}

proc=ProcessRecord{429765d8 858:com.android.phone/1001}

singleton=true

authority=icc

... ... ... ...

ACTIVITY MANAGER SERVICES (dumpsys activity services)

User 0 active services:

* ServiceRecord{429f8668 u0 com.android.bluetooth/.hid.HidService}

app=null

created=-1h44m27s317ms started=false connections=0

... ... ... ...

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)

Stack #0:

Task id #28

TaskRecord{43525058 #28 A=com.android.systemui U=0 sz=1}

Intent { act=com.android.systemui.recent.action.TOGGLE_RECENTS flg=0x10c00000 cmp=com.android.systemui/.recent.RecentsActivity (has extras) }

Hist #0: ActivityRecord{428d1ae8 u0 com.android.systemui/.recent.RecentsActivity t28}

Intent { act=com.android.systemui.recent.action.TOGGLE_RECENTS flg=0x10800000 cmp=com.android.systemui/.recent.RecentsActivity bnds=[328,886][656,1176] }

ProcessRecord{42968230 695:com.android.systemui/u0a12}

... ... ... ...

ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)

Process LRU list (sorted by oom_adj, 28 total, non-act at 3, non-svc at 3):

PERS #27: sys F/ /P trm: 0 605:system/1000 (fixed)

... ... ... ...

每部分的开头部分,都会显示 如果想要查看哪些内容,需要使用哪些命令

adb命令查看 activity列表

根据上面的介绍,可以得知,我们可以使用如下的脚本,adb shell dumpsys activity activities

运行后,得到有如下结构的日志信息:Stack #45: type=standard mode=fullscreen

isSleeping=false

mBounds=Rect(0, 0 - 0, 0)

......

Stack #0: type=home mode=fullscreen

isSleeping=false

mBounds=Rect(0, 0 - 0, 0)

......

Stack #1: type=recents mode=fullscreen

isSleeping=false

mBounds=Rect(0, 0 - 0, 0)

......

其中每个Stack开始代表一个App的活动栈,每个活动栈有一个id,如上所示的Stack #45中的45。

android系统中目前定义了两种类型的Stack,系统预定义的静态栈,总共有五种,如下所示:0 HOME_STACK_ID:Home应用以及recents app所在的栈

1 FULLSCREEN_WORKSPACE_STACK_ID:一般应用所在的栈

2 FREEFORM_WORKSPACE_STACK_ID:类似桌面操作系统

3 DOCKED_STACK_ID:分屏

4 PINNED_STACK_ID:画中画栈

另一种栈,是系统动态生成的,它的id就是大于4

我们来看下Stack块中的内容,我们随机抽取了一个stack进行分析Stack #4: type=standard mode=fullscreen //Stack信息

isSleeping=false

mBounds=Rect(0, 0 - 0, 0)

Task id #51 //Task信息

mBounds=Rect(0, 0 - 0, 0)

mMinWidth=-1

mMinHeight=-1

mLastNonFullscreenBounds=null

* TaskRecord{e0bdfdf #51 A=android.tplink.sjj.teststack U=0 StackId=4 sz=2}

userId=0 effectiveUid=u0a128 mCallingUid=u0a28 mUserSetupComplete=true mCallingPackage=com.cyanogenmod.trebuchet

affinity=android.tplink.sjj.teststack

intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=android.tplink.sjj.teststack/.MainActivity} //启动信息,包括启动源和被启动app的MainActivity

realActivity=android.tplink.sjj.teststack/.MainActivity

autoRemoveRecents=false isPersistable=true numFullscreen=2 activityType=1

rootWasReset=true mNeverRelinquishIdentity=true mReuseTask=false mLockTaskAuth=LOCK_TASK_AUTH_PINNABLE

Activities=[ActivityRecord{4542de6 u0 android.tplink.sjj.teststack/.MainActivity t51}, ActivityRecord{898d92a u0 android.tplink.sjj.teststack/.FirstActivity t51}] //当前栈中Activity记录

askedCompatMode=false inRecents=true isAvailable=true

mRootProcess=ProcessRecord{ebe742c 31812:android.tplink.sjj.teststack/u0a128}

stackId=4

hasBeenVisible=true mResizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION mSupportsPictureInPicture=false isResizeable=true lastActiveTime=256734507 (inactive for 30s)

* Hist #1: ActivityRecord{898d92a u0 android.tplink.sjj.teststack/.FirstActivity t51} //栈中Activity调用历史(最近的)

packageName=android.tplink.sjj.teststack processName=android.tplink.sjj.teststack

launchedFromUid=10128 launchedFromPackage=android.tplink.sjj.teststack userId=0

app=ProcessRecord{ebe742c 31812:android.tplink.sjj.teststack/u0a128}

Intent { flg=0x10000000 cmp=android.tplink.sjj.teststack/.FirstActivity }

frontOfTask=false task=TaskRecord{e0bdfdf #51 A=android.tplink.sjj.teststack U=0 StackId=4 sz=2}

taskAffinity=android.tplink.sjj.teststack

realActivity=android.tplink.sjj.teststack/.FirstActivity

baseDir=/data/app/android.tplink.sjj.teststack-Cu_ETALVG7u-Plh9vUC5Ug==/base.apk

dataDir=/data/user/0/android.tplink.sjj.teststack

splitDir=[/data/app/android.tplink.sjj.teststack-Cu_ETALVG7u-Plh9vUC5Ug==/split_lib_dependencies_apk.apk,

.........................................

fullscreen=true noDisplay=false immersive=false launchMode=2

frozenBeforeDestroy=false forceNewConfig=false

mActivityType=standard

waitingVisible=false nowVisible=true lastVisibleTime=-33s65ms

resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION

mLastReportedMultiWindowMode=false mLastReportedPictureInPictureMode=false

* Hist #0: ActivityRecord{4542de6 u0 android.tplink.sjj.teststack/.MainActivity t51} //同上,这是在上个历史之前的

packageName=android.tplink.sjj.teststack processName=android.tplink.sjj.teststack

launchedFromUid=10028 launchedFromPackage=com.cyanogenmod.trebuchet userId=0

app=ProcessRecord{ebe742c 31812:android.tplink.sjj.teststack/u0a128}

Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=android.tplink.sjj.teststack/.MainActivity bnds=[24,204][192,398] }

frontOfTask=true task=TaskRecord{e0bdfdf #51 A=android.tplink.sjj.teststack U=0 StackId=4 sz=2}

taskAffinity=android.tplink.sjj.teststack

realActivity=android.tplink.sjj.teststack/.MainActivity

baseDir=/data/app/android.tplink.sjj.teststack-Cu_ETALVG7u-Plh9vUC5Ug==/base.apk

dataDir=/data/user/0/android.tplink.sjj.teststack

splitDir=[/data/app/android.tplink.sjj.teststack-Cu_ETALVG7u-Plh9vUC5Ug==/split_lib_dependencies_apk.apk,

fullscreen=true noDisplay=false immersive=false launchMode=0

frozenBeforeDestroy=false forceNewConfig=false

mActivityType=standard

waitingVisible=false nowVisible=false lastVisibleTime=-36s658ms

resizeMode=RESIZE_MODE_RESIZEABLE_VIA_SDK_VERSION

mLastReportedMultiWindowMode=false mLastReportedPictureInPictureMode=false

.......................................

Running activities (most recent first): // 最近该任务栈中活动的Activity,按最近时间排列

TaskRecord{e0bdfdf #51 A=android.tplink.sjj.teststack U=0 StackId=4 sz=2}

Run #1: ActivityRecord{898d92a u0 android.tplink.sjj.teststack/.FirstActivity t51}

Run #0: ActivityRecord{4542de6 u0 android.tplink.sjj.teststack/.MainActivity t51}

mResumedActivity: ActivityRecord{898d92a u0 android.tplink.sjj.teststack/.FirstActivity t51} //当前页面Activity

mLastPausedActivity: ActivityRecord{4542de6 u0 android.tplink.sjj.teststack/.MainActivity t51} //最后一个退出前台的Activity

..........................

以上内容中,我们可以找到如下的关键词,Running activities (most recent first):

该关键词表示是该Stack中正在运行的activity列表,并且按照时间最近排序,第一个为最顶层的ActivitymResumedActivity

该关键词后表示的就是当前正在运行的ActivitymLastPausedActivity

该关键词后表示的就是最近一个退出前台的Activity

快捷查看所有当前正在运行的Activity

如果我们觉得上面的信息太冗杂,不需要这么详尽的信息,那么我们还有如下的命令进行过滤adb shell dumpsys activtiy activities | sed -En -e '/Running activities/,Run #0/p'

同理其他的组件,比如Intent、Service等。

android 获取堆栈地址,Android查看activity的任务堆栈相关推荐

  1. android 获取mac地址,android 设备怎么获取mac地址吗

    获取mac地址的话,可以在命令行窗口获取,代码如下: Android 底层是 Linux,我们还是用Linux的方法来获取: 1 cpu号: 文件在: /proc/cpuinfo 通过Adb shel ...

  2. android获取详细地址,Android获取当前子网掩码地址(亲测可用)

    Android 获取当前子网掩码地址(亲测可用),现在网上好多都是通过 DhcpInfo 来获取,但是通过这种方法有 Bug,很多人用 DhcpInfo 的方式都是获取不到,都是为 0.0.0.0. ...

  3. android 获取全国地址,Android获取所有国家列表

    前言 因为项目需要实现选择国家列表如下图: 微信图片_20180624210302.png 不多废话,上代码 public static List getAllLocale(){ List mAllL ...

  4. Android10一直获取IP地址,Android 获取IP地址的实现方法

    Android 获取IP地址 最近做项目,有一个需求是Android设备获取当前IP的功能,经过一番查询资料解决了,记录下实现方法. 1.使用WIFI 首先设置用户权限 其次,代码如下 public ...

  5. android 获取mac地址

    android获取Mac地址的两种方式,适用于6.0版本以下 public static String tryGetWifiMac(Context context) {WifiManager wm = ...

  6. Android获取WifiMac地址

    Android获取WifiMac地址 1:android6.0以下通过wifiinfo来获取. WifiManager wifi = (WifiManager) context.getSystemSe ...

  7. android查ip地址,Android 查看IP地址

    在网上查看了不少Android手机获取用户IP的例子,不过很少发现理想的,大多情况仅仅是获取WiFi情况下的用户IP,而3G网络的IP网上很少看到相关代码,今天抽空出来搞搞不同网络下获取用户的IP,希 ...

  8. android mac测试地址,android获取有线网的Mac地址

    Android TV开发中有的机器会接有线网,需要获取Mac地址,下面是我测试的两种Mac地址的获取方式. 1.一共两个方法,目前第二个方法获取的不准,最后一位数取的不对. private Strin ...

  9. android 4g获取mac地址,Android手机获取Mac地址的几种方法

    最常用的方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context * @return */ private static Stri ...

  10. android 取mac地址,Android手机获取Mac地址的几种方法,androidmac

    Android手机获取Mac地址的几种方法,androidmac 最常用的方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context ...

最新文章

  1. CentOS7防火墙firewalld和iptable的设置和使用
  2. android videoview属性,Android VideoView
  3. 14-多对多关系建表
  4. STL set和multiset
  5. JavaScript课堂笔记!
  6. 怎么得到期刊论文的源代码_帮助这份开放获取期刊计划即将出版的《开放源代码策略》
  7. 什么是港美股窝轮(Warrants)?
  8. CRC校验算法及C++程序实现
  9. 【游戏开发实战】教你在Unity中实现笼中窥梦的效果(RenderTexture | 视觉差| 多相机 | 渲染 | shader | 多场景)
  10. 忆亚强建筑预算软件的2001年半年时光
  11. c语言——求逆矩阵,伴随矩阵,行列式
  12. 课程设计 天气预报数据可视化开发
  13. LeetCode刷题笔记——(8/17 - 8/27)
  14. VMware Ubuntu18.10与Win10共享文件夹
  15. 在单个虚拟机中搭建DPDK测试环境
  16. vr企业视频展示如何制作
  17. MountVolume.NewMounter initialization failed for volume “pvc-61dedc85-ea5a-4ac7-aaf3-e072e2e46e18“
  18. Gherkin语法详解之Data Format(七)
  19. 手写C语言之函数概念-函数分类-实参与形参-传值调用与传址调用介绍(11)
  20. VMware上安装Hadoop安装配置与教程小白必看

热门文章

  1. 《动手学深度学习》| 2 深度学习基础
  2. Android AVD 存放路径修改
  3. 【PHP练习】每日词汇,随机产生10个单词,方便备考随时背诵(php+html+css)
  4. Navicat15下载安装
  5. Ceph Cache tier配置
  6. 短视频剪辑入门技巧,简单却重要
  7. 微信公众号文章的爬取(搜狗微信搜索)
  8. 语音html浏览器,兼容IE的语音播放
  9. excel合并两列内容_excel新手问题:怎么把两列数据合并到一起?用这个公式
  10. 解决笔记本电脑有线耳机插入无反应的情况