posts

Kotlin 与 Android 原生开发

Kotlin 已成为 Android 官方首选语言,配合 Jetpack Compose、协程与 Hilt 构成了现代 Android 开发的标准组合。本专题覆盖从语言到上架的完整链路:Kotlin 空安全与语言基础、扩展函数与高阶函数、协程与结构化并发、Jetpack Compose 声明式 UI、Compose 状态管理与重组优化、Activity/Fragment 生命周期与 ViewModel、Room 数据持久化、Retrofit 网络层、Hilt 依赖注入、多模块架构与 Gradle 构建优化、启动加速与性能调优,以及 AAB 打包签名与 Google Play 上架流程。后续补充的 6 篇进阶内容进一步覆盖 Compose Navigation 与深链、Kotlin Flow 响应式数据流、WorkManager 后台调度、单元测试与 Espresso/Compose 测试体系、R8 混淆与 Baseline Profile,以及 Kotlin Multiplatform 跨平台共享。

Kotlin 已成为 Android 官方首选语言,配合 Jetpack Compose、协程与 Hilt 构成了现代 Android 开发的标准组合。本专题覆盖从语言到上架的完整链路:Kotlin 空安全与语言基础、扩展函数与高阶函数、协程与结构化并发、Jetpack Compose 声明式 UI、Compose 状态管理与重组优化、Activity/Fragment 生命周期与 ViewModel、Room 数据持久化、Retrofit 网络层、Hilt 依赖注入、多模块架构与 Gradle 构建优化、启动加速与性能调优,以及 AAB 打包签名与 Google Play 上架流程。


📚 专题导览

本专题共 18 篇,前 12 篇按「语言 → 语言 → 并发 → UI → 架构 → 数据 → 网络 → 工程 → 性能 → 发布」的顺序组织,后 6 篇为补充进阶内容(导航 → 数据流 → 后台 → 测试 → 构建 → 跨平台),建议按表序通读:

阶段文章技术要点
语言Kotlin 语言基础与空安全可空类型与安全调用、Elvis 与 let/also/apply、平台类型与 Java 互操作
语言Kotlin 扩展函数与高阶函数扩展函数与属性、高阶函数与内联、作用域函数与委托属性
并发Kotlin 协程与结构化并发挂起函数、CoroutineScope 与 Job、结构化并发、Flow 与异常传播
UIJetpack Compose 声明式 UI 开发Composable 函数、Modifier 链、Material 3 与 Compose BOM 版本管理
UICompose 状态管理与重组优化remember/mutableStateOf、状态提升、重组范围与 stability 优化
架构Android 生命周期与 ViewModelActivity/Fragment 生命周期、ViewModel 与 SavedStateHandle、Lifecycle 感知
数据Android 数据持久化与 RoomRoom 实体与 DAO、KSP 注解处理、数据库迁移与 Flow 查询
网络Android 网络层与 Retrofit 实践Retrofit + OkHttp 封装、拦截器、序列化与超时重试策略
架构Android 依赖注入与 HiltHilt 组件层次、@Inject 与模块绑定、作用域与测试替换
工程Android 多模块架构与 Gradle 优化多模块拆分、Version Catalog、构建缓存与 Gradle 配置缓存
性能Android 性能优化与启动加速启动耗时分解、Baseline Profile、R8 与内存泄漏排查
发布Google Play 上架与签名打包签名配置与 Play App Signing、AAB 打包、分阶段发布与上架审核
导航Compose Navigation 与深链跳转NavHost 与类型安全路由、嵌套图与底部导航、Deep Link 映射、返回栈管理
数据流Kotlin Flow 与响应式数据流冷流与热流、StateFlow/SharedFlow 选型、操作符与背压、与 Room/Retrofit 集成
后台WorkManager 后台任务调度WorkManager 约束与链式任务、加急工作、前台服务、重试退避与 Doze 行为
测试Android 测试体系:单元测试、Espresso 与 Compose 测试JUnit 与 Robolectric、MockK 打桩、Espresso 与 Compose 测试、CI 分片
构建Android R8 混淆与 Baseline ProfileR8 收缩混淆与 keep 规则、mapping 还原、Baseline Profile 与启动 AOT 优化
跨平台Kotlin Multiplatform 跨平台共享KMP 源集与 expect/actual、共享业务逻辑、Compose Multiplatform 与 Swift 互操作

