转载https://www.cnblogs.com/testrabbit/p/6011329.html
ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备。 ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是android设备。
它的主要功能有:
- 运行设备的shell(命令行)
- 管理模拟器或设备的端口映射
- 计算机和设备之间上传/下载文件
- 将本地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 权限,并挂载系统文件系统为可读写状态