admin 管理员组

文章数量: 887021

摘要:adb的全称为Android Debug Bridge,就是起到调试桥的作用。在使用python通过adb操作安卓手机的过程中,连接手机这一关就浪费了小半天时间。为了让后来者避免这些问题,也为了总结并留下资料供以后查看,在总结网上各种贴子的基础上,写了如下的教程。欢迎高手批评指正。

1. 下载和安装adb

1.1 下载adb

以下链接需要科学上网。也可以从其他网站上下载,尽量下载最新版本的。如需要帮助,也可以留言帮你代下。

Windows 版本:https://dl.google/android/repository/platform-tools-latest-windows.zip

1.2 解压安装

下载adb包,解压到你指定的盘,建议放C盘。

 1.3 把刚才的adb目录添加到环境变量

以win10为例:此电脑->右键,属性->最右侧,高级系统设置->打开系统属性对话框->选择高级标签:如下所示。

 接着,单击环境变量,打开新的对话框,点击新建,添加adb路径。

 1.4 测试是否安装成功

打开windows命令行,输入:adb version,回车

显示我的版本是1.0.41。说明安装已经成功。 

2. 连接手机的各种坑

2.1 打开手机USB调试

根据手机型号操作有不同,大概是多次点击版本号等,具体查百度。

2.2 通过数据线,连接电脑。

打开cmd命令行,输入adb devices,一般来说,有以下三种情况:

  1. device —— 设备已连接;
  2. offline —— 表示设备未连接成功或无响应;
  3. List of devices attached 设备/模拟器未连接到 adb 或无响应

2.2.1 设备已连接的情况

如果“List of devices attached”,下面还有一行序号号,最后跟个单词device,表示连接成功。

2.3 连接不成功的解决办法

如果只有“List of devices attached”,说明并没有找到设备;或者“offline”,表示找到设备,但未连接成功或无响应。

在网上看了很多帖子,借鉴了以下方法:

2.3.1 尝试重启服务器

尝试先adb kill-server,再adb start-server,此时如果能够连接上设备则ok,如果还不行,则继续下一步。

2.3.2 查看端口被哪个进程占用

输入:netstat -ano | findstr “5037”

 可以看到有两个进程占用了此端口。

输入:tasklist | findstr “12456”

找出线程名,发现是adb.exe线程占用,猜想可能是其他的第三方软件的adb工具占用了5037端口,导致adb无法绑定5037端口。

3.3.3 到任务管理器,结束这个进程

右键“打开文件所在目录”,可以找到是哪个软件占用了这个端口。一般来说,如果安装过各种手机助手(如360手机助手,或豌豆夹等软件),可能会遇到这个问题。

 

3. 安装完了adb,你准备干点啥呢?

  1. 快速导出手里的照片。应用场景:例如单位开会时拍照,完了后发照片给领导时,领导不希望是通过微信或QQ一张张的发过去的。这时,可以通过adb,快速将camera文件夹中,文件名为:IMG_YYYYMMDD_*.jpg的文件导出到指定文件夹。也可以修改为导出某天的截图等。搭配python,应用场景丰富。
  2. 通过电脑打电话。如果工作中经常要打电话,打电话的对象就存在手机里,或者电话号码已经在电脑上,如果要逐一到手机上拨号,一是麻烦、二是担心拨错,对于急性子和强迫症的人来说,真的是一种煎熬。在网上几乎找到这类软件(有,但是收费,或者我的需求很简单而这个app太过复杂)。
  3. 对手机进行模拟操作。例如,点赞、关注等机械重复操作。

才开始接触adb,欢迎大家批评指正。

本文标签: 详解 手机 ADB