如何用adb shell 指令获得android当前的activity

如题,不要用代码实现,就用adb shell ,多谢!!

1.在有root 权限并且开启了view server 的前提下,使用sdk/tools目录下hierarchyviewer.bat 工具可以获得
2.在sdk/build-tools目录下有个aapt工具,使用aapt dump badging *.apk可以获得
3.在CMD窗口中执行adb logcat -v time -s ActivityManager,然后点击应用进入,如点击系统设置,进入后会有相应的日志信息打印出来,在信息中查找 cmp=com.android.settings/.Settings
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-24
(1)用“adb shell dumpsys activity”命令可以查看
(2)另外,用"adb logcat | grep ActivityManager",也可以查看当前正在运行的Activity追问

我的activity不止一个,我现在只想要当前的那个,就是当前全屏显示的那个,第一个命令貌似是找到所有的activity吧?第二个的话我运行在windows上面恐怕不行啊……谢谢赐教!

追答

windows的话,你是用的eclipse么?打开logcat视图,添加一个log过滤,过滤“ActivityManager
”,会看到实时输出activity相关的log,控制台log可以实时看出,是那个activity启动,那个activity销毁

追问

其实是这样的,现在需要写一个脚本去刷机,然后到了最后一步,需要跳过一个欢迎界面,所以我需要判断什么时候手机重启成功并且成功烧进了rom,所以这个地方需要加一个判定条件,if os.system('adb shell ????????'),就不知道了,谢谢赐教!,成了我再给你100分吧

追答

android系统是基于linux内核的,进入shell后,里面的logcat、grep命令也都是可以用的,你的那个开机欢迎界面包名类名不知道,我以原生桌面为例,当刚开机使用下面命令能过滤到log时,说明已经开始在启动桌面了"adb shell logcat | grep com.android.launcher2.Launcher",你把包名类名换成你欢迎界面的包名类名,就可以知道现在是不是要启动欢迎界面了。

本回答被提问者采纳
第2个回答  2020-04-09
老版本使用 adb shell "dumpsys activity activities | grep mFocusedActivity"
新版本使用 adb shell "dumpsys activity activities | grep origActivity"
相似回答