wangmeng 61f7e8114b feat: 添加社区扫码功能、登录跳过功能、蓝牙模块修复等 před 3 týdny
..
src 61f7e8114b feat: 添加社区扫码功能、登录跳过功能、蓝牙模块修复等 před 3 týdny
README.md d19484e598 refactor: 清理旧文件并更新相关配置 před 3 týdny
build.gradle d19484e598 refactor: 清理旧文件并更新相关配置 před 3 týdny

README.md

base-core 模块说明

📋 模块定位

base-core 是基础设施层,提供:

  • 接口定义(给 capability 模块实现)
  • 基础实现(ILog、NetworkManager)
  • 第三方库管理(统一版本,避免冲突)

🎯 使用原则

  • 能力层(capability 模块)可以调用 base-core
  • 业务层(app 模块)不直接调用 base-core,应该通过 base-common

📁 目录结构

1. 接口定义

✅ bridge/IBridge.kt          - H5通信、模块间通信、事件总线管理
✅ config/IConfig.kt          - 配置管理、环境切换、功能开关、版本管理
✅ executor/IExecutor.kt      - 线程池管理、异步任务执行、定时任务
✅ push/IPushService.kt       - 推送服务接口
✅ share/IShareService.kt     - 分享服务接口
✅ share/IShareCallback.kt    - 分享回调接口
✅ storage/IStorage.kt        - 存储服务接口(键值存储、文件存储、数据库存储)
✅ util/IUtil.kt              - 工具类接口(时间处理、字符串处理、加密解密)

2. 基础实现

✅ log/ILog.kt                - 日志接口定义
✅ log/impl/TimberLog.kt      - Timber 日志实现(基于 Timber 库)
✅ log/impl/NoOpLog.kt        - 空日志实现(生产环境使用)
✅ network/NetworkManager.kt - Retrofit/OkHttp 管理器(单例模式)

3. 第三方库(在 build.gradle 中)

✅ Retrofit & OkHttp          - api("com.squareup.retrofit2:retrofit:2.9.0")
✅ Gson                       - api("com.google.code.gson:gson:2.10.1")
✅ Glide                      - api("com.github.bumptech.glide:glide:4.16.0")
✅ Coroutines                 - api("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3")
✅ ARouter                    - api("com.alibaba:arouter-api:1.5.2")
✅ Timber                     - api("com.jakewharton.timber:timber:5.0.1")
⏸️ 友盟 SDK                  - 暂时保留(待后续决定)

💡 核心作用

1. 定义接口(解耦)

capability 模块实现接口:

// capability-push 实现 IPushService
@Route(path = "/push/service")
class PushServiceImpl : IPushService {
    override fun initialize(...) {
        ILog.d("PushService", "初始化")  // 使用 base-core 的 ILog
        // 调用极光推送 SDK
    }
}

2. 提供基础能力(统一工具)

capability 模块使用基础能力:

// capability-push 使用 ILog
ILog.d("PushService", "推送成功")

// capability-share 使用 ILog
ILog.d("ShareService", "分享成功")

// capability 模块使用 NetworkManager
val retrofit = NetworkManager.getRetrofit()

3. 管理第三方库(版本统一)

所有模块通过 base-core 使用第三方库,避免版本冲突。


📝 使用示例

capability 模块使用 base-core

// capability-push/src/.../PushServiceImpl.kt
import com.narutohuo.xindazhou.core.push.IPushService
import com.narutohuo.xindazhou.core.log.ILog
import com.narutohuo.xindazhou.core.network.NetworkManager

@Route(path = "/push/service")
class PushServiceImpl : IPushService {
    
    override fun initialize(context: Context, appKey: String) {
        // 使用 ILog 打日志
        ILog.d("PushService", "初始化推送服务: $appKey")
        
        // 使用 NetworkManager(如果需要)
        val retrofit = NetworkManager.getRetrofit()
        
        // 调用极光推送 SDK
        JPushInterface.init(context)
    }
}

⚠️ 注意事项

  1. 接口实现由 app 模块提供(通过 ARouter 注册)
  2. capability 模块实现接口(如 IPushService、IShareService)
  3. 业务层不直接使用 base-core,应该通过 base-common