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

能否调整Android项目结构,将XML与源码文件混合存放?

按功能模块组织Android项目结构的实现方法

可以完全按照你想要的结构调整,这种按功能聚合文件的方式叫功能导向的包结构,能有效减少目录切换的繁琐,具体实现步骤如下:

操作步骤

  1. 切换项目视图模式
    打开Android Studio,把左侧项目视图从默认的Android切换为Project,这样能看到真实的文件系统目录结构,方便手动调整。

  2. 创建功能目录
    在app/src/main/java/[你的项目包名]路径下,创建FeatureA、FeatureB、Users这类对应功能的目录。

  3. 迁移代码文件
    将对应功能的Fragment、ViewModel、Adapter等.kt文件,直接拖入对应的功能目录。Android Studio会自动修改文件顶部的包名声明,也可以手动检查确认包名正确。

  4. 配置布局文件的存放路径
    默认布局文件在res/layout下,要把布局和代码放在同一功能目录,需要在app/build.gradle(Module级)的android代码块中添加源集配置:

    android {
        // ... 其他配置
        sourceSets {
            main {
                res {
                    srcDirs = [
                        'src/main/res',
                        'src/main/java/com/yourpackage/FeatureA/res',
                        'src/main/java/com/yourpackage/FeatureB/res',
                        'src/main/java/com/yourpackage/Users/res'
                    ]
                }
            }
        }
    }
    

    然后在每个功能目录下创建res/layout子目录,把对应功能的布局文件(比如feature_a_layout.xml)放入其中,IDE会自动识别这些资源。

  5. 同步并验证
    点击Android Studio右上角的Sync Now同步gradle项目,检查是否有报错。如果出现布局引用或类引用的问题,IDE会给出修复提示,按照提示调整即可。

额外注意事项

  • 如果你的项目使用Jetpack Compose,布局是用kotlin代码编写的,可直接和Fragment、ViewModel放在同一功能目录,无需配置资源路径。
  • 保持每个功能目录的职责单一,一个目录对应一个独立的业务功能模块,避免目录臃肿。
  • 注意模块间的依赖关系,尽量减少跨模块的直接引用,避免出现循环依赖问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:20:30