本仓库演示如何使用 accBot TypeScript SDK 进行 Android 自动化测试。
git clone https://cnb.cool/accbot/tool/nodeJsTestDemo.git
cd nodeJsTestDemo
npm install
安装完成后,SDK 会自动释放以下文件到 unpackage/ 目录:
debug.apk - Android APK(内置 accSys)paddleocr-plugin.zip - PaddleOCR 插件# USB 连接
adb devices
# 或网络连接
adb connect <设备IP>:5555
adb devices
关键发现:accSys 已内置在 APK 中,安装后自动释放到 App 缓存目录。
# 安装 APK
adb install unpackage/debug.apk
# 从 App 缓存复制 accSys(无需外部推送)
adb shell "cp /sdcard/Android/data/vip.accbot.app/cache/assets/sys/accSys /data/local/tmp/accSys"
adb shell "chmod +x /data/local/tmp/accSys"
# 后台启动 accSys
adb shell "cd /data/local/tmp && nohup ./accSys > ./accSys.log 2>&1 &"
# 等待 2 秒后确认端口
sleep 2
adb shell "netstat -tlnp | grep 1901"
# 应看到 19011 和 19012
# 使用 instrumentation 启动(推荐)
adb shell "nohup am instrument -w -r -e debug false -e class 'run.RunTest#useAppContext' vip.accbot.app/androidx.test.runner.AndroidJUnitRunner >/storage/emulated/0/Download/log_u2.txt 2>&1 &"
# 等待 App 启动
sleep 3
node index.mjs
chmod +x deploy.sh
./deploy.sh
# 1. 克隆仓库
git clone https://cnb.cool/accbot/tool/nodeJsTestDemo.git
cd nodeJsTestDemo
npm install
# 2. 连接设备
adb connect 192.168.56.55:5555
adb devices
# 3. 清理旧版本
adb uninstall vip.accbot.app 2>/dev/null || true
adb shell "pkill -f accSys" 2>/dev/null || true
# 4. 安装 APK
adb install unpackage/debug.apk
# 5. 部署 accSys(从 App 缓存复制)
adb shell "cp /sdcard/Android/data/vip.accbot.app/cache/assets/sys/accSys /data/local/tmp/accSys"
adb shell "chmod +x /data/local/tmp/accSys"
adb shell "cd /data/local/tmp && nohup ./accSys > ./accSys.log 2>&1 &"
sleep 2
# 6. 启动 App
adb shell "nohup am instrument -w -r -e debug false -e class 'run.RunTest#useAppContext' vip.accbot.app/androidx.test.runner.AndroidJUnitRunner >/storage/emulated/0/Download/log_u2.txt 2>&1 &"
sleep 3
# 7. 运行测试
node index.mjs
=== accBot SDK 测试 Demo ===
1️⃣ 连接设备...
✅ 连接成功
1.5️⃣ 自动授权权限...
✓ 文件读写 — 已开启
✓ 悬浮窗 — 已开启
✅ 输入法 已授权
✅ 必要权限 已授权
✓ 通知权限 — 已开启
✅ 系统设置 已授权
✅ 省电优化 已授权
2️⃣ 检查插件列表...
当前插件: [ 'opencv', 'paddleocr' ]
✅ 检查完成
3️⃣ 部署 OpenCV 插件...
插件已推送
插件已存在,跳过加载
✅ OpenCV 插件就绪
4️⃣ 部署 PaddleOCR 插件...
插件已推送
插件已存在,跳过加载
✅ PaddleOCR 插件就绪
5️⃣ 测试 OpenCV 功能...
截图成功, imageId: 3
坐标(100,100)颜色: [241, 242, 246]
✅ OpenCV 功能正常
6️⃣ 测试 PaddleOCR 功能...
支持的语言: [ 'cyrillic', 'ch' ]
当前语言: ch
OCR 结果数量: 31
示例文本: "04:20", "已连接", "accBotAPI测试工具"
✅ PaddleOCR 功能正常
=== 测试完成 ===
nodeJsTestDemo/
├── README.md # 本文档
├── package.json # 项目配置
├── index.mjs # 主测试脚本
├── deploy.sh # 一键部署脚本
├── .npmrc # npm 私有仓库配置
├── .gitignore # git 忽略文件
└── unpackage/ # SDK 释放目录(npm install 后生成)
├── debug.apk # Android APK(内置 accSys)
└── paddleocr-plugin.zip # PaddleOCR 插件
SDK 内置了 accSys,安装 APK 后自动释放到:
/sdcard/Android/data/vip.accbot.app/cache/assets/sys/accSys
无需单独编译或下载 accSys。
所有服务启动命令使用 nohup 和 & 确保后台运行,不阻塞终端:
# accSys 后台启动
adb shell "cd /data/local/tmp && nohup ./accSys > ./accSys.log 2>&1 &"
# App 后台启动
adb shell "nohup am instrument ... >/storage/emulated/0/Download/log_u2.txt 2>&1 &"
确认设备 IP 和端口正确,accSys 已启动:
adb shell "netstat -tlnp | grep 1901"
确认插件 zip 文件存在:
ls node_modules/@accbot/accbot-plugin-opencv/plugin.zip
ls node_modules/@accbot/accbot-plugin-paddleocr/plugin.zip
确认 APK 已安装且缓存目录存在:
adb shell "ls /sdcard/Android/data/vip.accbot.app/cache/assets/sys/"
adb uninstall vip.accbot.app
adb install unpackage/debug.apk