You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从多模块Android应用拆分功能屏幕为独立库

问题:将清洁架构拆分的功能模块打包为可复用独立库

需要把现有应用中的某一功能屏幕拆分为独立库,供其他应用复用且保留完整功能。该功能基于清洁架构的Ui、Domain、Data三层实现,运行正常;Ui和Data层还包含工具模块,所有模块均使用com.android.library插件。要求不改动现有项目架构,同时需考虑库与客户端的Koin依赖注入整合(当前暂不重点关注)。

项目结构

root
|-- app
    |-- build.gradle
    |-- src
        |-- CombineFeatures
|-- ui
    |-- feature1
        |-- build.gradle
        |-- src
            |-- Feature1UICode
|-- domain
    |-- feature1
        |-- build.gradle
        |-- src
            |-- Feature1DomainCode
|-- data
    |-- feature1
        |-- build.gradle
        |-- src
            |-- Feature1DataCode
|-- settings.gradle

已尝试的方案及问题

  • 单独执行gradle assemble任务构建Ui模块的AAR,但该库缺少Domain、Data层代码以及material3等项目依赖,导致其他应用使用时出现java.lang.NoClassDefFoundError,仅能调用导入模块的基础函数。
  • 考虑过用fat-aar-lib合并多个AAR为一个,但认为这并非现代Android开发的合适方案。
  • 不考虑将功能迁移至独立项目仓库,后续维护成本过高。
  • 试过composite builds,但构建速度缓慢且要求本地保存所有源码,已放弃该方案。

内容的提问来源于stack exchange,提问作者qveex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:10:56