ADB的全称是 Android Debug Bridge,安卓调试桥的意思,PC端使用ADB工具包就可以对你的安卓设备进行管理、调试了,比如说,设备间上传和下载文件、应用软件的安装和卸载、抓取日志信息等。
使用adb工具包需要去熟悉 adb 指令,如果熟悉linux常用指令的,基本很快就能上手。
打开网页,搜索“abd工具包”,随便找个地址就可以下载到(windows下安装);
工具包里主要包含的文件如下图1:
把图1中的四个文件统一放到一个文件夹下,然后把该文件夹的路径添加到系统环境变量里;
如果没有将adb工具包路径添加到环境变量里,我们要使用adb调试时,就要跳到该路径下才能执行adb指令,就不能任意位置下执行adb指令了。
按 win +r ,输入“cmd”进入命令行测试:输入命令“adb”,显示一大串的指令信息表示配置成功;
它是一种以C/S为架构的程序,主要由三个组件组成:
adb client:客户端,运行在PC端,用于PC端发送 adb 命令,主要任务是命令的参数,然后转移为指令或数据,发送到adb server;
adb server:服务端,运行在PC端的一个后台进程,管理adb client 和 adb daemon的通信,将adb client的请求通过usb或者 tcp 的方式发送到对应的adbd上,检测USB端口,感知设备的连接和拔除,以及模拟器实例的启动或停止;
adb daemon(adbd):守护进程,运行在Android 系统上,当Android 系统启动时,由init 程序启动 adbd 服务,主要作用是处理来自 adb server的命令行请求,然后获取对应Android设备的信息,再将结果返回给adb server。
通信流程:adb client启动时,会先检查是否有 adb server进程正在运行,没有则会先启动server进程,启动后会绑定和监听PC上的 TCP 端口 ,然后再去处理 adb client发出的命令;当adb server发现 adbd 就会与相应的端口建立连接。
首先,准备好一根usb数据线,连接上安卓设备,然后在安卓设备中要开启usb adb调试;
这里就拿安卓手机设备来模拟操作,通常需要先开启开发者选项,打开方法大多为多次按击手机版本号即可(不知道的自行百度),在开发者选项里打开usb调试,到这里准备工作就完成了。
接下来,在cmd命令行中输入“adb devices”,查看设备是否连接成功。如下图:
如果输入“adb devices”没有显示设备信息,那就先检查usb调试那些是否打开,确认硬件状态是否正常,检查没问题还是打不开的话,那也可能时adb软件的版本太低了(adb版本查询指令为"adb version"),不适配,重新下载个较新版本的工具包即可。
使用WiFi调试,PC端和安卓设备端需要连接同一个wifi热点,使其处于同一个网段下;
通过 adb tcpip 5555
命令让设备在 5555 端口监听 TCP/IP 连接;
然后获取安卓设备的 IP 地址;例如安卓设备 IP 地址为192.168.0.102 ;
在cmd命令行中输入指令连接:adb connect 192.168.0.102 (端口号选填)。
如果是安卓手机,使用wifi进行adb连接时,需要先使用usb数据线连接上设备,再进行wifi adb连接,否则wifi adb连接时连接不上设备。
adb start-server :adb服务的开启,一般情况下不需要手动开启,执行adb指令时会自动开启;
adb -P
adb kill-server :adb服务的关闭;
adb tcpip
adb version:查看adb版本信息;
adb help:查看adb支持的指令信息;
adb devices:查看当前已连接的设备信息;
adb shell netstat:查看网络信息;
adb connect 设备IP地址 [:端口号];通过设备的ip地址连接设备,默认端口为5555,可不填;
adb disconnect 设备IP地址:断开与设备的TCP连接;
adb usb:重新启动adbd守护进程,对USB进行监听;
adb root:获取Android管理员权限;
adb shell:登录设备的shell,之后就可以对设备进行管理了;
adb remount:重新挂载设备上的/system和/vendor分区,adb root 后才能有可读可写权限;
adb push
adb pull
adb install [-l r t s d]
参数:
-l :将应用安装到保护目录 /mnt/asec;
-r :允许覆盖安装;
-t :允许安装测试包;
-s :将应用安装到sd卡;
-d :允许降级覆盖安装;
file :应用文件名;
返回:成功返回Success。
adb uninstall [-k]
参数:
-k :可选参数,表示卸载应用但保留数据和缓存目录;
adb shell pm list packages [-f d e s 3 i u] [--user USER_ID] [FILTER]:应用列表查看;
参数:
-f :显示应用关联的 apk 文件;
-d :只显示 disabled 的应用;
-e :只显示 enabled 的应用;
-s :只显示系统应用;
-3 :只显示第三方应用;
-i :显示应用的 installer;
-u :包含已卸载应用;
FILTER:包名包含
<
FILTER>
字符串。
例子:
adb shell pm list packages:表示查看所有应用;
adb shell pm list packages -s:表示查看系统应用;
adb shell pm list packages tencent:表示查看包名带tencent字符串的应用列表。
adb shell pm path
adb shell dumpsys package
adb shell pm clear
adb logcat -v
参数 显示格式
brief :/ ( ):
process :( )
tag :/ :
raw :
time :/ ( ):
threadtime ::
long : [: / ]
adb logcat -c:清空日志;
adb logcat > file-path:将日志输出到指定文件下;
adb shell input:内容过多,不展示,可在命令行输入“adb shell input”查看详情;
adb在调试安卓设备时作用很大,远不止上述所展示的,有篇博文我觉得写的很好,这里给出链接