# Expo Config Plugins

本目录包含所有原生模块的 Expo Config Plugin。由于 `android/` 目录由 `expo prebuild` 自动生成且被 Git 忽略，所有原生代码必须以 Config Plugin 形式存在。

## 插件结构

```
plugins/<name>/
  app.plugin.js      # prebuild 时执行，注入 Kotlin/XML、修改 gradle、注册服务
  package.json       # 插件元数据
  android/*.kt       # 原生 Kotlin 代码
  assets/            # 模型文件等静态资源（仅 ppocr）
```

## 当前插件

| 插件 | 功能 | 备注 |
|------|------|------|
| `ppocr` | PP-OCRv6 检测+识别 | ONNX Runtime，模型在 `assets/` |
| `accessibility` | 无障碍服务账单抓取 + 悬浮窗 + OCR 贴片 | 仅侧载场景 |
| `notification-listener` | 通知栏账单监听 | |
| `sms-receiver` | 短信账单解析 | |
| `screenshot-monitor` | 截图触发 OCR | |
| `size-optimization` | ABI 分包 + NDK 版本统一 | 仅影响 gradle 配置 |

## 开发须知

1. 每个插件函数**必须 `return config`**，否则后续插件会崩溃
2. 修改插件后需重新运行 `npx expo prebuild --platform android`
3. 原生服务通过 `NativeEventEmitter` 向 JS 层推送事件，**不直接写入**数据库或文件
4. `ppocr` 依赖 `onnxruntime-android:1.20.0`，prebuild 后请验证版本
