ADB调试Android设备
Posted Qurry.OS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ADB调试Android设备相关的知识,希望对你有一定的参考价值。
前言
ADB的全称是 android Debug Bridge,安卓调试桥的意思,PC端使用ADB工具包就可以对你的安卓设备进行管理、调试了,比如说,设备间上传和下载文件、应用软件的安装和卸载、抓取日志信息等。
使用adb工具包需要去熟悉 adb 指令,如果熟悉linux常用指令的,基本很快就能上手。
1. ADB工具包
1.1 adb工具包下载
打开网页,搜索“abd工具包”,随便找个地址就可以下载到(windows下安装);
工具包里主要包含的文件如下图1:
1.2 环境变量设定
把图1中的四个文件统一放到一个文件夹下,然后把该文件夹的路径添加到系统环境变量里;
如果没有将adb工具包路径添加到环境变量里,我们要使用adb调试时,就要跳到该路径下才能执行adb指令,就不能任意位置下执行adb指令了。
1.3 测试指令
按 win +r ,输入“cmd”进入命令行测试:输入命令“adb”,显示一大串的指令信息表示配置成功;
1.4 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 就会与相应的端口建立连接。
2. 连接Android设备
2.1 usb调试
首先,准备好一根usb数据线,连接上安卓设备,然后在安卓设备中要开启usb adb调试;
这里就拿安卓手机设备来模拟操作,通常需要先开启开发者选项,打开方法大多为多次按击手机版本号即可(不知道的自行百度),在开发者选项里打开usb调试,到这里准备工作就完成了。
接下来,在cmd命令行中输入“adb devices”,查看设备是否连接成功。如下图:
如果输入“adb devices”没有显示设备信息,那就先检查usb调试那些是否打开,确认硬件状态是否正常,检查没问题还是打不开的话,那也可能时adb软件的版本太低了(adb版本查询指令为"adb version"),不适配,重新下载个较新版本的工具包即可。
2.2 wifi调试
使用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连接时连接不上设备。
3. adb指令集
3.1 服务启停
adb start-server :adb服务的开启,一般情况下不需要手动开启,执行adb指令时会自动开启;
adb -P <port> start-server:指定 adb 服务的网络端口;
adb kill-server :adb服务的关闭;
adb tcpip <port>:重新启动adbd守护进程,监听指定端口的TCP;
3.2 常用指令
adb version:查看adb版本信息;
adb help:查看adb支持的指令信息;
adb devices:查看当前已连接的设备信息;
adb shell netstat:查看网络信息;
3.3 设备断、连
adb connect 设备IP地址 [:端口号];通过设备的ip地址连接设备,默认端口为5555,可不填;
adb disconnect 设备IP地址:断开与设备的TCP连接;
adb usb:重新启动adbd守护进程,对USB进行监听;
3.4 权限相关
adb root:获取Android管理员权限;
adb shell:登录设备的shell,之后就可以对设备进行管理了;
adb remount:重新挂载设备上的/system和/vendor分区,adb root 后才能有可读可写权限;
3.5 文件操作
adb push <local> <remote>:把PC端的文件或文件夹推送到安卓设备;
adb pull <remote> [<local>]:把安卓设备的文件或文件夹拉取到PC端;不能直接pull到C盘根目录下,一定要建个文件夹,因为会报权限问题的错误 。
3.6 应用软件管理
adb install [-l r t s d] <file>:安装应用软件;
参数:
-l :将应用安装到保护目录 /mnt/asec;
-r :允许覆盖安装;
-t :允许安装测试包;
-s :将应用安装到sd卡;
-d :允许降级覆盖安装;
file :应用文件名;
返回:成功返回Success。
adb uninstall [-k] <package-name> :卸载应用软件;
参数:
-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 <package-name> :查看应用安装路径;
adb shell dumpsys package <package-name> :查看应用详细信息;
adb shell pm clear <package-name>:清除应用数据与缓存;
3.7 打印日志
adb logcat -v <format> :指定日志某种形式输出;
参数 显示格式
brief :<priority>/<tag>(<pid>): <message>
process : <priority>(<pid>) <message>
tag : <priority>/<tag>: <message>
raw : <message>
time : <datetime> <priority>/<tag>(<pid>): <message>
threadtime : <datetime> <pid> <tid> <priority> <tag>: <message>
long : [ <datetime> <pid>:<tid> <priority>/<tag> ] <message>
adb logcat -c:清空日志;
adb logcat > file-path:将日志输出到指定文件下;
3.8 模拟输入
adb shell input:内容过多,不展示,可在命令行输入“adb shell input”查看详情;
总结
adb在调试安卓设备时作用很大,远不止上述所展示的,有篇博文我觉得写的很好,这里给出链接
Android 安卓ADB命令远程调试 单个或多个设备调试
文章目录
ADB局域网连接一个设备
本文章适用于Android设备远程调试,计算机与Android开发设备须保证在同一个局域网下,另外准备一根数据线
Android设备配置
- 计算机与Android开发设备须保证在同一个局域网下
- Android设备已开启开发者选项
- Android设备已从开发者选项中允许 USB调试 和 无线局域网调试(可能某些设备没有但一定要启用并允许USB调试)
配置ADB环境
下载ADB:
Android官网下载:https://developer.android.com/studio/releases/platform-tools
CSDN下载(免积分):https://download.csdn.net/download/qq_40881680/74650479
配置环境变量
三个系统环境ADB环境变量配置教程
Windows
1、 当下载完ADB软件包后,将 文件夹platform-tools 解压到指定的一个目录
2.、Win + R,输入:sysdm.cpl,回车,选中头部标签 高级,再点击环境变量
3、双击Path,添加你刚刚解压的路径即可,然后点击确定->确定关闭即可
4、Win+R,输入:cmd ,回车,输入 adb 测试是否配置成功
MAC
https://blog.csdn.net/qq_15988951/article/details/84574961
Linux
https://blog.csdn.net/weixin_42081389/article/details/110506548
ADB连接一个Android设备
1、先将Android设备使用数据线连接到计算机上
2、新建一个cmd窗口,输入以下命令,5555指的是端口号,会开启Android开发设备的5555端口,这一步是要一定的,不然待会出现拒绝访问,一定要使用数据线连接Android设备在运行这条哦!
adb tcpip 5555
3、现在你可以拔下数据线了,查看Android设备的IP,再输入以下命令进行连接,该命令为 adb connect
adb connect 192.168.1.113(ip记得替换成你自己的):5555(你指定的Android设备端口)
adb connect [Android设备局域网ip]:[端口号]
不出意外的话现在已经连接上了!然后你就去AndroidStudio调试吧!
ADB连接多个Android设备
如果要调试很多Android设备呢?此时没有更多的USB接口!假设现在已经连接了1台设备。
1、先将新设备打开开发者选项,参考上方 Android设备配置
2、输入以下命令,可以看到当前数据线和局域网连接的设备
adb devices
3、现在要将数据线连接的设备进行无限调试,输入以下命令
adb -s [设备名,就是adb devices命令看到的设备名] tcpip [要开启Android设备的端口号]
//举例
adb -s 9YS0219C16020181 tcpip 5555
4、连接新设备
adb connect [Android设备所在的局域网ip]:[Android设备的端口号]
以上是关于ADB调试Android设备的主要内容,如果未能解决你的问题,请参考以下文章