Android通过adb shell命令查看当前与用户交互的前台Activity
前言
好久没有写点实战类型的博客了,最近一直都在捣鼓源码分析的,是时候来点实战类型的博客了。在Android的实际开发或者项目支持的时候,不知道小伙们有没有遇到过这种情况需要定位到某一个界面的Activity信息,虽然借着Android的IDE工具可以做到,但是有时候我们希望能有更快的方法能定位到这个界面信息,这个时候adb shell命令的强大就体现出来了。来我们实操一把!
注意:本次实际操作是基于Android 8 版本终端进行,其它版本Android可能有所差异!
一.实战开始
既然这是一篇实战,也没有过多的好说了,没有花拳绣腿的,得上真家伙。这里都是借助的一个Android内置终端命令dumpsys来操作的,关于dumpsy大伙可以参见AMS之dumpsys篇。
方案一
直接执行如下命令:
adb shell dumpsys activity activities | sed -En -e '/Running activities/,/Run #0/p'
见证奇迹的时刻到了,让我们见证一下,输出信息简单明了,列出的是你打开的所有页面,而顺序是以最近打开为先进行排序的,其中TaskRecord为查询到的记录,然后紧跟着该记录显示出包名和对应的Activity名
Running activities (most recent first):
TaskRecord{c9e9ecb #82 A=com.android.deskclock U=0 StackId=1 sz=1}
Run