- name
- project-devengine-implementation
- description
- 新增或修改 DevUtils DevEngine 第三方框架解耦实现:读取 DevAssist Engine 接口、DevEngine core 实现、 extensions 调用入口、默认初始化和 README,实现 JSON、Log、Image、Permission、Toast 等 Engine; 在用户要求创建某个功能 Engine、新增 Engine 实现、替换第三方库或扩展 DevEngine 时使用。
# Project DevEngine Implementation
用于 DevUtils 私人工具库中新增或维护某类 Engine 实现。详情路径与同步点见 [references/reference.md](references/reference.md)。
## 路径锚点
| 符号 | 当前值 |
|------|--------|
| `DEVASSIST_ENGINE_ROOT` | `lib/DevAssist/src/main/java/dev/engine` |
| `DEVENGINE_ROOT` | `lib/DevEngine/src/main/java/dev/engine` |
| `DEVENGINE_CORE_ROOT` | `lib/DevEngine/src/main/java/dev/engine/core` |
| `DEVENGINE_EXT_ROOT` | `lib/DevEngine/src/main/java/dev/engine/extensions` |
| `DEVENGINE_README` | `lib/DevEngine/README.md` |
| `DEPS_ROOT` | `file/gradle` |
## 工作流
1. 明确目标 Engine 类型与第三方实现名,例如 JSON + Moshi、Log + Timber、Image + Glide。
2. 先读 `DEVASSIST_ENGINE_ROOT/<domain>` 下的 `DevXxxEngine`、`IXxxEngine`、Config、Item、Result、callback/listener 等接口,确认能力边界;不要让实现层扩展接口未定义的业务语义。
3. 读取 `DEVENGINE_CORE_ROOT/<domain>`、`DEVENGINE_EXT_ROOT/<domain>` 与 `DevEngine.kt` 中同领域已有实现,复用现有命名、注释、异常处理和默认初始化风格。
4. 如果缺少第三方依赖,先 Read `../project-gradle-central-deps/SKILL.md`,再更新集中依赖配置和目标模块依赖;不要直接硬编码重复 GAV。
5. 在 `core/<domain>` 新增或修改具体实现:文件名优先使用 `engine_<lib>.kt`,实现类命名为 `<Lib>EngineImpl`;仅在确有共享价值时新增 `Config` 或 `Utils`。
6. 在 `extensions/<domain>` 同步 Kotlin 调用入口,使外部仍通过 `DevEngine.getXxx()`、`DevXxxEngine` 或既有 extension 风格调用。
7. 同步 `DevEngine.kt`:补 import、`default<Lib>EngineImpl()`、`new<Lib>EngineImpl()`,并按需要接入 `completeInitialize` / `initializeDefaultEngines` 默认初始化。
8. 同步 `DEVENGINE_README` 的目录结构、依赖实现信息、对应 Engine 小节和实现链接;只更新目标小节,不重排整份 README。
9. 新增或改写方法注释时 Read `../code-method-normalize/SKILL.md`,保持 Kotlin KDoc / JavaDoc 规则一致。
## 例子:创建 JSON Engine
当用户要求创建 JSON Engine 或新增 JSON 第三方实现时,同时检查并按需更新:
- `DEVASSIST_ENGINE_ROOT/json`
- `DEVENGINE_CORE_ROOT/json`
- `DEVENGINE_EXT_ROOT/json`
- `DEVENGINE_ROOT/DevEngine.kt`
- `DEVENGINE_README`
- 需要依赖时再更新 `DEPS_ROOT` 相关文件
## 自检清单
- [ ] 已确认 DevAssist 接口能力边界,没有绕过接口直接暴露第三方库。
- [ ] core 实现、extensions 入口、`DevEngine.kt` 默认/创建方法命名一致。
- [ ] 默认初始化选择清晰;多个实现并存时没有无意替换现有默认实现。
- [ ] 第三方依赖走集中依赖规则,README 实现列表和链接已同步。
- [ ] 新增方法注释符合 `code-method-normalize`。
在 GitHub 查看