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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:45:49