HusxGLM
An Android GUI Agent powered by Volcano Engine's vision LLM - automate phone operations with natural language commands
Install / Use
/learn @HuSuuuu/HusxGLMREADME
Open Auto GLM
基于火山引擎豆包大模型的 Android GUI 自动化助手。
项目简介
Open Auto GLM 是一个 Android GUI Agent 应用,利用火山引擎的 doubao-seed-1.6-flash 视觉大模型作为智能中枢,实现"自然语言指挥AI操作手机"的功能。
核心特性
- 🤖 智能Agent:基于火山引擎豆包大模型,理解屏幕内容并规划操作
- 📱 屏幕感知:通过 MediaProjection API 实时截取屏幕
- ⚡ 精准执行:通过 AccessibilityService 执行点击、滑动、输入等操作
- 🔐 安全存储:API Key 使用 EncryptedSharedPreferences 加密存储
- 📊 实时日志:显示AI思考过程和操作执行日志
项目架构
OpenAutoGLM/
├── app/ # 主应用模块
│ ├── ui/screen/ # UI界面 (Jetpack Compose)
│ │ ├── HomeScreen.kt # 主界面 - 任务输入和执行
│ │ └── SettingsScreen.kt # 设置界面 - API Key配置
│ ├── viewmodel/ # ViewModel层
│ │ ├── AgentViewModel.kt # Agent控制逻辑
│ │ └── SettingsViewModel.kt # 设置管理
│ └── di/ # 依赖注入
│
├── core/ # 核心模块
│ ├── agent/ # 智能体模块
│ │ ├── VolcanoAgent.kt # 🔑 核心 - 火山API调用
│ │ ├── ActionParser.kt # 动作解析器
│ │ └── prompt/ # 系统提示词管理
│ │
│ ├── execution/ # 执行模块
│ │ ├── ActionExecutor.kt # 🔑 动作执行器
│ │ └── AutomationAccessibilityService.kt # 无障碍服务
│ │
│ ├── vision/ # 视觉模块
│ │ ├── ScreenCaptureService.kt # 截图服务
│ │ └── ScreenCaptureManager.kt # 截图管理器
│ │
│ └── common/ # 公共工具
│ ├── CoordinateUtils.kt # 坐标转换 (借鉴自原项目)
│ └── ImageUtils.kt # 图像处理
│
└── data/ # 数据模块
├── model/ # 数据模型
│ ├── Action.kt # 操作定义
│ └── api/ # API数据模型
│
└── repository/ # 数据仓库
├── ApiKeyRepository.kt # API Key加密存储
└── SettingsRepository.kt # 应用设置
技术栈
| 类别 | 技术 | |------|------| | 语言 | Kotlin | | UI | Jetpack Compose + Material 3 | | 架构 | MVVM + Clean Architecture | | 依赖注入 | Hilt | | 网络 | Retrofit + OkHttp | | 异步 | Kotlin Coroutines + Flow | | 序列化 | Kotlinx Serialization | | 存储 | DataStore + EncryptedSharedPreferences |
借鉴设计
本项目借鉴了 Open-AutoGLM 开源项目的优秀设计:
-
归一化坐标系统 (0-1000)
- 模型输出与屏幕分辨率解耦
- 支持任意分辨率设备
- 参见
CoordinateUtils.kt
-
动作解析机制
- 安全的JSON解析(避免eval)
- 多格式响应兼容
- 参见
ActionParser.kt
-
系统提示词设计
- 详细的操作指令说明
- 完善的规则约束
- 参见
SystemPromptManager.kt
-
应用包名映射
- 50+常用应用预定义
- 快速启动应用
- 参见
AppPackages.kt
使用方法
1. 配置 API Key
- 前往 火山引擎方舟平台 获取 API Key
- 在应用设置中输入 API Key
- (可选)配置推理接入点ID
2. 授权权限
- 屏幕截图权限:点击"截图"按钮,在弹出的系统对话框中授权
- 无障碍服务:点击"无障碍"按钮,在系统设置中开启服务
3. 执行任务
- 在任务输入框中输入自然语言指令
- 例如:"打开微信,给张三发一条消息说你好"
- 点击"开始执行"
- 观察实时日志,了解AI的思考和操作过程
支持的操作
| 操作 | 说明 | |------|------| | Tap | 点击指定坐标 | | Swipe | 滑动 | | Type | 输入文本 | | Launch | 启动应用 | | Back | 返回 | | Home | 主屏幕 | | Long Press | 长按 | | Double Tap | 双击 | | Wait | 等待 | | Takeover | 请求用户接管 | | Finish | 完成任务 |
编译构建
# 克隆项目
git clone <repository-url>
cd glm
# 使用 Android Studio 打开项目
# 或使用命令行构建
./gradlew assembleDebug
环境要求
- Android Studio Hedgehog 或更高版本
- JDK 17
- Android SDK 35
- Gradle 8.7+
注意事项
- 隐私安全:API Key 加密存储,不会上传到任何服务器
- 权限说明:
- 屏幕截图权限仅用于获取当前屏幕内容
- 无障碍服务仅用于执行自动化操作
- 使用限制:
- 请遵守火山引擎的使用条款
- 不要用于违法或违规用途
许可证
本项目仅供学习研究使用。
致谢
- Open-AutoGLM - 优秀的开源手机自动化框架
- 火山引擎 - 强大的AI模型服务
