核心概念
了解 vFlow 的基本架构和工作原理。
工作流 (Workflow)
工作流是 vFlow 的核心概念,它由一系列动作步骤 (ActionStep) 组成。每个步骤对应一个具体的自动化操作,如点击屏幕、查找文本、判断条件等。
工作流结构
工作流 (Workflow)
├── 触发器 (Trigger)
│ ├── 手动触发
│ ├── 定时触发
│ ├── 通知触发
│ └── 更多...
└── 动作步骤 (ActionStep)
├── 点击模块 (ClickModule)
├── 输入模块 (InputModule)
├── 条件判断 (IfModule)
├── 循环 (LoopModule)
└── 更多...
模块 (Module)
模块是 vFlow 的基本构建单元。每个模块实现了 ActionModule 接口,负责:
- 定义元数据 - 名称、图标、描述
- 定义输入/输出 - 参数规范
- 执行逻辑 - 具体的自动化操作
- UI 渲染 - 编辑界面生成
模块分类
| 分类 | 说明 | 示例 |
|---|---|---|
| 核心 (Core) | 基础操作 | 点击、输入、截图 |
| 交互 (Interaction) | UI 操作 | 查找文本、OCR |
| 系统 (System) | 系统功能 | 延时、剪贴板、通知 |
| 逻辑 (Logic) | 控制流 | 条件判断、循环、跳转 |
| 触发器 (Triggers) | 启动条件 | 定时、通知、按键 |
| 数据 (Data) | 数据处理 | 文本处理、计算 |
| 文件 (File) | 文件操作 | 保存图片、调整图像 |
| UI 组件 (UI Components) | 界面创建 | 悬浮窗、活动 |
魔法变量 (Magic Variables)
魔法变量是 vFlow 的核心特性,允许模块的输出作为后续模块的输入。
语法格式
${模块名称.输出名称}
示例
点击模块输出: ${click_node.id}
查找文本模块输出: ${find_text.text}
执行上下文 (ExecutionContext)
执行上下文在每个步骤执行时创建,包含:
- 当前工作流状态
- 所有魔法变量的值
- 服务实例 (AccessibilityService, etc.)
- 执行日志
权限管理
vFlow 在执行工作流前会检查所需权限:
| 权限 | 用途 |
|---|---|
| 无障碍服务 | 执行屏幕操作 |
| 悬浮窗 | 显示悬浮面板 |
| 通知监听 | 触发自动化 |
| 存储访问 | 文件操作 |
核心架构
┌─────────────────────────────────────────────────┐
│ vFlow App │
├─────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ │
│ │ ModuleRegistry │ │ WorkflowEditor │ │
│ └─────────────┘ └─────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ WorkflowExecutor │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ ExecutionContext │ │ │
│ │ └───────────────────────────┘ │ │
│ └─────────────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Master Process │ │ Worker Process │ │
│ │ (Main App) │ │ (Shell/Root) │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────┘