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 封装调用