查看栈顶Activity
adb shell dumpsys activity | grep “mFocusedActivity”
adb shell dumpsys activity | findstr “mFocusedActivity”
adb常用命令
关闭开启adb服务
- adb kill-server 关闭
- adb start-server开始
选择特定的设备进行连接
- -d (连接唯一的通过USB连接的设备,不能同时有两个usb相连)
- -e(连接正在运行的模拟器,不能同时有两个模拟器在运行)
- -s(通过设备序列号相连,没有限制)
- connect host[:port]通过网络进行连接
- disconnet host[:port]断开连接
- -H adb server的地址,默认为localhost
- -P adb server的端口,默认为5037
对设备进行操作
- adb push [local] [remote] (-p是打印传输进程)
拷贝文件或文件夹到手机上 - adb pull [remote] [local] (-a 拷贝所有属性,包括时间戳等;-p同上)
- adb logcat [filter-spec])(查看log,IDE集成的logcat就是用的这个)
- adb forward(端口转发,不太明白)
- adb reverse(母鸡)
- adb install (安装apk文件)
- adb uninstall -k [packagename](-k 卸载时保存数据)
- adb backup(手机备份,相当与钛备份)
- adb restore [file] (恢复备份文件)
- adb root(adb shell为root权限)
- adb unroot
- adb usb(重启usb连接)
- adb tcpip [port](重启网络连接)
- adb reboot [bootloader|recovery] (重启到fastboot|recovery)
手机设备上/system/bin下的有趣命令
am(ActivitdyManager)
am start -n 包名/包名+类名
pm(PackageManager)
pm list packages -f
monkey测试
monkey -p com.android.email -v 500
input(模拟输入)
input touchscreen swipe 18 665 18 350 模拟下滑
dumpsys(获取系统信息)
screenrecord(屏幕录制)
更多请看Google API adb shell
adb工作图
adb的三个组件
在主机执行adb shell ls后的命令时序图
adb clients
- 主机(windows/linux)
adb server
- 在主机的后台运行
- 作为adb clients与adbd的桥梁
adb daemon(adbd)
- 在目标设备运行(emulator/devices)
- 初始化即运行,如果死亡,初始化就可开始重新运行。
远程模拟器
所有的androd虚拟机的服务器套接字(adbd)只接受来自localhost的请求。(貌似不能实现等待研究)
无线调试android真机(!局域网环境)
- 首先手机开启开发者选项与USB调试
- 在cmd运行adb devices(当然首先要在环境变量path里面加入adb.exe的路径,在AndroidSDK的platform-tools文件夹下)
73625898就为设备的序列号:serial number - 在使用usb连接着电脑的情况下输入如下命令
- adb -s “serial number” tcpip 5555
- adb -s “serial number” connect “target ip”