ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备。 ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备。

它的主要功能有:

  1. 运行设备的shell(命令行)

  2. 管理模拟器或设备的端口映射

  3. 计算机和设备之间上传/下载文件

  4. 将本地apk软件安装至模拟器或android设备

adb 其实就是 Android Debug Bridge, Android 调试桥的缩写,adb 是一个 C/S 架构的命令行工具,主要由 3 部分组成:

运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试

Eclipse 中的 ADT、SDK Tools 目录下的 DDMS、Monitor 等工具,都是同样地用到了 adb 的功能来与 Android 设备进行交互。

 

 

adb服务使用的端口号:5037

PC 端的手机助手,如 360 手机助手、豌豆荚、应用宝等,除了安装第三方应用方便,其他的功能,基本上都可以通过 adb 命令去完成,这里要注意的是自带的 adb 程序可能会与 Android SDK 下的 adb 程序产生冲突,5037 端口被占用,导致使用 adb 命令时无法连接到设备。

运行在 PC 端的 Service : 其管理客户端到 Android 设备上 adb 后台进程的连接

adb 服务启动后,Windows 可以在任务管理器中找到 adb.exe 这个进程

 

 

 

 

adb进程

运行在 Android 设备上的 adb 后台进程,执行 adb shell ps | grep adbd ,可以找到该后台进程,windows 下执行adb shell ps |findstr adbd

 

 

adb 命令

 

在开发或者测试的过程中,我们可以通过 adb 来管理多台设备,其一般的格式为:

adb [-e | -d | -s <设备序列号>]  <子命令>

在配好环境变量的前提下,在命令窗口当中输入 adb help 或者直接输入 adb ,将会列出所有的选项说明及子命令。

 

adb devices , 获取设备列表及设备状态

 

 

 

 

adb get-state , 获取设备的状态

设备的状态有 3 钟,device , offline , unknown

device:设备正常连接
offline:连接出现异常,设备无响应
unknown:没有连接设备

 

 

 

 

adb logcat , 打印 Android 的系统日志

 

adb bugreport , 打印dumpsys、dumpstate、logcat的输出,也是用于分析错误

输出比较多,建议重定向到一个文件中

adb bugreport > d:\bugreport.log

 

adb install , 安装应用,覆盖安装是使用 -r 选项

windows 下如果需要安装含有中文名的 apk ,可以直接对apk的包名进行修改

1. cmd-进入应用所在目录(C:\WDJDownload\Apps)

2. 执行命令:adb install aiqiyi.apk(apk名称)

3. 手机上会有提示是否同意安装,点击同意,进行安装

 

4 .手机上安装成功,出现success表示安装成功。

 

 

adb uninstall , 卸载应用,

后面跟的参数是应用的包名,请区别于 apk 文件名

 

adb pull , 将 Android 设备上的文件或者文件夹复制到本地
例如复制 init 文件到 D 盘:adb   pull   init   d:\

如果需要重命名为 rename.txt:adb  pull  init  d:\rename.txt

注意权限,复制系统权限的目录下的文件,需要 root 

 

 

 

adb push , 推送本地文件至 Android 设备
例如推送 D 盘下的testrabbit.txt 至 /mnt:adb  push  d:\testrabbit.txt  /mnt/

D:\>adb push testrabbit.txt /mnt/

failed to copy 'testrabbit.txt' to '/mnt//testrabbit.txt': Read-only file system

 

 

在shell命令行中输入:adb root

切换到root用户

然后执行如下命令:(注意 /表示的是根目录,因此这个不仅仅是对sdcard,其他文件也可以读写。rw表示读写权限,mount重挂载文件系统)

adb shell mount -o remount rw / , 修改系统读写权限

root@generic:/ # adb shell mount -o remount rw /

 

adb root , adb remount,可以直接已这两个命令获取 root 权限,并挂载系统文件系统为可读写状态