Android 企业级应用开发规范文档的核心目标,是让不同背景的工程师在同一套规则下写出可预测、可审查、可扩展的代码。它并不是一份简单的代码风格清单,而是从架构分层、模块边界、命名约定到工程配置、安全基线、发布流程的完整约束体系。只有把这些约束写清楚并嵌入自动化检查,规范才能真正降低长期维护成本。

一、架构分层与模块边界规范
企业级项目通常功能复杂、团队规模大,架构选型直接决定后续迭代效率。规范文档应明确推荐 MVVM 或 MVI 架构,禁止在 Activity 或 Fragment 中直接操作数据库、网络请求或复杂业务逻辑。推荐将工程拆分为 data、domain、ui 三层,分别负责数据源与仓储实现、业务用例与领域模型、视图状态与界面展示。domain 层保持纯 Kotlin/Java 代码,不依赖 Android SDK,以便单元测试和复用。
模块化是另一项必须固化的规范。按业务能力拆分 feature 模块,如 feature:login、feature:checkout,同时维护 core:network、core:database、core:design 等基础模块。依赖规则应单向向下:上层模块可以依赖下层模块,禁止反向依赖。工程中可通过 Gradle 的依赖配置和自定义 Lint 规则防止环形依赖。以下是一个典型的模块依赖声明示例:
dependencies {
implementation project(':core:network')
implementation project(':core:database')
implementation project(':feature:login')
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
}
依赖注入也应在规范中统一。推荐使用 Hilt 管理对象生命周期与依赖关系,禁止在代码中手动创建 Service 或 Repository 实例。ViewModel 必须通过 ViewModelProvider 或 Hilt 注入,避免持有 Activity 引用导致内存泄漏。对于 MVI 模式,UI 状态应当是不可变数据类,并通过单一数据流暴露给界面,避免多处修改状态引发并发问题。
二、编码与资源命名规范
命名规范是团队协作的基础。Kotlin 类名使用 UpperCamelCase,变量与函数使用 lowerCamelCase,常量使用全大写加下划线。XML 资源命名建议采用前缀加模块加描述的方式,例如 activity_login.xml、fragment_order_detail.xml、ic_cart_24dp.xml。字符串资源统一存放于 strings.xml,禁止硬编码到布局或代码中,颜色与尺寸也应通过资源引用管理。
样式与主题同样需要约束。禁止在每个布局文件中重复声明相同的 TextAppearance 或背景,应抽取到 styles.xml 和 themes.xml。布局层级过深会影响渲染性能,规范中可以要求使用 ConstraintLayout 减少嵌套,避免在根布局直接使用 ScrollView 包裹复杂列表。对于列表项,应使用 RecyclerView 配合 ViewHolder,禁止在 onBindViewHolder 中执行耗时操作。
<resources>
<string name="login_title">Welcome back</string>
<color name="brand_primary">#1E88E5</color>
<dimen name="padding_horizontal">16dp</dimen>
</resources>
除了命名,线程与异常处理规范也不可或缺。网络请求、数据库操作和文件读写必须在 IO 线程执行,主线程只负责 UI 更新。协程是推荐的异步方案,规范应明确 Dispatchers.Main 与 Dispatchers.IO 的使用场景,禁止在 ViewModel 中使用 GlobalScope。错误处理需要区分业务异常与系统异常,Repository 层捕获异常并转换为统一的 Result 类型,ViewModel 根据结果更新 UI 状态。
sealed class Result<out T> {
data class Success<T>(val data: T) : Result<T>()
data class Error(val message: String) : Result<Nothing>()
object Loading : Result<Nothing>()
}
三、工程配置与自动化检查规范
规范文档必须包含工程配置约定,否则规则难以落地。Gradle 版本、Android Gradle Plugin 版本、Kotlin 版本应由团队统一升级,避免不同分支出现构建差异。使用 version catalog 管理依赖版本,集中定义在 gradle/libs.versions.toml 中,而不是散落在各模块的 build.gradle 里。构建变体也应统一命名,如 debug、release、staging,并为不同环境配置对应的 baseUrl 和签名信息。
静态检查是强制执行规范的重要手段。Android Lint 和 ktlint 应配置为持续集成流水线的固定步骤,发现问题直接终止构建。Lint 规则可以开启 abortOnError,并针对团队约定定制 severity,例如将硬编码文本、未使用的资源、过度绘制等问题设为 error。下面是一个简单的 Lint 配置示例:
android {
lint {
abortOnError true
checkReleaseBuilds true
disable 'TypographyFractions', 'TypographyQuotes'
warning 'MissingTranslation'
}
}
代码审查阶段也要有明确卡点。合并请求必须通过至少两名资深工程师的评审,重点检查架构分层是否被打破、命名是否规范、异常处理是否遗漏、测试是否覆盖核心逻辑。配合 Git 提交信息规范,例如使用 feat、fix、refactor、test 等前缀,可以自动生成变更日志并追踪问题来源。CI 流水线应包含构建、单元测试、Lint 和 UI 冒烟测试,全部通过后才允许合并入主分支。
四、安全、性能与发布规范
企业级应用对安全性的要求远高于个人项目。规范应要求开启混淆和资源压缩,在 release 构建中启用 minifyEnabled,并维护清晰的 ProGuard/R8 规则。敏感数据如 token、用户信息禁止写入 SharedPreferences 明文存储,推荐使用 EncryptedSharedPreferences 或 DataStore 加密方案。网络请求必须通过 HTTPS,并配置证书校验,禁止在代码中硬编码密钥或第三方服务的 AppSecret。
性能规范同样需要量化。启动时间、内存占用、帧率应有明确基线,例如冷启动不超过 2 秒,列表滚动不掉帧。规范中要求使用 Android Profiler 和 Systrace 定位性能瓶颈,避免在主线程进行 JSON 解析或图片解码。图片加载统一使用 Glide 或 Coil,禁止直接使用 BitmapFactory 加载大图。对于内存泄漏,集成 LeakCanary 在开发阶段自动检测,并作为测试验收项。
发布流程规范是所有工作的最后一道防线。版本号遵循语义化版本,versionCode 必须单调递增,versionName 展示给用户。签名密钥由专人保管,禁止将 keystore 文件或密码提交到版本库。发布前检查清单包括:Lint 零错误、单元测试通过、API 环境切换到生产、日志输出关闭或脱敏、权限申请说明完整。只有满足全部条件,才能进入应用商店提审流程。
企业级开发规范不是一次编写永不修改的文档。随着技术栈更新和业务变化,规范应定期回顾,删除过时规则,补充新的约束。好的规范始终服务于团队效率,而不是增加流程负担。
Android企业级应用开发规范架构设计修改时间:2026-08-27 23:13:49