--- 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/` 下的 `DevXxxEngine`、`IXxxEngine`、Config、Item、Result、callback/listener 等接口,确认能力边界;不要让实现层扩展接口未定义的业务语义。 3. 读取 `DEVENGINE_CORE_ROOT/`、`DEVENGINE_EXT_ROOT/` 与 `DevEngine.kt` 中同领域已有实现,复用现有命名、注释、异常处理和默认初始化风格。 4. 如果缺少第三方依赖,先 Read `../project-gradle-central-deps/SKILL.md`,再更新集中依赖配置和目标模块依赖;不要直接硬编码重复 GAV。 5. 在 `core/` 新增或修改具体实现:文件名优先使用 `engine_.kt`,实现类命名为 `EngineImpl`;仅在确有共享价值时新增 `Config` 或 `Utils`。 6. 在 `extensions/` 同步 Kotlin 调用入口,使外部仍通过 `DevEngine.getXxx()`、`DevXxxEngine` 或既有 extension 风格调用。 7. 同步 `DevEngine.kt`:补 import、`defaultEngineImpl()`、`newEngineImpl()`,并按需要接入 `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`。