accBot 插件仓库,一个文件夹一个插件。每个插件独立编译、独立说明。
| 插件 | 说明 | 大小 | 状态 |
|---|---|---|---|
| paddleocr | PaddleOCR 多语言 OCR(中文+俄语) | ~12MB | 活跃 |
| opencv | OpenCV 图色识别(模板匹配/颜色查找) | ~8.2MB | 活跃 |
| easyedge-ocr | 百度商业 OCR(旧版,已被 PaddleOCR 替代) | ~24MB | 停用 |
# 安装 NDK (如果还没有)
# NDK r26d: https://developer.android.com/ndk/downloads
# 下载插件编译依赖(Paddle Lite SDK、模型等)
cd paddleocr
bash setup-deps.sh
cd ../accBot3.0
./gradlew assembleDebug
# 编译 PaddleOCR 插件
cd ../accBotPlugin/paddleocr
bash build.sh
# 编译 OpenCV 插件
cd ../opencv
bash build.sh
accBotPlugin/
├── README.md # 本文件
├── paddleocr/ # PaddleOCR 多语言 OCR 插件
│ ├── README.md # 插件说明和编译指南
│ ├── build.sh # 编译脚本
│ ├── setup-deps.sh # 依赖下载脚本
│ ├── plugin.json # 插件清单
│ ├── jni/ # C++ JNI 源码
│ │ ├── paddleocr_jni.cpp # OCR pipeline (C++ 实现)
│ │ └── paddleocr_loader.cpp # SO 加载器
│ ├── libs/ # 本地 JAR 依赖
│ │ └── PaddlePredictor.jar
│ └── src/ # Java 源码
│ └── vip/accbot/plugin/paddleocr/
├── opencv/ # OpenCV 图色识别插件
│ ├── README.md # 插件说明和编译指南
│ ├── build.sh # 编译脚本
│ ├── plugin.json # 插件清单
│ ├── libs/ # 本地 SO/JAR 依赖
│ │ ├── arm64-v8a/
│ │ │ ├── libopencv_java4.so
│ │ │ └── libc++_shared.so
│ │ └── opencv-java-api.jar
│ └── src/ # Java 源码
│ └── vip/accbot/plugin/opencv/
└── easyedge-ocr/ # 百度商业 OCR 插件(旧版)
├── README.md # 插件说明
├── build-ocr-plugin.sh # 编译脚本
├── plugin.json # 插件清单
└── src/ # Java 源码
└── vip/accbot/plugin/ocr/
每个插件目录必须包含:
plugin.json — 插件清单(name、version、entryClass、functions、soFiles、permissions)build.sh 或 build-*.sh — 编译脚本README.md — 插件说明文档src/ — Java 源码libs/ — 本地 SO/JAR 依赖(提交到 git)jni/ — JNI 源码(如需 Native 代码)models/ 或通过 setup-deps.sh 下载的外部资源编译产物为 ZIP 包:
plugin-name-plugin.zip
├── classes.dex # Java 字节码
├── plugin.json # 插件清单
├── lib/arm64-v8a/ # Native SO 文件
│ ├── libc++_shared.so
│ └── *.so
└── assets/ # 资源文件(模型、字典等)
// JS 端推送 ZIP 到设备
await android.file.writeBase64(path, base64Data);
// 加载插件
await android.app.loadPlugin(path);
// 调用插件
await android.ocr.ocr(); // 通过 SDK 封装调用