ANDROID RETURN BRIEF · 2026-09

R E J O I N

两年没写 Android,最危险的不是忘了某个 API,而是脑子里只剩一堆互不相连的名词:ViewModelStateFlowrememberWorkManager……

这本书只做一件事:沿着一个聊天页面的一次状态往返,把这些名词重新接成一条能推理、能手写、也能在面试里讲清楚的链。

用户意图向右 Compose页面 State holderViewModel Use case可选 Repository真相边界 Room本地队列 Network服务端 System进程与设备 状态向左 渲染归并规则协调观察确认约束
18 5 0 个互动 Demo 每章一段可直接粘贴的代码 亮色 · 纯静态 · 面试导向

先换掉六个旧直觉

下面不是术语表,而是这本书要完成的六次换脑。面试题之所以难,往往不是 API 记不住,而是问题一换皮,你就认不出它仍然在问同一件事。

你以为Activity 就是应用
其实Activity 只是系统可随时重建的一扇窗
你以为suspend 会把活搬到后台
其实它只允许暂停;线程由上下文决定
你以为Compose 在更新控件
其实它在重放描述,并跳过没变的部分
你以为ViewModel 是放业务逻辑的抽屉
其实它是 UI 状态的生产者与寿命边界
你以为离线优先就是先读缓存
其实它要求本地成为可观察的真相,网络负责对账
你以为安全就是把数据库加密
其实最安全的数据是从未收集、从未落盘、从未进日志的数据

为什么贯穿案例是一条医疗消息

Celo Health 对外描述的是一套面向医疗团队的安全通信产品,覆盖 Android、iPhone 与 Web。公开页面还明确提到:临床照片与个人相册分开、患者信息不永久留在设备上、应用支持生物识别或 PIN,并要在弱网环境下保持通信可靠。

这几条约束正好把 Android 面试里最值钱的题绑在一起:生命周期、相机与权限、列表身份、离线队列、消息顺序、幂等重试、通知、后台执行、身份验证、日志脱敏与进程死亡。书里只使用这些公开约束来设计练习,不猜测 Celo 的内部代码或框架。

公开依据:Celo 产品页安全与合规页Google Play 页面

写给谁

写给有 Android 经验、离开一段时间、要在几天内恢复判断力的人。默认你懂编程、见过 Gradle 与 MVVM,但不假定你记得现代 API 的名字。

不打算做什么

不从变量和循环讲 Kotlin;不把官方架构图逐格背一遍;不内置一台网页 IDE;也不把版本号冒充能力。需要手感的地方都给最小练习,留给 Android Studio 或 Kotlin Playground。

怎么在面试前读

只有一个晚上:读 01、02、06、07、09、10、13、14、16、18。还有三天:每天一卷,最后一天把第 18 章的题真正说出声。能打开 Android Studio:每章只做「⌨ 自己跑一遍」,不要另起大项目。

卷 I

重新站稳

GROUND

先恢复 Android 独有的约束:系统拥有组件寿命,主线程拥有 UI,进程随时可能消失。

卷 II

把 Kotlin 接回来

KOTLIN

Kotlin 用类型删掉错误路径;协程用父子关系删掉失控的后台工作。

卷 III

让 Compose 重跑

COMPOSE

界面不再被逐个修改,而是被反复描述。真正的题是:什么该记住、在哪里读、何时取消。

卷 IV

把一条消息送回来

DELIVER

同一条消息贯穿 UDF、Room、网络同步、依赖注入、模块边界与医疗数据威胁模型。

卷 V

走进面试

INTERVIEW

最后不再增加框架:只把判断变成证据,把长答案压成对话。

版本快照,不是背诵清单

截至 2026 年 9 月,Android 官方 Compose 设置页示例使用 Kotlin 2.4.10 与 Compose BOM 2026.09.00;Compose 1.12.0 起要求 compileSdk 37 与 AGP 9。Android 17 对应 API 37。这些数字只用于帮你识别新项目,不是面试能力本身。真正该记的是:Compose 编译器插件跟 Kotlin 版本走,Compose 库用 BOM 对齐,而 compileSdktargetSdk 解决的是两件不同的事。

核对来源:Compose 设置Android 17 SDK。本书不会因为版本号变化而失去主线。