阅读建议

全部文章 Game Golang Saas Rust 游戏开发 客户端开发 GameDev TypeScript Lua Products
Android 开发

Android 测试体系:单元测试、Espresso 与 Compose 测试

测试金字塔在 Android 上有自己的形状:JVM 单测跑得快但受限于无 Android 运行时,仪器测试真实但慢且易碎。本文讲透 JUnit 与断言库选型、协程测试调度器、MockK 打桩、Robolectric 本地跑 Android 代码、Espresso 与 IdlingResource、Compose 语义查找与断言、Hilt 测试替换,以及 CI 分片与设备农场。

11 分钟阅读
Android 测试 Kotlin
Android 开发

Google Play 上架与签名打包

打包上架是每个 Android 项目的最后一公里,签名与合规细节出错就会卡住发布。本文讲透上架与签名打包:密钥库生成与应用签名密钥的分工、分发包格式差异、混淆与映射文件上传、版本号策略与分阶段发布,以及后台的数据安全表单、目标版本适配与持续集成自动发布。文中附打包工具的本地验证流程与上架常见坑清单,帮你顺利过审并稳定迭代。

11 分钟阅读
Android Google Play 发布
Android 开发

Android 性能优化与启动加速

启动速度直接影响用户留存,而冷启动耗时往往被初始化代码悄悄吃掉。本文聚焦启动加速与性能优化:冷启动全链路拆解、启动库延迟初始化、基准配置文件与宏基准测试的落地写法、代码压缩优化与启动追踪,以及内存泄漏、过度绘制与首帧优化。文中给出可量化的指标与测量命令,帮你把启动耗时压到目标线以内并守住不回归。

12 分钟阅读
Android 性能优化 启动加速
Android 开发

Android 多模块架构与 Gradle 优化

模块拆得好不好,直接决定 Android 项目的编译速度与协作效率。本文讲多模块架构与构建优化:接口暴露与实现隐藏的边界、按功能与核心分层、约定插件与构建逻辑独立构建、版本目录统一依赖、配置缓存与构建缓存、注解处理并行,以及新版本构建插件的命名空间迁移与声明式界面编译器插件。文末附依赖约束与循环依赖治理清单,帮你把构建时间压下来。

10 分钟阅读
Android Gradle 模块化
Android 开发

Android 依赖注入与 Hilt

依赖注入能显著降低大型 Android 项目的耦合度,而 Hilt 把这件事做成了编译期可校验的标准方案。本文用 Hilt 2.52 与 KSP 落地依赖注入:应用与页面入口注解体系、模块与安装组件的绑定方式、组件层级与作用域、限定符与入口点用法,以及同视图模型、后台任务的集成和测试写法。文中附编译期错误解读表,并与手写依赖注入做取舍对比,帮你判断何时该引入框架。

7 分钟阅读
Android Hilt 依赖注入
Android 开发

Android 网络层与 Retrofit 实践

网络层是 Android 应用最脆弱的一环,超时、重试与错误封装稍有疏漏就会引发线上问题。本文用 Retrofit 2.11 与 OkHttp 4.12 搭建可维护的网络层:接口注解与挂起函数设计、转换器工厂在三种序列化方案间的取舍、拦截器与认证器、超时与连接池配置、统一错误封装与退避重试,以及证书固定、模拟服务器测试与混淆保留规则。文末给出网络层常见坑清单与排查思路。

