ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

基于Action Model的Android智能自动化系统设计与实现

基于Action Model的Android智能自动化系统设计与实现

1. 项目背景与核心思路

那天深夜调试代码时,我突然意识到:为什么每次都要手动点击几十次才能完成一个简单的自动化测试?市面上那些号称"智能"的对话AI,除了陪聊还能做什么?这个念头直接催生了这个项目——一个能真正接管Android操作流的智能体系统。

传统自动化方案(如MonkeyRunner)需要编写大量脚本,而普通对话AI又缺乏执行能力。我的解决方案是构建基于Action Model的智能体架构,它包含三个关键模块:

  • 意图理解引擎(自然语言转操作指令)
  • 操作映射层(指令转ADB命令)
  • 执行反馈系统(实时屏幕分析)

这个架构最巧妙的地方在于:当你说"把微信消息列表往下拉到底部"时,它真的会通过计算滚动距离和触发次数来执行操作,而不是回复你"我理解你想浏览消息"。

2. 核心架构解析

2.1 动作建模引擎

核心突破在于建立了Android操作的原子动作库:

ACTION_LIBRARY = { 'scroll_down': { 'adb': 'input swipe x1 y1 x2 y2 duration', 'params': ['distance', 'speed'], 'preprocess': lambda params: calculate_swipe_coordinates(params) }, 'tap_icon': { 'adb': 'input tap x y', 'preprocess': lambda: detect_icon_position(icon_name) } }

每个动作都包含:

  1. 底层ADB命令模板
  2. 参数转换逻辑
  3. 预处理函数(如图标定位)

2.2 视觉反馈系统

通过scrcpy实时获取屏幕帧,结合OpenCV实现:

  • 控件定位(基于模板匹配)
  • 滚动状态检测(像素差异分析)
  • 操作结果验证(目标区域变化检测)

实测发现单纯依赖AccessibilityService获取控件树不够可靠,视觉方案在游戏等动态界面更稳定。

3. 实操开发记录

3.1 环境搭建要点

# 必须开启的开发者选项 adb shell settings put global hidden_api_policy 1 adb shell pm grant com.agent android.permission.DUMP # 编译带输入控制的scrcpy版本 git clone https://github.com/Genymobile/scrcpy cd scrcpy && meson x --buildtype release -Dprebuilt_server=scrcpy-server

3.2 典型指令处理流程

  1. 用户语音输入:"给张三发微信说今晚开会"
  2. NLP解析出操作链:
    • 启动微信
    • 搜索联系人
    • 输入文本
    • 点击发送
  3. 各步骤转为原子动作:
    execute('launch_app', 'com.tencent.mm') execute('search_contact', '张三') execute('input_text', '今晚开会') execute('tap_control', '发送按钮')

4. 踩坑实录与优化

4.1 输入法兼容性问题

初期直接使用ADB输入文本,在搜狗等第三方输入法会丢失焦点。最终方案:

def safe_input(text): if detect_input_method() != 'com.android.inputmethod.latin': switch_input_method('LatinIME') send_keyevents(text)

4.2 动态界面等待策略

通过视觉特征+超时双重判断:

wait_until( condition=lambda: match_template('loading_icon') < 0.9, timeout=30, poll_interval=0.5 )

5. 效果对比测试

在Redmi Note 11上实测:

操作类型传统脚本耗时智能体耗时
微信发消息8.2s3.5s
淘宝下单23.7s9.8s
抖音连续点赞10次手动操作6.4s

速度提升主要来自:

  • 操作链的并行预处理
  • 视觉反馈减少等待间隔
  • 错误操作的自动恢复

这套系统现在每天帮我自动处理客服消息、测试应用交互,甚至能在游戏里完成日常任务。真正有价值的AI不应该只会说"我明白你的需求",而是能卷起袖子帮你干活——这就是Action Model带来的改变。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进