个人学习笔记(整理不易,有帮助点个赞)
笔记目录:学习笔记目录_pytest和unittest、airtest_的博客
目录
一:简介
二:adb组成
三:连接方式
一:简介
ADB(Android Debug Bridge)是android sdk的一个工具,简单的说,就是连接安卓手机与PC端的桥梁,用户可以在PC端对手机进行操作。
二:adb组成
adb是一个C/S架构的命令行工具
1)客户端client:运行在电脑上, 可以通过adb命令来调用起一个客户端。
其他Android工具, 例如ADT插件、DDMS都可以创建出一个客户端
2)服务器server:运行在电脑的后台, 负责管理client和daemon进行通信,即adb.exe
3)守护进程daemon:运行在模拟器或者Android设备的后台。
(简单说:你输入adb其实就是启动了客户端,它会检查这台计算机有没有启动adb服务,如果没启动,它会帮你启动,然后服务器启动后会与本地TCP端口5037绑定,且侦听从adb客户端发送的命令(所有的adb客户端都使用5037端口与adb服务器通信))
三:连接方式
一种是去下载sdk压缩包;另一种是直接安装Android Studio,它自带adb
如果已安装了Android Studio,它本身带有adb命令,如果配置好的Android Studio 一般都是可以直接调用adb命令的;
如果不行,比如
找到adb在SDK里的绝对路径,放入环境变量path中(绝对路径不带入adb.exe)
我的是这个
可以查看一下版本,看看是否安装
方式一:
直接拿安卓手机通过数据线连接到电脑,
而且要打开开发者模式(我这里用Coolpad作为一个例子,在版本号点两次就进入开发者模式了)和USB调试
通过命令查看手机是否已经连接上电脑了
结果可能有三种:offline:设备连接异常;device:正常;unknown:没有连接设备
我有遇到这种情况
去进程杀了adb这个干儿子就行了,然后输入adb devices会看到手机有是否允许认证这种信息
方式二:
如果手机连不上电脑,可以通过手机模拟器来模拟手机,我安装的是夜神模拟器
adb connect ip:端口号
//我的是本机,所以是127.0.0.1,夜神的端口是62001
把夜神启动
查看一下,可以看到右键成功连接
附加:
(1)端口占用
如果启动发现
输入adb nodaemon server命令,查看现在端口是否被正常使用
发现还是被占用,要找到被占用的端口
输入netstat -ano | findstr "5037"
从左至右依次是连接类型、本地地址:端口、外部地址:端口、连接状态、进程的PID
杀掉的是本地端口为5037的那个进程
可以看到一个11228,应用ID
输入tasklist | findstr "11228"查看是谁在占用
然后去任务管理器输入adb,可以看到相应的进程,杀掉就行了
(2)设备找不到
这里我使用的是Android Studio和真机
百度了很多方法,说的不清不楚,没头没尾,直到看到这个后才有了一点思路
以下是我自己操作的一些过程
1:设备是否开启开发者usb调试模式
我看到手机的开发者模式和开发者选项中的USB调试都开着,电脑显示这个,我觉得没问题
2:设备管理器是否显示android adb interface或者Android Composite ADB Interface
(我发现设备管理器没这个东西,而且好像这个东西是在Android phone这个选项里面的,我发现Android phone也没有)
(我也发现我的设备显示,还有一个ADB Interface显示了个感叹号,于是我觉得这应该是问题,于是对这个问题再次百度)
参考:https://www.jianshu.com/p/e0b366b1560a
双击ADB Interface-更新驱动程序
从磁盘安装-选中在AndroidSDK中usb_driver目录下的android_winusb.inf
文件
(在这里我发现我的SDK目录下没有usb_driver这个文件夹,于是我针对这个问题再次百度)
参考:android Studio调试出现USB device not found怎么办?_编程开发_软件教程_
我在SDK目录下双击SDK Manager.exe这个程序,然后把usb_driver给安装了,然后就有这个目录了
回到之前那一步,选择AndroidSDK中usb_driver目录下的android_winusb.inf
文件
弹出警告,点击是就行了
然后就看到Android phone这个东西出现了,之前那个ADB Interface没有了
再查一次,设备信息也出现了
(3)cannot not connect to 127.0.0.1:62001:由于计算机积极拒绝,无法连接。 10061
我出现这个问题是在我新建了一个4版本的模拟器(在之前已经有5.1版本的),连接4版本的时候出错的
解决方法:
可能是因为cmd下的adb版本与夜神模拟器中的bin路径的adb版本(nox_adb)不一致导致的,这时需要将cmd下的adb版本拷贝一份到 夜神模拟器的bin的目录下,记得改名为“nox_adb”,覆盖夜神的nox_adb(最好备份一下),重启夜神模拟器就行。
我刚刚开始连接不行,还是输入cannot not connect to 127.0.0.1:62001,于是重启电脑,我先试试之前版本能不能,发现ok
于是我关掉再试4版本,发现不行,于是adb devices,发现其实有的,其实端口号不一样了,怪不得连接不上