7 分钟阅读
Android Retrofit OkHttp
Android 开发

Android 数据持久化与 Room

本地数据该怎么存、迁移怎么做,是 Android 项目绕不开的工程问题。本文以 Room 2.7 与 KSP 为主线讲本地持久化:实体与数据访问对象建模、流式响应查询、事务与关系映射、类型转换器、数据库迁移与自动迁移的取舍,以及索引唯一约束、加密与预写日志并发。文中给出与 DataStore 的分工对照表,帮你为不同数据选出可维护的持久化方案。

7 分钟阅读
Android Room SQLite
Android 开发

Android 生命周期与 ViewModel

生命周期错配是 Android 内存泄漏与崩溃的主要成因,视图模型则是官方给出的隔离方案。本文梳理两者的协作关系:页面回调链路、生命周期与观察者、安全收集流的方式、视图模型作用域的自动取消、状态保存句柄与进程死亡恢复,以及声明式界面中视图模型与可保存状态的配合。文末附常见内存泄漏清单与对应的修复手段,帮你写出生命周期安全的代码。

11 分钟阅读
Android Lifecycle ViewModel
Android 开发

Compose 状态管理与重组优化

重组性能是 Compose 项目最常见的瓶颈,很多卡顿都源于不必要的重复重组。本文讲清重组的触发条件、稳定性判定规则与稳定注解的语义边界、集合与数据类不稳定造成的多余重组、键与派生状态等优化手段、快照流的用法与组合局部变量的代价,以及如何用布局检查器与组合追踪定位问题,并覆盖新版编译器的强跳过模式。

12 分钟阅读
Jetpack Compose 重组 性能优化
Android 开发

Jetpack Compose 声明式 UI 开发

声明式界面正在取代传统的视图树写法,而 Compose 是 Android 官方给出的答案。本文带你从零上手 Jetpack Compose:可组合函数与内容设置、修饰符链式的顺序语义、常用布局容器、列表的键策略、Material 3 主题与页面骨架,以及状态记忆、预览和与旧视图的互操作方式。配合官方物料清单版本对照表,给出可直接落地的写法与常见坑清单。

12 分钟阅读
Jetpack Compose Kotlin Android
Android 开发

Kotlin 协程与结构化并发

协程是 Android 异步编程的事实标准,但结构化并发一旦理解错位,就会写出泄漏、错序与吞异常的代码。本文讲透协程的作用域与作业层级、挂起函数与状态机改写、启动与异步的取舍、异常传播与取消机制,以及冷热流与状态流在页面中的落地方式。文中给出调度器选型表与协程泄漏排查清单,帮你在视图模型作用域里写出可取消、可测试的并发代码。

10 分钟阅读
Kotlin Coroutines Flow
Android 开发

Kotlin 扩展函数与高阶函数

扩展函数与高阶函数是 Kotlin 最常用也最容易误用的两块能力,写错时既拖慢性能又破坏可读性。本文讲清扩展的静态解析本质、成员优先规则,以及 let、run、with、apply、also 五个作用域函数的差异与选择依据,并覆盖内联函数、具体化类型参数、非内联与交叉内联、惰性序列求值和领域特定语言构建。读完可写出既高效又可读的链式接口,并避开内联与类型擦除的常见陷阱。

10 分钟阅读
Kotlin Extension Higher-Order Function
Android 开发

Kotlin 语言基础与空安全

空指针异常是 Android 线上崩溃的头号来源,Kotlin 的空安全正是为此设计。本文梳理 Kotlin 2.x 的语言基础与空安全机制:从变量声明与类型推断、可空类型与平台类型的区别,到安全调用、Elvis 运算符与 let 组成的调用链,再到智能转换、密封类穷尽分支、数据类与拷贝,以及同 Java 互操作时的空安全边界。文中给出写法对照表与常见坑清单,帮你把空指针异常挡在编译期。

9 分钟阅读
Kotlin Null Safety Android