在客户端使用具体的 adb 命令来建立与手机的通信连接
在 PC 机的客户端里书写想要执行的 adb 命令
已连接的手机或者模拟器会有具体的进程接收到PC机上发来的命令,然后让手机去执行
原理图:
命令名称 | 命令作用 |
---|---|
adb start-server | 开启一个管理 命令 的服务 |
adb kill-server | 关产一个管理 命令 的服务 |
adb devices | 以列表的形式展示出PC机连接的设备和模拟器信息 |
adb logcat | 查看当前手机运行的日志信息 |
adb push 本地 远端 | 将PC机上的文件推送到远端的目录下 |
adb pull 远端 本地 | 将远端的文件拉取到本地的目录 |
adb shell | 进入当前连接设备的Linux管理界面 |
adb -s 指定的机器码 ... | 指定某台设备的机器码,执行具体的命令 |
adb shell getprop ro.build.version.release | 获取当前已连接设备的 android 版本 |
adb install 包路径 | 将指定的安装包安装到对应的设备上 |
adb uninstall 包名 | 卸载设备上的对应 APP |
adb shell am start -W 包名/启动名 | 冷启动 APP 的时长统计 |
注意:
? 01 在使用 adb 操作的时候,可以直接在客户端里书写对应的 adb 命令,它会自动检查当前的 PC 机上是否有一个 adb server ,如果没有它会自动开启一个 adb server ,默认占用的是就是 5037 端口。所以在使用的时候可以不需要先执行 adb start-server
? 02 在使用 雷神 模拟器的时候,默认情况下会连接上二个设备,所以第一次我们使用的时候需要先通过 adb kill-server 关闭服务,然后再重新执行 adb start-server 开启服务。
? 03 如果 adb start-server 命令提示启动失败,那么可以使用 netstat -ano | findstr 5037 来查看该端口当前被哪个应用占用,然后可以在进程中手动关闭。
获取包名:
a. 具有APP安装包,没有安装时
aapt dump badging 对应安装包路径
aapt dump badging C:\Users\Administrator\Desktop\jd.apk | findstr "launchable-activity"
b. 已经安装了具体的 APP
adb shell dumpsys window windows | findstr "mFocusedApp"
获取启动名:
上述二个命令行操作不但可以获取包名同时也会获取启动名,我们可以在返回的结果中进行对应字段的过滤,得到最终的启动名。
注意:
? 01 使用第一种方法获取包名和启动名的前提是将 appt.exe 添加到设备的系统环境变量中
? 02 使用第二种方法获取包名和启动名的前提是将 对应的APP 提前启动