用途
Android Modern Architecture & Modularization 技能用于在设计与重构 Android 应用时提供架构层面的指导,遵循官方《应用架构指南》(Guide to App Architecture)与 Clean Architecture 原则。适用于咨询项目结构、分层设计、依赖注入与多模块拆分等场景。
主要能力
三层架构
将应用结构划分为三个主要层,依赖必须严格向内(或向下)流向核心逻辑。
- UI 层(Presentation):负责显示数据与处理用户交互。组件包括 Activity、Fragment、Composable、ViewModel。依赖 Domain 层(简单场景下可依赖 Data 层),绝不直接依赖 Data 层的实现细节。
- Domain 层(业务逻辑,可选但推荐):负责封装复杂业务规则与复用。组件包括 Use Case(例如 GetLatestNewsUseCase)与领域模型(纯 Kotlin data class)。必须为纯 Kotlin,不得包含任何 Android 框架依赖(不允许 android.* 导入)。依赖仓库接口。
- Data 层:负责管理应用数据(获取、缓存、保存)。组件包括 Repository(实现)与 Data Source(Retrofit API、Room DAO)。仅依赖外部数据源与库。
Hilt 依赖注入
使用 Hilt 完成所有依赖注入:
- @HiltAndroidApp:标注 Application 类。
- @AndroidEntryPoint:标注 Activity 与 Fragment。
- @HiltViewModel:标注 ViewModel,并使用标准构造函数注入。
- 模块:应用级单例(如网络、数据库)使用 @Module 与 @InstallIn(SingletonComponent::class);绑定接口实现时在抽象类中使用 @Binds(比 @Provides 更简洁)。
模块化策略
生产应用建议采用多模块策略以改善构建时间与关注点分离:
- :app:主入口,连接各功能。
- :core:model:共享领域模型(纯 Kotlin)。
- :core:data:仓库、数据源、数据库、网络。
- :core:domain:Use Case 与仓库接口。
- :core:ui:共享 Composable、主题、资源。
- :feature:[name]:独立功能模块,包含自身的 UI 与 ViewModel,依赖 :core:domain 与 :core:ui。
使用方式
该技能以架构规范条文的形式提供指导,在设计或重构 Android 应用时按上述分层、依赖注入与模块化规则执行即可。实现检查清单包括:确认 Domain 层无 Android 依赖;仓库默认使用主线程安全的挂起函数(必要时内部使用 Dispatchers.IO);ViewModel 通过 StateFlow 与 UI 层交互(参见 android-viewmodel 技能)。
适用场景
- 新 Android 项目的架构设计与分层规划。
- 现有 Android 项目的架构重构。
- 引入 Hilt 依赖注入与多模块拆分的工程实践。
限制
资料未提供该技能的安装命令、代码示例、收费与价格信息、支持平台、实际效果说明或具体使用步骤,以上内容暂未提供。