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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用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
参考技术A (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",你把包名类名换成你欢迎界面的包名类名,就可以知道现在是不是要启动欢迎界面了。

本回答被提问者采纳
参考技术B 老版本使用 adb shell "dumpsys activity activities | grep mFocusedActivity"
新版本使用 adb shell "dumpsys activity activities | grep origActivity"

如何用adb连接android手机

adb连接手机
【主要方式】
主要是通过adb命令进行链接手机或者查看手机连接的状态。
【原理】
通过指令或者查看连接状态确定是否开启手机连接状态。
【实现步奏】
通过usb连接电脑,注意一定要把360等手机助手关闭退出,这些软件会占用adb的使用。
然后打开cmd,adb
devices
查看手机是否连接电脑。
注意点二:一定要打开手机的开发者模式,以下是连接的状态,显示设备的名称。
【最后】
连接时候请注意2个注意点,如果发现adb
被莫名其妙的占用,可以打开任务管理器进行关闭adb即可。

参考技术A       利用adb来连接手机, 有两种方式: 1, wifi,  2, usb.

        前提条件: 下载adb, 最好把对应的文件置于cmd.exe同目录下。

        1. 通过wifi, 利用adb来连接手机。
           在pc的cmd中输入命令:
           adb connect 192.168.1.100
           其中adb就是手机的ip. 如果连接成功, 就可以进入android的shell了。
           我自己在操作过程中, pc能ping通过手机, 但是adb连接手机, 出现了一点点问题, 提示unable to connect to 192.168.1.100:5555, 这个是什么原因呢? 原来手机的默认adb服务是没有打开的, 否则, 别人adb能随便连, 那岂不是很不安全么? 所以, 我们要想办法把手机上的adb服务打开。 怎么搞呢? 首先要在手机上下载一个android模拟器(当然, 如果你有, 就不用下载了), 然后切到root权限, 并执行如下命令打开adb服务:
        su
setprop service.adb.tcp.port 5555
stop adbd
start adbd
      然后adb就可
        2. 通过usb, 利用adb来连接手机。
        我把手机通过usb接上pc, 结果adb并没有连接上手机, 于是下载了android驱动程序, 安装了, 就好了。这样, adb就连接上了手机, 开心啊。于是就可以利用adb shell进入手机的android系统了。

        
       比较一下: 方法1的要求较高, 需要依赖于稳定的网络, 而且操作麻烦, 方法2就简便多了。本回答被提问者采纳

以上是关于如何用adb shell 指令获得android当前的activity的主要内容,如果未能解决你的问题,请参考以下文章

如何用adb命令 获得Android手机分辨率

如何用adb连接android手机

如何用adb连接android手机

如何用adb连接android手机

如何用adb连接android手机

哪位说说如何用androidadb连接手机