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

1.2 环境变量设定  

把图1中的四个文件统一放到一个文件夹下,然后把该文件夹的路径添加到系统环境变量里;

如果没有将adb工具包路径添加到环境变量里,我们要使用adb调试时,就要跳到该路径下才能执行adb指令,就不能任意位置下执行adb指令了。

图2

1.3  测试指令

win +r ,输入“cmd”进入命令行测试:输入命令“adb”,显示一大串的指令信息表示配置成功;

图3
 

图4

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设备配置

  1. 计算机与Android开发设备须保证在同一个局域网下
  2. Android设备已开启开发者选项
  3. 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设备的主要内容,如果未能解决你的问题,请参考以下文章

Android 安卓ADB命令远程调试 单个或多个设备调试

Android 安卓ADB命令远程调试 单个或多个设备调试

Android adb远程调试(无线连接)

ADB调试Android设备

Android 调试桥(adb)是多种用途的工具

ADB ant 调试安装在多个 android 设备上