Skip to content

Latest commit

 

History

History
103 lines (81 loc) · 4.19 KB

File metadata and controls

103 lines (81 loc) · 4.19 KB

Haomai Promotor (自动化营销产品)

赋能营销人员,通过高度可定制化的自动化脚本与UI交互,实现高效、精准的用户触达与增长。

✨ 项目愿景

本产品旨在打造一个强大的自动化营销工具,它能够模拟真人操作,在各种应用中执行预设的营销任务(如内容发布、用户互动等),从而解放人力,实现规模化、数据驱动的营销策略。

🏗️ 架构概览

为支撑产品的稳定性与未来扩展性,项目采用了分层和功能模块化的Clean Architecture思想。模块间的依赖关系如下:

graph TD;
    subgraph Legend
        direction LR
        A[Android App/Lib]
        K[Kotlin/JVM Lib]
    end

    app(app):::appStyle --> feature_promotor(feature_promotor):::appStyle;
    feature_promotor --> core_accessibility(core_accessibility):::appStyle;
    feature_promotor --> core_network(core_network):::appStyle;
    feature_promotor --> core_aop(core_aop):::jvmStyle;
    feature_promotor --> core_common(core_common):::appStyle;

    core_accessibility --> core_common;
    core_network --> core_common;
    core_network --> core_common_jvm(core_common_jvm):::jvmStyle;
    
    core_common --> core_common_jvm;
    core_aop --> core_common_jvm;

    classDef appStyle fill:#D1E7DD,stroke:#198754,stroke-width:2px;
    classDef jvmStyle fill:#F8D7DA,stroke:#DC3545,stroke-width:2px;
Loading

🛠️ 技术栈

  • 语言: Kotlin
  • 异步处理: Kotlin Coroutines & Flow
  • 架构模式: MVVM, Unidirectional Data Flow (UDF), Clean Architecture
  • UI: Android Views, Material Design, ViewBinding
  • 网络: Retrofit, OkHttp, Socket.IO-Client-Java
  • 自动化: Android Accessibility Service API
  • 元编程: KSP (Kotlin Symbol Processing)
  • 依赖管理: Gradle Version Catalog (libs.versions.toml)

📦 模块详解

:app

  • 类型: Android Application
  • 职责: 应用的入口和“外壳”。负责组装所有模块,并进行全局初始化(如日志系统)。

:feature_promotor

  • 类型: Android Library
  • 职责: 核心业务功能模块,包含所有用户直接交互的界面 (Fragment) 和对应的业务逻辑 (ViewModel)。

:core_common_jvm

  • 类型: Kotlin/JVM Library
  • 职责: 项目最底层。提供纯粹的、不依赖任何Android平台的接口、数据模型和工具。
  • 主要组件:
    • Logger.kt (日志接口)
    • Constants.kt (全局常量)
    • 数据传输对象 (DTOs), 业务模型 (Models)

:core_common

  • 类型: Android Library
  • 职责: 提供依赖Android SDK的通用工具,以及对 core_common_jvm 中接口的Android平台实现。
  • 主要组件:
    • AndroidLogger.kt (Logger接口的安卓实现)
    • BaseViewModel.kt, UiState.kt (状态管理)
    • 需要 Context 的工具类, View的扩展函数等。
  • 依赖: :core_common_jvm

:core_network

  • 类型: Android Library
  • 职责: 负责所有网络通信。
  • 主要组件:
    • RetrofitClient, SocketManager
  • 依赖: :core_common (用于需要Context的拦截器), :core_common_jvm (用于数据模型)。

:core_aop

  • 类型: Kotlin/JVM Library
  • 职责: 提供AOP的基础能力。它是一个纯JVM模块,使其逻辑可以在非安卓环境(如单元测试)中复用。
  • 主要组件:
    • AOP注解, AopWrappers.kt (包装器), ConsoleLogger.kt
  • 依赖: :core_common_jvm (用于依赖Logger接口)。

:core_accessibility

  • 类型: Android Library
  • 职责: 封装所有UI自动化相关的能力。
  • 主要组件:
    • GestureService, actions, capture
  • 依赖: :core_common

📝 日志策略 (Logging Strategy)

项目采用依赖倒置原则来处理日志。

  1. :core_common_jvm 中定义一个通用的 Logger 接口。
  2. :core_common (安卓环境) 中提供使用 android.util.LogAndroidLogger 实现。
  3. :core_aop (纯JVM环境) 中提供使用 printlnConsoleLogger 实现。
  4. 在应用启动时 (PromotorApplication),将 AndroidLogger 实例注入为全局日志处理器,供所有模块统一调用。