第116篇 Kotlin 代码评审清单:团队规范与静态检查
本节聚焦Kotlin团队代码质量保障机制,提出“三层金字塔”模型:①工具层(ktlint/detekt/编译器)自动化查格式与确定性缺陷;②约定层(PR模板/基线/baseline)半强制落地规范;③设计层(架构/抽象/命名)依赖人工判断。核心是“机器管规则,人管设计”,避免告警泛滥与评审失焦。
第121篇 Activity 生命周期全解:七个回调的成对关系
本文深入解析Activity生命周期的两大维度:视图生命周期(6个回调)与进程生命周期(状态保存/恢复),直击面试高频考点——“为何如此设计”及“进程被杀后如何恢复”。厘清`onSaveInstanceState`触发条件、Bundle大小限制、ViewModel与状态保存的边界,并给出工程最佳实践与避坑指南。
第130篇WorkManager:后台任务的最终归宿
WorkManager 专解“保证完成+尊重系统调度”问题,非实时执行方案。核心能力:持久化任务队列、约束条件(如网络/电量/存储)、可组合工作链。选型关键:可延迟但必须成功——用它;需即时响应、用户可见——用前台服务或推送。
第112篇 Kotlin 2.x 演进:K2 编译器带来了什么
本节聚焦Kotlin 2.0编译器与工具链演进:核心是**K2前端重写(基于FIR)**,带来**编译提速、类型推断更准、插件生态更健壮**;同步推进KMP稳定化及上下文接收者、`guard`等语言实验特性。升级关键在**插件兼容性检查**与**隐式类型推断回归验证**。
第108篇 Channel 与 select:协程间通信
本节详解 Kotlin 协程核心通信原语 Channel:它是点对点消息通道,比 Flow 更底层、比回调更结构化。涵盖四种容量策略、`onBufferOverflow` 行为、`select` 多路等待机制,并厘清 Channel 与 Flow 的本质区别——事件驱动选 Channel,数据流处理选 Flow。
第107篇 协程与线程性能对比:为什么更轻
本文深入剖析协程性能误区:协程“轻量”仅指创建/切换成本低(纳秒级、用户态),而非单任务执行更快;它优化的是高并发I/O场景的资源占用,而非CPU算力。关键区分协程(挂起单元)与线程(调度单位),并指出三大常见坑:误信协程能加速阻塞调用、盲目用于CPU密集型任务、过度细粒度切换。
第117篇 Kotlin 阶段面试通关地图:高频题怎么连成网
这是Kotlin面试的结构化复习地图,非知识点罗列,而是将60+篇内容按「六大知识块×三层深度」(会用/懂机制/能取舍)分层归因,直击面试区分度核心。助你快速定位保底分与拉分点,掌握高频题答题骨架、交叉跳转逻辑及三大避坑指南,真正把知识织成可检索、可推演、可落地的活网络。
第102篇 Kotlin 反射与 KClass:运行时元编程
Kotlin/Java反射面试常考深层差异:KClass提供结构化元信息(属性名、泛型、注解默认值),但需额外引入`kotlin-reflect`,增大Android方法数与包体积;Java反射零依赖但元信息原始。关键权衡:能用`::class.java`或编译期方案(如KSP、kotlinx.serialization)就不用Kotlin反射。
第101篇 value class 与内联类:零开销包装类型
`value class`(内联类)是 Kotlin 1.5 引入的类型安全利器:用零运行时开销的编译期包装,将语义不同的同底层类型(如 `Int`)彻底隔离——传错 ID、金额、单位等 Bug 直接拦截在编译期,而非线上事故。性能是附带收益,类型安全才是核心价值。
第094篇 StateFlow 与 SharedFlow:UI 状态分发的标配
本文深入解析 `StateFlow` 与 `SharedFlow` 的本质区别:前者是有状态的“当前值”容器(replay=1、自动去重),专用于UI状态;后者是无状态的“事件广播”通道(replay可配、支持缓冲与背压策略),适用于一次性事件或多方通知。结合机制、坑点、工程实践与面试高频题,助你彻底避开重复弹窗、数据丢失等典型陷阱。