背景
开发或者逆向或者接收新项目的时候,打开某个页面但是不知道当前activity,定位需要时间,adb有命令帮助我们拿到这个数据的,分享低版本和高版本的adb获取顶层activity方式。
低于Android-9版本
我使用得最多的命令
//win环境,把命令复制,创建一个.bat批处理文件放桌面上面,双击就能拿到
adb shell dumpsys activity activities
pause
Android-9以上获取方式
//Android 9-10可以用这个
adb shell dumpsys activity | grep -i run
简单输入出堆栈信息,在原生系统Android 12无效。
下面命令在12有效。
上面的命令在低版本正常的,高版本之后就不行了,换个方式
adb shell dumpsys activity top | grep ACTIVITY
pause
win环境 执行命令之后报错,找不到grep,环境中无次工具,mac环境或者Linux正常使用。 我们把上面命令继续创建.bat批处理保存好,然后再加一个小工具
链接:https://pan.baidu.com/s/1F6_yWzWYmyrrFCKxdNlKbw
提取码:4512
下载回来,这个地方解压,把目录添加到系统变量Path中。再执行上面的批处理就ok了。看看效果
最后一条就是当前打开的app的信息,包含了包名和当前activity的全路径,精简显示就是这两个命令了。
其他命令不区分版本
比如
adb shell dumpsys activity activities
会显示当前页面详细信息,包含布局,或者activity中fragment,但是信息太多了,我们只需要简单activity名字,还是上面的简洁。
截图
adb shell /system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png \Users\EDY\Desktop
最后分享截图保存到电脑,我的电脑名字:EDY,你复制命令之后修改自己电脑的用户名就行了。同样是创建.bat文件,保存好,双击就拿到手机当前页面的截图。
可以把常用的命令整bat批处理,直接使用提高效率 mac环境可以设置alias方式来处理