作为 Android 开发者,想要把团队/项目的"地基"打牢,那么通常要做一套 基建 (Infrastructure),让业务代码只管开发功能,而通用问题由基建解决。
下面从工程实践角度盘点 Android 基建:
一、项目工程基建
-
多模块化/组件化架构
-
功能拆分为独立 module:
app
、core
、feature-xxx
-
好处:解耦、并行开发、加快编译。
-
技术点:Gradle 多模块、Dynamic Feature Module。
-
-
统一依赖管理
-
Gradle
libs.versions.toml
或buildSrc
统一管理第三方依赖版本。 -
避免"依赖地狱"。
-
-
构建脚本 & 插件
-
常见:
gradle.properties
优化构建参数 -
自研 Gradle 插件:统一配置、自动版本号、自动生成渠道包。
-
二、基础框架层
-
网络层
-
OkHttp + Retrofit 封装
-
统一请求拦截、Header、重试、错误处理
-
支持协程 / RxJava。
-
-
图片加载
-
Glide / Coil / Fresco
-
自带缓存、占位图、解码优化。
-
-
数据库层
-
Room / GreenDAO / LitePal
-
数据库升级、线程安全、缓存策略。
-
-
依赖注入
-
Hilt / Dagger2
-
统一管理依赖,方便测试和解耦。
-
-
日志 & 崩溃收集
-
自定义 Logger(带时间戳、线程信息)
-
集成 Bugly / Firebase Crashlytics。
-
-
路由与模块通信
-
ARouter / 自研路由
-
模块解耦,避免硬编码
Intent
。
-
三、通用能力基建
-
账号体系
- 登录状态管理、token 刷新、统一鉴权拦截。
-
埋点与监控
-
页面/事件埋点 SDK
-
App 启动时长、ANR、卡顿监控(如 Matrix、BlockCanary)。
-
-
配置中心 / AB 实验
- 后台动态下发开关(灰度、实验分流)。
-
国际化 & 多语言支持
- 文案集中管理,支持动态切换语言。
-
Push 通知封装
- 统一适配 Firebase、厂商通道(小米、华为、OPPO、vivo)。
-
文件 & 多媒体能力
- 统一封装拍照、录音、视频选择/压缩/上传。
四、研发提效基建
-
CI/CD
-
Jenkins / GitLab CI / Github Actions
-
自动化编译、测试、打包、发布。
-
-
代码规范
-
ktlint / Checkstyle / Spotless / Detekt
-
统一代码风格,保证质量。
-
-
单元测试 & UI 测试
-
JUnit / Espresso / MockK
-
集成覆盖率报告。
-
-
性能优化工具链
-
LeakCanary:内存泄漏
-
StrictMode:线程/IO 检测
-
Systrace/Perfetto:性能分析。
-
-
依赖更新 & 安全扫描
-
Dependabot / Renovate 自动升级依赖。
-
集成 Lint、SonarQube 检测代码问题。
-
五、运维与发布基建
-
多渠道打包
-
Gradle 配置 productFlavors
-
支持自动生成渠道包(友盟、腾讯广告渠道)。
-
-
版本管理
- 统一 versionCode / versionName 自动生成(如
git tag
驱动)。
- 统一 versionCode / versionName 自动生成(如
-
灰度发布
-
应用市场(Google Play 内测、灰度)
-
国内应用商店多渠道发布。
-
-
热修复 & 插件化(可选)
-
Sophix、Tinker 等
-
动态下发补丁,减少线上崩溃影响。
-
总结一句话 :
Android 开发的基建大致分为 工程架构、基础框架、通用能力、研发提效、运维发布 五大块。