ADB入门使用指南

ADB

简介

adb(Android 调试桥)是一种功能多样的命令行工具,可让PC端和Android端进行通信

工作原理

当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程正在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令 - 所有 adb 客户端均通过端口 5037 与 adb 服务器通信。

然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。请注意,每个模拟器都使用一对按顺序排列的端口 - 用于控制台连接的偶数号端口和用于 adb 连接的奇数号端口。例如:

模拟器 1,控制台:5554
模拟器 1,adb:5555
模拟器 2,控制台:5556
模拟器 2,adb:5557
依此类推

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端(或从某个脚本)控制任意设备。

安装配置

Homebrew 安装
$ brew cask install android-platform-tools
// 新版 homebrew 使用该指令
$ brew install --cask android-platform-tools
手动安装
下载对应工具并解压
  • 官方下载地址:https://developer.android.com/studio/releases/platform-tools?hl=zh-cn
将解压文件存放自定义目录下
  • 我这里存放在:~/.android-sdk-macosx 目录下
配置
# 环境变量设置
echo 'export PATH=$PATH:~/.android-sdk-macosx/platform-tools/' >> ~/.bash_profile
# 更新配置文件
source ~/.bash_profile
# 测试是否正常安装
adb devices

开启adb调试

如要在通过 USB 连接的设备上使用 adb,您必须在设备的系统设置中启用 USB 调试(位于开发者选项下)

常用指令集

  • 查看连接设备:adb devices
  • 安装应用:adb install test.apk
  • 指定连接设备使用命令:adb -s ${devices_id} shell
  • 卸载应用,需要指定包:adb uninstall cn.com.test.mobile
  • 卸载app 但保留数据和缓存文件:adb uninstall -k cn.com.test.mobile
  • 列出手机装的所有app 的包名:adb shell pm list packages
  • 列出除了系统应用的第三方应用包名:adb shell pm list packages -3
  • 查看 android 版本:adb shell getprop ro.build.version.release
  • 查看 SDK 版本:adb shell getprop ro.build.version.sdk
  • 终止adb服务:adb kill-server
  • 重启adb服务:adb start-server
  • 清除应用数据与缓存:adb shell pm clear cn.com.test.mobile
  • 启动应用:adb shell am start -ncn.com.test.mobile/.ui.SplashActivity
  • 包信息:adb shell dumpsys package
  • 内存使用情况:adb shell dumpsys meminfo
  • 强制停止应用:adb shell am force-stop cn.com.test.mobile
  • 查看日志:adb logcat
  • 清除 log 缓存:adb logcat -c
  • 重启:adb reboot
  • 获取序列号:adb get-serialno
  • 查看占用内存前10 的app:adb shell top -s 10
  • 从本地复制文件到设备:adb push <local> <remote>
  • 从设备复制文件到本地:adb pull <remote> <local>
  • 查看 bug 报告:adb bugreport
  • 获取 pageSource:adb shell uiautomator dump --compressed /sdcard/uidump.xml
  • 拉取文件本本地:adb pull /sdcard/uidump.xml > ./uidump.xml

adb shell

交互 shell

启动:

$ adb [-d | -e | -s serial_number] shell

退出:

exit
shell am
$ adb shell am command
shell pm
$ adb shell pm command
shell dpm
$ adb shell dpm command

权限操作

按组列出权限和状态:

$ adb shell pm list permissions -d -g

授予或撤消一项或多项权限:

$ adb shell pm [grant|revoke] <packageName> <permissionName> ...

清理某个 APP 所有数据(包括系统权限)

$ adb shell pm clear <packageName>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值