openclaw-android
SKILL.md
OpenClaw Android 控制器
功能说明
本技能通过OpenClaw工具控制Android手机,所有命令通过shell.sh脚本执行,脚本会自动处理su切换到root权限的操作,并记录执行日志用于调试,利用Android系统自带的命令如am、pm、input和screencap等,实现对Android设备的各种操作,包括:
- 获取安装软件列表(系统应用和第三方应用)
- 打开和关闭app
- 操作app(点击、滑动、输入文本、按键操作)
- 截图app
适用场景
- 自动化测试Android应用
- 远程控制Android设备
- 批量执行Android设备操作
- 监控Android设备状态
- 管理已安装的应用
- 对应用进行操作和截图
核心命令
1. 应用管理
启动应用
# 启动指定包名的应用
sh "$(dirname "$0")/shell.sh" start com.example.app/.MainActivity
# 启动应用并传递参数
sh "$(dirname "$0")/shell.sh" start com.example.app/.MainActivity --es key value
停止应用
# 停止指定包名的应用
sh "$(dirname "$0")/shell.sh" stop com.example.app
清除应用数据
# 清除应用数据
sh "$(dirname "$0")/shell.sh" clear com.example.app
2. 包管理
安装应用
# 安装APK文件(假设APK已在设备上)
sh "$(dirname "$0")/shell.sh" install /data/local/tmp/app.apk
卸载应用
# 卸载应用
sh "$(dirname "$0")/shell.sh" uninstall com.example.app
列出已安装应用
# 列出所有已安装应用
sh "$(dirname "$0")/shell.sh" list-packages
# 列出系统应用
sh "$(dirname "$0")/shell.sh" list-system
# 列出第三方应用
sh "$(dirname "$0")/shell.sh" list-third-party
3. 模拟输入
点击屏幕
# 在指定坐标点击屏幕
sh "$(dirname "$0")/shell.sh" tap x y
滑动屏幕
# 从(x1,y1)滑动到(x2,y2)
sh "$(dirname "$0")/shell.sh" swipe x1 y1 x2 y2
# 带延迟的滑动(毫秒)
sh "$(dirname "$0")/shell.sh" swipe x1 y1 x2 y2 duration
输入文本
# 输入文本
sh "$(dirname "$0")/shell.sh" text "Hello World"
按键操作
# 按下返回键
sh "$(dirname "$0")/shell.sh" keyevent 4
# 按下Home键
sh "$(dirname "$0")/shell.sh" keyevent 3
# 按下菜单键
sh "$(dirname "$0")/shell.sh" keyevent 82
4. 屏幕截图
截取屏幕
# 截取屏幕并保存到指定路径
sh "$(dirname "$0")/shell.sh" screenshot /sdcard/screenshot.png
# 截取屏幕到默认路径
sh "$(dirname "$0")/shell.sh" screenshot
5. 文件操作
查看文件列表
# 查看指定目录文件
sh "$(dirname "$0")/shell.sh" ls /sdcard/
# 查看当前目录
sh "$(dirname "$0")/shell.sh" ls
示例使用场景
场景1: 启动应用并点击按钮
# 启动应用
sh "$(dirname "$0")/shell.sh" start com.example.app/.MainActivity
# 等待应用加载
sleep 2
# 点击登录按钮(假设坐标为500,1000)
sh "$(dirname "$0")/shell.sh" tap 500 1000
# 输入用户名
sh "$(dirname "$0")/shell.sh" text "username"
# 点击密码输入框
sh "$(dirname "$0")/shell.sh" tap 500 1200
# 输入密码
sh "$(dirname "$0")/shell.sh" text "password"
# 点击登录按钮
sh "$(dirname "$0")/shell.sh" tap 500 1400
场景2: 截图
# 截取屏幕
sh "$(dirname "$0")/shell.sh" screenshot /sdcard/screenshot.png
场景3: 安装和测试应用
# 安装应用(假设APK已在设备上)
sh "$(dirname "$0")/shell.sh" install /data/local/tmp/app-debug.apk
# 启动应用
sh "$(dirname "$0")/shell.sh" start com.example.app/.MainActivity
# 执行测试操作...
# 卸载应用
sh "$(dirname "$0")/shell.sh" uninstall com.example.app
注意事项
- 所有命令都在Android手机内部执行,不需要ADB连接
- 所有命令通过
shell.sh脚本执行,脚本会自动处理root权限切换 - 坐标操作需要根据设备屏幕分辨率进行调整
- 执行复杂操作时,建议添加适当的延迟以确保操作完成
- 大批量操作可能会触发设备的安全机制,请注意操作频率
- 每次执行命令都会在
/sdcard/目录下生成日志文件,用于调试
故障排除
- 权限不足: 确保设备已root,且su命令可用
- 命令失败: 检查命令语法是否正确,确保包名和路径无误
- 截图失败: 确保存储权限已授予,尝试使用不同的存储路径
- 应用启动失败: 检查应用包名和Activity名称是否正确