Lottie 动画的文件体积优化,JSON 精简技巧 Lottie 动画的文件体积优化,JSON 精简技巧 Lottie 动画的文件体积优化,JSON 精简技巧 Lottie 在 Android 上的普及程度已经不用多说,Airbnb 开源这套方案近十年后,它几乎成了 App 里播放复杂动画的标准答案。但一个常被忽略的问题是:设计导出的 JSON 文件 2026-07-15 tool 18
Systrace 和 Perfetto 的录制与解读 Systrace 和 Perfetto 的录制与解读 Systrace 和 Perfetto 的录制与解读:一个 Android 性能工程师的实战笔记 从一次 ANR 定位说起 去年处理过一个棘手的 Input ANR,用户反馈在列表滑动时偶发卡死,线下复现概率不到 5%。常规的 logcat 抓栈 2026-07-15 tool 14
Layout Inspector 的进阶:3D 视图和属性检查 Layout Inspector 的进阶:3D 视图和属性检查 Layout Inspector 的进阶:3D 视图和属性检查 Android Studio 自带的 Layout Inspector 在 4.0 版本之后经历了一次彻底的重写,从基于 IntelliJ 插件的老架构迁移到了新的底层实现 2026-07-13 tool 21
Turbine 测试 Kotlin Flow,让异步变同步 Turbine 测试 Kotlin Flow,让异步变同步 「Turbine 测试 Kotlin Flow,让异步变同步」 Flow 的测试一直是个让人头疼的事。Kotlin 协程把异步代码写得像同步一样顺手,可一到单元测试里,这种"顺手"就变成了"烫手"。runTest 确实解决了挂起函数的问题, 2026-07-13 tool 20
Google 的架构组件示例仓库,Learning Path Google 的架构组件示例仓库,Learning Path Google 的架构组件示例仓库,Learning Path 一个被低估的官方资源 去年重构公司一个老项目的时候,我在 GitHub 上翻 Android 官方示例,偶然点进了 android/architecture-component 2026-07-13 tool 20
SonarQube 代码质量门禁,团队落地经验 SonarQube 代码质量门禁,团队落地经验 SonarQube 代码质量门禁,团队落地经验 从一次深夜回滚说起 去年 Q3 我们团队经历过一次典型的技术债反噬。凌晨两点,生产环境一个空指针异常把订单结算服务打挂了。根因定位很快:某个分支合并时,新同事把 Optional.of() 用成了 Opt 2026-07-10 tool 29
kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 从 Gson 迁移说起:一个被低估的决策成本 三年前接手一个日活百万级别的 Android 项目时,团队正面临一个典型的技术债场景:Gson 的 TypeTok 2026-07-09 tool 9
Robolectric 的单元测试速度, JVM 内跑 Android Robolectric 的单元测试速度, JVM 内跑 Android Robolectric 的单元测试速度,JVM 内跑 Android 一个真实的痛点:Android 单元测试的启动成本 去年维护一个中型项目时,我们的 CI 流水线跑完全部单元测试需要 14 分钟。其中真正的测试执行时间不到 2026-07-08 tool 23
F-Droid 开源应用市场的使用体验 F-Droid 开源应用市场的使用体验 F-Droid 开源应用市场的使用体验 一个被忽略的官方仓库配置问题 我第一次认真用 F-Droid 是在 2021 年,给一台刷了 LineageOS 的备用机装应用。当时遇到的情况很典型:打开客户端,刷新仓库,然后看着进度条卡在 "Updating rep 2026-07-07 tool 12
GitHub Actions 的 Android CI 模板优化 GitHub Actions 的 Android CI 模板优化 GitHub Actions 的 Android CI 模板优化 那个被复制了十万次的模板有什么问题 几乎所有 Android 项目的 .github/workflows/android.yml 都是从同一个源头变异而来的:GitHu 2026-07-06 tool 18