手机自动化是影刀RPA里门槛最高的部分,而ADB环境搭建又是手机自动化的第一道坎。数据线插上去、开发者模式开了、USB调试也开了,影刀就是连不上手机。
或者好不容易连上了,输入中文变成方框、问号、乱码。
我也是非技术出身,当初搭ADB环境搞了整整一个下午,各种报错挨个试过来。这篇把连接失败的全部排查路径和中文输入的三种解决方案一次性讲清楚。
ADB连接失败的完整排查路径
ADB(Android Debug Bridge)是电脑和安卓手机通信的桥梁。影刀RPA通过ADB向手机发送操作指令。连接失败时,按以下顺序逐项排查。
排查第一层:手机端设置
手机端的四项设置缺一不可,而且不同品牌手机位置略有不同。
| 设置项 | 位置(通用路径) | 说明 |
|---|---|---|
| 开发者模式 | 设置→关于手机→连续点击版本号7次 | 部分品牌点击的是“系统版本”或“MIUI版本” |
| USB调试 | 设置→开发者选项→USB调试 | 主开关,必须开启 |
| USB安装/调试安全 | 设置→开发者选项 | 部分品牌需要额外开启,允许通过USB安装应用 |
| 仅充电模式下允许ADB | 设置→开发者选项→选择USB配置 | 部分品牌默认USB连接模式是“仅充电”,需改为“传输文件”或“MIDI” |
这里很容易踩坑,注意看: 小米、OPPO、vivo等国产手机首次开启USB调试时,插上数据线会弹出一个授权确认框,需要点“一律允许”。这个弹窗只有几秒时间,如果没点到,需要在开发者选项里“撤销USB调试授权”后重新插线触发。
排查第二层:数据线与电脑端
不是所有USB数据线都能传数据。很多充电线只有充电功能,没有数据传输能力。
快速判断数据线是否可用:
- 用这根线连接手机和电脑
- 手机上选择“传输文件”模式
- 电脑上打开“此电脑”,看是否出现手机存储盘符
- 如果能读取手机文件,数据线就没问题
电脑端检查:
- 设备管理器中“便携设备”或“Android Device”是否有黄色感叹号
- 有感叹号说明驱动未安装,需要手动安装ADB驱动
- 驱动下载:各品牌官网有USB驱动,或安装通用ADB驱动(搜索“15 seconds ADB installer”)
排查第三层:影刀端配置
影刀RPA使用内置的ADB程序,和系统安装的ADB是独立的。
影刀端检查步骤:
- 打开影刀,新建空白流程
- 指令面板搜索“ADB”,找到“连接设备”指令拖入
- 右侧指令详情面板,确认ADB路径是否正确
- 默认路径通常在影刀安装目录下的
tools/adb文件夹 - 点击指令的“运行”按钮,查看输出面板返回的设备列表
# 命令行指令:手动检查ADB连接状态
# 在影刀中用“执行命令行”指令运行以下命令
# 1. 进入影刀的ADB目录
# cd C:\Program Files\影刀RPA\tools\adb
# 2. 查看已连接设备列表
# adb devices
# 正常输出示例:
# List of devices attached
# 1234567890ABCDEF device
# 异常输出:
# 1234567890ABCDEF unauthorized(未授权,手机点确认)

# 1234567890ABCDEF offline(离线,重新插拔数据线)
# (空白) (未检测到设备,检查手机设置和驱动)
排查第四层:端口冲突
如果电脑上同时安装了360手机助手、应用宝、豌豆荚等工具,它们会占用ADB端口。
解决方法:
- 任务管理器关闭所有手机助手程序
- 命令行执行:
adb kill-server然后adb start-server - 重新插拔手机数据线
| 设备状态 | 含义 | 解决方法 |
|---|---|---|
| device | 连接正常 | ✅ 可以开始操作 |
| unauthorized | 未授权 | 手机上点“允许USB调试” |
| offline | 离线 | 重新插拔数据线,重启手机 |
| no device | 未检测到 | 检查线、驱动、USB端口 |
| recovery | 手机在Recovery模式 | 重启手机到正常模式 |
中文输入的三种解决方案
ADB默认的input text命令只支持ASCII字符,输入中文会变成乱码或直接失败。这是ADB本身的限制,不是影刀的问题。
方案一:ADB Keyboard虚拟键盘(推荐,最稳定)
在手机上安装一个支持ADB广播输入的中文输入法。
配置步骤:
- 手机下载安装“ADB Keyboard”APK(Google Play或GitHub搜索)
- 手机设置→语言和输入法→启用ADB Keyboard
- 影刀中需要输入中文时,先用ADB指令切换输入法
- 然后通过广播发送中文内容
- 输入完成后再切回正常输入法
# 命令行指令:通过ADB Keyboard输入中文
# 指令:执行命令行
# 1. 切换输入法为ADB Keyboard
# adb shell ime set com.android.adbkeyboard/.AdbIME
# 2. 发送中文内容(需要URL编码)
# adb shell am broadcast -a ADB_INPUT_TEXT --es msg '你好世界'
# 3. 输入完成后切换回原输入法(可选)
# adb shell ime set com.sohu.inputmethod.sogou/.SogouIME
这个方案输入稳定,不受中文长度限制,是最推荐的方案。
方案二:剪贴板中转(备选方案)
利用安卓剪贴板做中转,先在剪贴板设置中文内容,再模拟粘贴操作。
操作步骤:
- 影刀中将中文文本存入变量
- 用ADB命令将文本设置到手机剪贴板
- 用ADB模拟粘贴快捷键(长按输入框→粘贴,或Ctrl+V)
# 命令行指令:通过剪贴板输入中文
# 1. 设置剪贴板内容(注意字符转义,引号前加\)
# adb shell am broadcast -a clipper.set -e text "你好世界"
# 2. 模拟长按粘贴(需要先安装Clipper应用)
# 或者用坐标点击输入框后,发送粘贴按键
# adb shell input keyevent 279 # KEYCODE_PASTE
# 剪贴板方案的局限:
# - 需要先安装Clipper或其他剪贴板管理应用
# - 某些输入框不支持粘贴
# - 会覆盖用户剪贴板原有内容
方案三:影刀内置的移动端输入指令(最简单但有局限)
影刀RPA 3.0版本之后提供了“移动端输入”指令,对中文有初步支持。
操作步骤:
- 在指令面板搜索“移动端输入”,拖入编辑区
- 右侧参数面板中,输入类型选“文本”
- 输入内容填入中文文本变量
- 如果输入失败,尝试切换输入方式为“逐字符输入”
局限:
- 不是所有手机型号都兼容
- 逐字符输入速度慢,长文本可能需要几十秒
- 部分定制系统(如华为鸿蒙)兼容性较差
| 方案 | 稳定性 | 速度 | 兼容性 | 推荐度 |
|---|---|---|---|---|
| ADB Keyboard | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 最推荐 |
| 剪贴板中转 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 备选 |
| 影刀内置指令 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ | 简单场景可用 |
手机自动化的坐标获取与操作精度
ADB连接成功后,下一步是获取操作坐标。影刀提供了两种坐标获取方式。
方式一:开发者选项开启“指针位置”
- 手机设置→开发者选项→指针位置→开启
- 触摸屏幕时顶部状态栏显示坐标信息
- 记录需要点击位置的X和Y坐标
- 在影刀中用“点击坐标”指令填入坐标值
方式二:使用uiautomator获取元素边界
- 命令行执行:
adb shell uiautomator dump /sdcard/ui.xml - 拉取文件:
adb pull /sdcard/ui.xml - 打开XML文件,搜索目标元素的
bounds属性 bounds="[x1,y1][x2,y2]",中心点坐标:((x1+x2)/2, (y1+y2)/2)
# 命令行指令:获取当前屏幕的UI结构
# adb shell uiautomator dump /sdcard/ui.xml
# adb pull /sdcard/ui.xml C:\用户\你的用户名\Desktop\ui.xml
# XML中的元素示例:
# <node text="搜索" bounds="[100,200][300,260]" />
# 点击中心坐标:X=(100+300)/2=200, Y=(200+260)/2=230
坐标操作的精度问题: 不同手机分辨率不同,在一台手机上录制的坐标在另一台手机上会偏移。如果流程需要在多台手机执行,建议用比例坐标(X/屏幕宽度,Y/屏幕高度)而非绝对像素坐标。
常见问题快速排查表
| 问题现象 | 原因 | 解决方法 |
|---|---|---|
| adb devices无输出 | 驱动问题或数据线坏了 | 换数据线、重装驱动、换USB口 |
| 显示unauthorized | 手机未授权 | 重新插拔弹出授权框,点允许 |
| 连接上但操作报错 | USB调试权限不完整 | 开发者选项中开启所有USB相关权限 |
| 中文输入变方框 | 输入法不支持 | 安装ADB Keyboard或换剪贴板方案 |
| 坐标点击偏移 | 分辨率不匹配 | 计算比例坐标,用相对位置 |
| 部分手机型号完全不兼容 | 定制系统限制 | 检查是否有“企业模式”或“安全模式”限制 |
#影刀RPA #RPA自动化 #手机自动化 #ADB #中文输入
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
