Android Studio中MVVM项目结构规范及通用类存放建议咨询
Android架构中通用类的包结构规划建议
通用类的分类与存放方案
针对你提到的几类通用类,按职责相关性给出具体存放建议:
- Constants(常量类):全局通用的常量(如全局配置、固定字符串)单独放在
constants包;如果是和特定业务绑定的常量,直接归入对应业务模块的子包中,避免全局包过度臃肿。 - Utility(工具类):创建
utils或helpers包统一存放,比如日期处理、字符串格式化、权限工具等。如果工具类数量较多,可按功能细分子包,比如utils.network(网络相关工具)、utils.ui(UI相关工具)。 - Adapter(适配器类):这类和View层交互紧密,建议放在对应View模块的子包中,比如
ui.adapters;如果是跨页面复用的通用适配器,可放在ui.common.adapters下,方便多个View模块调用。 - Database(数据库相关类):属于数据层的基础设施,归入
data.database包,包含数据库实例、Dao接口、数据库实体类(若实体仅用于数据库映射,可与业务Model区分开存放)。
官方规范与实践参考
谷歌官方没有针对这类通用类发布绝对统一的存放规则,核心原则是按职责和代码相关性组织包结构。在官方提供的Android架构示例项目(如Sunflower、Now in Android)中,能看到通用类的典型实践:
- 工具类统一放在
utils包 - 数据库相关类归到
data层的子包下 - 适配器跟随对应的View层模块存放
额外实践建议
- 保持团队一致性:项目初期和团队约定好通用类的存放规则,全程统一执行,避免同一项目内存放方式混乱。
- 可读性优先:不要为了拆分而拆分,如果通用类数量较少,无需强行拆分子包,保证代码查找和维护的便捷性。
- 业务关联优先:如果某工具类/常量仅服务于特定业务模块,直接放在该模块下,而非全局通用包,减少不必要的跨模块依赖。
内容的提问来源于stack exchange,提问作者harikrishnan
相关产品推荐
相关产品推荐

