赋能营销人员,通过高度可定制化的自动化脚本与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;
- 语言: 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)
- 类型: Android Application
- 职责: 应用的入口和“外壳”。负责组装所有模块,并进行全局初始化(如日志系统)。
- 类型: Android Library
- 职责: 核心业务功能模块,包含所有用户直接交互的界面 (
Fragment) 和对应的业务逻辑 (ViewModel)。
- 类型: Kotlin/JVM Library
- 职责: 项目最底层。提供纯粹的、不依赖任何Android平台的接口、数据模型和工具。
- 主要组件:
Logger.kt(日志接口)Constants.kt(全局常量)- 数据传输对象 (DTOs), 业务模型 (Models)
- 类型: Android Library
- 职责: 提供依赖Android SDK的通用工具,以及对
core_common_jvm中接口的Android平台实现。 - 主要组件:
AndroidLogger.kt(Logger接口的安卓实现)BaseViewModel.kt,UiState.kt(状态管理)- 需要
Context的工具类,View的扩展函数等。
- 依赖:
:core_common_jvm
- 类型: Android Library
- 职责: 负责所有网络通信。
- 主要组件:
RetrofitClient,SocketManager
- 依赖:
:core_common(用于需要Context的拦截器),:core_common_jvm(用于数据模型)。
- 类型: Kotlin/JVM Library
- 职责: 提供AOP的基础能力。它是一个纯JVM模块,使其逻辑可以在非安卓环境(如单元测试)中复用。
- 主要组件:
- AOP注解,
AopWrappers.kt(包装器),ConsoleLogger.kt
- AOP注解,
- 依赖:
:core_common_jvm(用于依赖Logger接口)。
- 类型: Android Library
- 职责: 封装所有UI自动化相关的能力。
- 主要组件:
GestureService,actions,capture
- 依赖:
:core_common。
项目采用依赖倒置原则来处理日志。
- 在
:core_common_jvm中定义一个通用的Logger接口。 - 在
:core_common(安卓环境) 中提供使用android.util.Log的AndroidLogger实现。 - 在
:core_aop(纯JVM环境) 中提供使用println的ConsoleLogger实现。 - 在应用启动时 (
PromotorApplication),将AndroidLogger实例注入为全局日志处理器,供所有模块统一调用。