当前位置: 首页>移动开发>正文

android 执行adb shell 代码 android adbd

个人学习笔记(整理不易,有帮助点个赞)

笔记目录:学习笔记目录_pytest和unittest、airtest_的博客

目录

一:简介

二:adb组成

三:连接方式


一:简介

ADB(Android Debug Bridge)是android sdk的一个工具,简单的说,就是连接安卓手机与PC端的桥梁,用户可以在PC端对手机进行操作。

二:adb组成

adb是一个C/S架构的命令行工具

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android,第1张

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命令的;

如果不行,比如

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_02,第2张

找到adb在SDK里的绝对路径,放入环境变量path中(绝对路径不带入adb.exe)

我的是这个

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_客户端_03,第3张

可以查看一下版本,看看是否安装

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_04,第4张

方式一:

直接拿安卓手机通过数据线连接到电脑,

而且要打开开发者模式(我这里用Coolpad作为一个例子,在版本号点两次就进入开发者模式了)和USB调试

通过命令查看手机是否已经连接上电脑了

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_05,第5张

结果可能有三种:offline:设备连接异常;device:正常;unknown:没有连接设备

我有遇到这种情况

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_06,第6张

去进程杀了adb这个干儿子就行了,然后输入adb devices会看到手机有是否允许认证这种信息

方式二:

如果手机连不上电脑,可以通过手机模拟器来模拟手机,我安装的是夜神模拟器

adb connect ip:端口号

//我的是本机,所以是127.0.0.1,夜神的端口是62001

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_android_07,第7张

把夜神启动

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_08,第8张

查看一下,可以看到右键成功连接

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_09,第9张

附加:

(1)端口占用

如果启动发现

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_android_10,第10张

输入adb nodaemon server命令,查看现在端口是否被正常使用

发现还是被占用,要找到被占用的端口

输入netstat -ano | findstr "5037"

从左至右依次是连接类型、本地地址:端口、外部地址:端口、连接状态、进程的PID

杀掉的是本地端口为5037的那个进程

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_android_11,第11张

可以看到一个11228,应用ID

输入tasklist | findstr "11228"查看是谁在占用

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_12,第12张

然后去任务管理器输入adb,可以看到相应的进程,杀掉就行了

(2)设备找不到

这里我使用的是Android Studio和真机

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_13,第13张

百度了很多方法,说的不清不楚,没头没尾,直到看到这个后才有了一点思路

以下是我自己操作的一些过程

1:设备是否开启开发者usb调试模式

我看到手机的开发者模式和开发者选项中的USB调试都开着,电脑显示这个,我觉得没问题

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_14,第14张

2:设备管理器是否显示android adb interface或者Android Composite ADB Interface

(我发现设备管理器没这个东西,而且好像这个东西是在Android phone这个选项里面的,我发现Android phone也没有)

(我也发现我的设备显示,还有一个ADB Interface显示了个感叹号,于是我觉得这应该是问题,于是对这个问题再次百度)

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_15,第15张

参考:https://www.jianshu.com/p/e0b366b1560a

双击ADB Interface-更新驱动程序

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_16,第16张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_17,第17张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_客户端_18,第18张

从磁盘安装-选中在AndroidSDK中usb_driver目录下的android_winusb.inf文件

(在这里我发现我的SDK目录下没有usb_driver这个文件夹,于是我针对这个问题再次百度)

参考:android Studio调试出现USB device not found怎么办?_编程开发_软件教程_

我在SDK目录下双击SDK Manager.exe这个程序,然后把usb_driver给安装了,然后就有这个目录了

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_android_19,第19张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_20,第20张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_21,第21张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_22,第22张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_客户端_23,第23张

回到之前那一步,选择AndroidSDK中usb_driver目录下的android_winusb.inf文件

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_24,第24张

弹出警告,点击是就行了

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_25,第25张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_Android_26,第26张

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_27,第27张

然后就看到Android phone这个东西出现了,之前那个ADB Interface没有了

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_adb_28,第28张

再查一次,设备信息也出现了

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_客户端_29,第29张

(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,发现其实有的,其实端口号不一样了,怪不得连接不上

android 执行adb shell 代码 android adbd,android 执行adb shell 代码 android adbd_客户端_30,第30张


https://www.xamrdz.com/mobile/4x91939626.html

相关文章: