# 影刀RPA进阶教程:ADB命令在影刀

影刀RPA进阶教程:ADB命令在影刀手机自动化中的应用

做TikTok Shop或TEMU的手机端运营,很多操作只能在App里完成。
问题:影刀主打浏览器自动化,手机App怎么控制?
答案:通过ADB命令连接安卓手机或模拟器,用影刀执行ADB指令实现点击、滑动、截屏。


一、ADB是什么

ADB(Android Debug Bridge)是安卓调试桥,通过电脑命令行控制安卓设备。
影刀结合方式:用“运行命令行”指令执行ADB命令,间接控制手机/模拟器。

能做什么

  • 打开App、点击坐标、滑动屏幕
  • 输入文本、截屏、获取当前界面XML
  • 安装卸载App、获取设备信息

不能做什么

  • 无法像浏览器那样捕获元素(需要用坐标或图像识别)
  • 无法直接获取控件文本(需要解析UI XML)

💡 前置条件:电脑已安装ADB驱动,手机/模拟器开启USB调试。


二、ADB环境配置

步骤1:下载ADB工具

搜索“ADB platform tools”下载,解压到 C:\adb

步骤2:配置环境变量

C:\adb 添加到系统Path,或在影刀中直接使用绝对路径。

步骤3:连接设备

  • 安卓模拟器(雷电、夜神):启动后自动连接
  • 真机:USB连接,开启开发者模式和USB调试

验证连接:在电脑命令行输入 adb devices,看到设备列表即成功。

步骤4:影刀中测试ADB

拖入“运行命令行”指令,命令内容:adb devices,输出到变量,看是否有设备。


三、常用ADB命令与影刀封装

操作ADB命令影刀指令封装
查看连接设备adb devices运行命令行
点击坐标adb shell input tap x y运行命令行,参数拼接
滑动adb shell input swipe x1 y1 x2 y2 duration同上
输入文本adb shell input text "内容"需处理空格和特殊字符
截屏adb exec-out screencap -p > local.png保存到本地
按返回键adb shell input keyevent KEYCODE_BACK模拟按键
启动Appadb shell monkey -p 包名 1需知道包名
获取UI XMLadb shell uiautomator dump复杂,不推荐新手

picture.image

picture.image

picture.image

四、实战:用影刀控制抖音App刷视频

picture.image 场景:自动刷TikTok/抖音视频,模拟人工观看。

步骤1:启动App

# 运行命令行指令
# 命令:adb shell monkey -p com.ss.android.ugc.aweme 1
# 抖音包名:com.ss.android.ugc.aweme
# 输出到 {result}

步骤2:等待加载(固定等待3秒)

步骤3:向上滑动(模拟刷视频)

# 滑动命令:adb shell input swipe 500 1200 500 400 200
# 参数说明:从(x1,y1)滑到(x2,y2),耗时200ms
# 分辨率1080x1920时,屏幕中心X=540,底部Y=1600,顶部Y=400

# 运行命令行
# 命令:adb shell input swipe 540 1500 540 500 300

步骤4:随机等待(4~8秒,模拟观看)

步骤5:循环步骤3-4共20次

步骤6:按返回键退出

# adb shell input keyevent KEYCODE_BACK
# 或 KEYCODE_HOME 回桌面

五、实战:采集手机屏幕截图并保存

场景:App界面出现某个元素(如图标),需要截图保存。

# 1. 截屏并保存到手机
# 运行命令行:adb shell screencap -p /sdcard/screen.png

# 2. 从手机拉取到电脑
# 运行命令行:adb pull /sdcard/screen.png C:\screenshots\screen_{时间戳}.png

# 3. 可选:删除手机上的截图
# 运行命令行:adb shell rm /sdcard/screen.png

影刀集成
用“获取当前时间”生成时间戳,用“字符串拼接”组合命令,再用“运行命令行”执行。


六、坐标的获取方法

手机自动化最大的难题:不知道要点击的坐标

方法1:开发者模式指针位置

手机开启“开发者选项” → “指针位置”,触摸屏幕会显示坐标。
记下坐标,写死在影刀命令中。

方法2:截图+画图工具

用ADB截屏,在电脑上用画图软件打开,鼠标移动到目标位置,看右下角坐标。

方法3:adb shell getevent(高级)

实时获取点击坐标,适合精确调试。

注意:不同分辨率手机的坐标不同。
解决:用 adb shell wm size 获取分辨率,动态计算相对坐标。
例如1080x1920的屏幕中心点是540,960。


七、影刀ADB指令封装技巧

技巧1:封装成子流程

把常用ADB操作封装成子流程,方便复用。

# 子流程:ADB_Click
# 输入参数:in_x, in_y
# 命令:adb shell input tap {in_x} {in_y}
# 输出参数:out_success

# 子流程:ADB_SwipeUp
# 输入参数:in_duration(默认300ms)
# 命令:adb shell input swipe 540 1500 540 500 {in_duration}

技巧2:自动获取分辨率

在流程开始时执行一次 adb shell wm size,解析出宽高,存入全局变量。
所有点击坐标按比例计算,适配不同设备。

# 获取分辨率
# 运行命令行:adb shell wm size
# 输出示例:Physical size: 1080x1920
# 用正则提取:(\d+)x(\d+)
# 存入 g_screen_width, g_screen_height

技巧3:处理输入文本中的空格和特殊字符

adb shell input text 不支持空格,需要用 %s 转义。
解决:用 adb shell input text "内容" 加引号,或用 keyevent 逐个字符。

# 简单写法(不支持空格)
# adb shell input test "hello world" 会失败

# 推荐:用adb shell am broadcast 方式,或每个字符单独发送
# 更简单:用“设置剪贴板文本” + 粘贴(需要App支持)

八、常见问题与避坑

问题原因解决方法
adb devices 看不到设备USB调试未开或驱动问题重新插拔,确认手机授权
点击坐标无效坐标超出屏幕范围用分辨率校准
输入中文乱码input text不支持中文用ADB Keyboard或剪贴板方式
运行命令行卡住命令执行时间过长加超时参数(影刀运行命令行可设置超时)
多个设备连接adb devices显示多个-s 设备号 指定设备
模拟器连接失败模拟器ADB端口不对夜神端口62001,逍遥21503

多设备指定写法

adb -s emulator-5554 shell input tap 500 500

九、影刀专属操作清单

操作精确指令说明
运行ADB命令运行命令行填写完整adb命令
获取命令输出运行命令行 → 输出到变量输出是字符串,需解析
拼接命令字符串拼接把坐标、包名拼进去
固定等待固定等待给App加载时间
循环操作固定次数循环刷视频次数
异常捕获Try-CatchADB命令可能失败

版本差异:社区版“运行命令行”指令可用,但长时间运行可能超时。
建议在ADB命令后加 &(Windows)或设置超时参数。


推荐资源

  • ADB命令大全:搜索“ADB常用命令速查表”
  • 影刀社区:搜索“ADB手机自动化”,有模板参考
  • 模拟器推荐:雷电模拟器(ADB兼容性好)
  • 坐标获取工具:安卓开发者选项中的“指针位置”

最后一句:手机自动化比网页复杂,但ADB提供了基础能力。
建议先用模拟器调试(方便截图看坐标),调通后再上真机。
刷视频、点赞、关注这类简单操作,用ADB坐标点击完全够用。


作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论