架构调整总结.md 2.7 KB

鸿蒙端架构调整总结

📋 调整内容

1. AppInitializer 迁移

调整前:

  • 位置:base-common/src/main/ets/common/launch/AppInitializer.ets
  • 问题:业务层不应该负责应用初始化

调整后:

  • 位置:entry/src/main/ets/launch/AppInitializer.ets
  • 优势:应用层负责组装和协调所有模块

2. EntryAbility 更新

调整前:

  • EntryAbility.onCreate() 中没有调用 AppInitializer

调整后:

  • EntryAbility.onCreate() 中调用 await AppInitializer.init(this.context)

3. 依赖关系更新

entry/oh-package.json5:

{
  "dependencies": {
    "@xdz/base-common": "file:../base-common",
    "@kit.AbilityKit": "^1.0.0"
  }
}

4. SocketIO 架构说明更新

调整前:

  • base-common/src/main/ets/common/socketio/SocketIO架构说明.md
  • 说明 SocketIOManager 应该在 base-common

调整后:

  • capability-socketio/SocketIO架构说明.md
  • 说明 SocketIOManager 应该在 capability-socketio(与 Android 端一致)

✅ 完成的调整

  1. AppInitializer 已迁移到 entry 模块
  2. EntryAbility 已更新,调用 AppInitializer.init()
  3. entry 模块已添加对 base-common 的依赖
  4. base-common 中已删除 AppInitializer 的导出
  5. ✅ SocketIO 架构说明已更新

📝 待实现(后续)

SocketIOManager 实现

capability-socketio 模块实现后,需要:

  1. 创建 SocketIOManager

    • 位置:capability-socketio/src/main/ets/socketio/manager/SocketIOManager.ets
    • 参考 Android 端的实现
    • 使用 HarmonyOS 的生命周期 API(onForegroundonBackground
  2. 在 AppInitializer 中初始化

    // 取消注释并实现
    await AppInitializer.initSocketIO(context);
    
  3. 设置回调函数 ```typescript SocketIOManager.isLoggedInProvider = () => { return AuthManager.getInstance().isLoggedIn(); };

SocketIOManager.refreshTokenProvider = async () => {

 return await AuthManager.getInstance().refreshTokenIfNeeded();

};


---

## 🎯 架构对比

### Android 端

app(应用层) └─ AppInitializer

  ├─ 直接导入 base-common 模块
  └─ 直接导入 capability-socketio 模块

### HarmonyOS 端(当前)

entry(应用层) └─ AppInitializer

  ├─ 直接导入 base-common 模块
  └─ capability-socketio(待实现)

```


✅ 验证

  • AppInitializer 已迁移到 entry 模块
  • EntryAbility 已调用 AppInitializer.init()
  • ✅ 依赖关系已更新
  • ✅ 代码结构清晰,符合架构原则

文档版本: v1.0
创建时间: 2024-12