adb简要介绍
adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成:
- 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试
- 运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接
- 运行在 Android 设备上的 adb 后台进程
ADT/SDK Tools目录下的DDMS、Monitor等工具,都是同样地用到了 adb 的功能来与 Android设备进行交互
adb命令学习
adb命令主要分为三种
- adb 命令
- adb shell 命令
- Linux 命令
- adb命令
一般格式:
adb [-e | -d | -s <设备序列号>] <子命令>
常用adb命令:
adb devices //获取设备列表及设备状态 adb get-state [-s]//获取设备的状态,后面选填设备序列号,可以查询具体设备的状态 adb kill-server //结束adb服务 adb start-server //启动adb服务 adb logcat //**打印 Android 的系统日志(log的筛选和记录后面会再单独拿出来学习)** adb bugreport //**打印dumpsys、dumpstate、logcat的输出,也是用于分析错误** adb install [apk文件] //安装应用;覆盖安装是使用 -r 选项 adb uninstall [app包名] //卸载应用;使用 -k 选项,卸载时保存数据和缓存目录 adb pull [设备文件位置] [本地目录] //将 Android 设备上的文件或者文件夹复制到本地 adb push [本地文件位置] [设备目录] //推送本地文件至 Android 设备 adb reboot //重启 Android 设备
- adb shell 命令
adb shell 命令是调用的是 Android 系统中的命令,这些 Android 特有的命令都放在了Android 设备的 system/bin 目录下。
常用adb shell命令:
pm
adb shell pm list package //列出所有的应用的包 adb shell pm list package -s //列出系统应用 adb shell pm list package -3 //列出第三方应用 adb shell pm list package -f //列出应用包名及对应的apk名及存放位置 adb shell pm list package -i [关键字] //过滤关键字,可以很方便地查找自己想要的应用 adb shell pm list package -f -3 -i whatsapp //参数可以组合使用 >> package:/data/app/com.whatsapp-1/base.apk=com.whatsapp installer=null adb shell pm path [包名] //列出对应包名的 .apk 位置 adb shell pm list instrumentation //列出含有单元测试 case 的应用,后面可跟参数 -f adb shell pm dump [包名] //**列出指定应用的 dump 信息** adb shell pm install [包名] //安装应用 adb shell pm uninstall [包名] //卸载应用;使用 -k 选项,卸载时保存数据和缓存目录 adb shell pm clear [包名] //清除应用数据
am
adb shell am start [-D | W | P | R | S] [包名] //启动应用 >> 参数: -D: enable debugging 打开调试 -W: wait for launch to complete 等待应用完成启动 -P <FILE>: like above, but profiling stops when app goes idle //(不懂) -R: repeat the activity launch <COUNT> times. Prior to each repeat, 重复开启应用 -S: force stop the target app before starting the activity 先停止目标应用,再启动 adb shell am instrument //**启动一个 instrumentation , 单元测试或者 Robotium 会用到** adb shell am monitor //**监控 crash 与 ANR** adb shell am force-stop [包名] //结束应用 adb shell am startservice //启动一个服务 adb shell am broadcast //发送一个广播
input
input命令可以向 Android 设备发送按键事件
adb shell input text [文本] //发送文本内容,不能发送中文 adb shell input keyevent [KeyEvent] //发送按键事件 adb shell input tap [x轴] [y轴] //对屏幕发送一个触摸事件 adb shell input swipe [x0] [y0] [x1] [y1] [持续时间] //滑动事件 >> adb shell input swipe 500 500 501 501 2000 //在小的距离内,较长的持续时间内进行滑动,最后表现出来的结果就是长按动作
其他常用adb shell命令
adb shell screencap -p [自定目标目录下的文件名] //截图命令 adb shell screenrecord [自定目标目录下的文件名] //录制命令 adb shell uiautomator dump //执行 UI automation tests , 获取当前界面的控件信息 adb shell ime list -s //列出设备上的输入法 adb shell ime set [输入法包名] //选择输入法 adb shell wm size //获取设备分辨率
- 范例:
#adb connect 192.168.6.211 (连接设备) #adb shell (修改权限) #busybox su #busybox mount -o rw,remount /system #chmod 777 /system/bin #exit #adb push F:/test.txt /system/bin (传送文件) #reboot (重启设备)
转载于:https://www.cnblogs.com/saryli/p/5260945.html