Android基建开发大纲

作为 Android 开发者,想要把团队/项目的"地基"打牢,那么通常要做一套 基建 (Infrastructure),让业务代码只管开发功能,而通用问题由基建解决。

下面从工程实践角度盘点 Android 基建:


一、项目工程基建

  1. 多模块化/组件化架构

    • 功能拆分为独立 module:appcorefeature-xxx

    • 好处:解耦、并行开发、加快编译。

    • 技术点:Gradle 多模块、Dynamic Feature Module。

  2. 统一依赖管理

    • Gradle libs.versions.tomlbuildSrc 统一管理第三方依赖版本。

    • 避免"依赖地狱"。

  3. 构建脚本 & 插件

    • 常见:gradle.properties 优化构建参数

    • 自研 Gradle 插件:统一配置、自动版本号、自动生成渠道包。


二、基础框架层

  1. 网络层

    • OkHttp + Retrofit 封装

    • 统一请求拦截、Header、重试、错误处理

    • 支持协程 / RxJava。

  2. 图片加载

    • Glide / Coil / Fresco

    • 自带缓存、占位图、解码优化。

  3. 数据库层

    • Room / GreenDAO / LitePal

    • 数据库升级、线程安全、缓存策略。

  4. 依赖注入

    • Hilt / Dagger2

    • 统一管理依赖,方便测试和解耦。

  5. 日志 & 崩溃收集

    • 自定义 Logger(带时间戳、线程信息)

    • 集成 Bugly / Firebase Crashlytics。

  6. 路由与模块通信

    • ARouter / 自研路由

    • 模块解耦,避免硬编码 Intent


三、通用能力基建

  1. 账号体系

    • 登录状态管理、token 刷新、统一鉴权拦截。
  2. 埋点与监控

    • 页面/事件埋点 SDK

    • App 启动时长、ANR、卡顿监控(如 Matrix、BlockCanary)。

  3. 配置中心 / AB 实验

    • 后台动态下发开关(灰度、实验分流)。
  4. 国际化 & 多语言支持

    • 文案集中管理,支持动态切换语言。
  5. Push 通知封装

    • 统一适配 Firebase、厂商通道(小米、华为、OPPO、vivo)。
  6. 文件 & 多媒体能力

    • 统一封装拍照、录音、视频选择/压缩/上传。

四、研发提效基建

  1. CI/CD

    • Jenkins / GitLab CI / Github Actions

    • 自动化编译、测试、打包、发布。

  2. 代码规范

    • ktlint / Checkstyle / Spotless / Detekt

    • 统一代码风格,保证质量。

  3. 单元测试 & UI 测试

    • JUnit / Espresso / MockK

    • 集成覆盖率报告。

  4. 性能优化工具链

    • LeakCanary:内存泄漏

    • StrictMode:线程/IO 检测

    • Systrace/Perfetto:性能分析。

  5. 依赖更新 & 安全扫描

    • Dependabot / Renovate 自动升级依赖。

    • 集成 Lint、SonarQube 检测代码问题。


五、运维与发布基建

  1. 多渠道打包

    • Gradle 配置 productFlavors

    • 支持自动生成渠道包(友盟、腾讯广告渠道)。

  2. 版本管理

    • 统一 versionCode / versionName 自动生成(如 git tag 驱动)。
  3. 灰度发布

    • 应用市场(Google Play 内测、灰度)

    • 国内应用商店多渠道发布。

  4. 热修复 & 插件化(可选)

    • Sophix、Tinker 等

    • 动态下发补丁,减少线上崩溃影响。


总结一句话

Android 开发的基建大致分为 工程架构、基础框架、通用能力、研发提效、运维发布 五大块。