Android 技术文章归档
自研缓存策略体系:用 FirstCache/FirstNet/OnlyNet/Timeout 终结混乱的缓存代码
缓存策略看起来只是"先读缓存还是先请求网络"的选择,实际落地却会影响页面速度、弱网体验、数据一致性和代码复杂度。本文介绍一种自研缓存策略体系,用统一策略枚举、CacheManager 读写和 Flow 数据流封装,让页面只订阅状态,不拼装缓存细节。
Read Post
路由预取与请求合并:让首屏数据"提前跑"且"不重复跑"
页面打开速度不只取决于接口耗时,还取决于请求发起得够不够早、重复请求能不能被压住。本文介绍 PrefetchRouterInterceptor 在路由阶段提前发起高确定性请求,配合 MergeHolder 在网络层合并重复请求,一条链路解决"发得早"和"别重复发"两个问题。
Read Post
深入 Android Simpleperf 火焰图分析:从 CPU 采样到性能瓶颈定位的全链路
本文深入解析 Android Simpleperf 工具的原理与实战,从火焰图生成、调用栈分析到冷启动优化、多线程 CPU 分配,并结合 Systrace 构建互补的性能定位方法论。
Read Post
Android App 启动优化应该先看哪些指标?
整理 Android 启动优化的关键指标、阶段拆分、Perfetto trace 观察点和线上治理优先级。
Read Post
Android Binder 是什么?一篇看懂 Binder 通信模型
用问题驱动的方式解释 Android Binder 是什么、为什么系统服务依赖 Binder、一次跨进程调用会经过哪些角色。
Read Post
Android CI/CD 质量门禁应该包含什么?
整理 Android CI/CD 中构建、测试、Lint、签名、性能基准、发布和回滚的质量门禁设计。
Read Post
Android Gradle 构建慢怎么分析?
整理 Android Gradle 构建慢的分析路径,包括 Build Scan、Configuration Cache、KSP、任务依赖和缓存命中。
Read Post
Android Perfetto 怎么入门?从一条 Trace 开始定位性能问题
面向 Android 开发者介绍 Perfetto 入门方法,覆盖 trace 抓取、关键轨道、Binder、调度、渲染和启动分析。
Read Post
AudioFlinger 在 Android 音频系统中负责什么?
解释 AudioFlinger 在 Android 音频链路中的角色,包括混音、线程、AudioTrack、低延迟播放和 AAudio。
Read Post
Bitmap 为什么容易导致 OOM?Android 图片内存模型入门
解释 Bitmap 内存占用、Java 堆与 Native 堆差异、Hardware Bitmap、采样压缩和图片加载优化。
Read Post
Compose 为什么会频繁重组?从 Stability 到状态读取位置
解释 Jetpack Compose 频繁重组的常见原因,包括不稳定参数、状态读取位置、derivedStateOf 误用和列表项设计。
Read Post
DataStore 和 SharedPreferences 应该怎么选?
对比 SharedPreferences、Preferences DataStore 和 Proto DataStore 的适用场景、线程模型、类型安全和迁移策略。
Read Post
Glance 和 RemoteViews 有什么区别?
解释 Android Glance AppWidget 与 RemoteViews 的关系、差异、适用场景和迁移判断。
Read Post
Paging3 RemoteMediator 适合什么场景?
解释 Paging3 RemoteMediator 的定位、网络数据库分页协作、缓存优先列表和常见错误用法。
Read Post
RecyclerView 四级缓存是哪四级?从复用链路理解列表性能
解释 RecyclerView 四级缓存、ViewHolder 复用顺序、RecycledViewPool 和 Prefetch 对滑动性能的影响。
Read Post
Room 返回 Flow 为什么能自动更新?
解释 Room、InvalidationTracker、SQLite 表变更通知与 Kotlin Flow 自动重新查询机制。
Read Post
深入 Android AGSL RuntimeShader 全链路:从 Skia 着色器编译到 Compose 自定义图形特效
本文深入剖析 Android AGSL RuntimeShader 的完整编译链路(AGSL→SkSL→GPU),详解 uniform shader 嵌套采样机制、Compose 两种集成方式及实战案例,并总结性能边界与工程实践建议。
Read Post
深入 Android Glance AppWidget 全链路:从 RemoteViews 渲染桥接到 Compose 声明式小组件的架构演进与更新策略
本文深入剖析 Android Glance AppWidget 的完整技术链路,从 RemoteViews 跨进程渲染机制到 Glance 翻译引擎的设计原理,涵盖声明式 UI 构建、Actions 交互处理、跨进程更新流程及更新策略选型。
Read Post
深入 Kotlin 类型安全构建器与 DSL 设计全链路
从 Compose 嵌套编译报错出发,深入解析 Kotlin DSL 的类型安全设计核心——lambda with receiver、@DslMarker 作用域控制,涵盖 Compose、Gradle KTS 与自定义 DSL 全链路实战。
Read Post
深入 Android 16 KB 内存页对齐全链路:从 ELF 加载对齐到 NDK 编译适配与性能验证
Android 15 起系统与 Play Store 同步推进 16 KB 页迁移,本文从 ELF 段对齐原理、动态链接器影响、NDK 编译适配到 TLB 性能验证,给出从编译参数到 CI 门禁的完整迁移路线。
Read Post