kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 去年把项目里的 Gson 全面替换为 kotlinx.serialization 时,我遇到的最直观问题不是运行时 crash,而是 CI 直接编译不过。Kot 2026-07-20 tool 0
Apollo Kotlin 的 GraphQL 客户端,缓存策略配置 Apollo Kotlin 的 GraphQL 客户端,缓存策略配置 Apollo Kotlin 的 GraphQL 客户端,缓存策略配置 线上环境出现过这样一种情况:用户在个人资料页修改了昵称,返回列表页后,下拉刷新,列表里旧昵称闪了一下,紧接着变成了新昵称。这个“闪一下”的过程在弱网环境下尤为明 2026-07-20 tool 0
Fastlane 的自动化发布流程,Play Store 上传 Fastlane 的自动化发布流程,Play Store 上传 Fastlane 的自动化发布流程,Play Store 上传 去年夏天,我在给一个新项目上传第一个内测版本。Play Console 的 Web 界面已经提示必须提交 Android App Bundle,但手动拖拽上传 AAB 之后 2026-07-20 tool 0
VS Code 写 Android,插件生态够用吗 VS Code 写 Android,插件生态够用吗 VS Code 写 Android,插件生态够用吗 从一次 Gradle 同步崩溃说起 去年把主力开发机从 Intel Mac 换成 M3 MacBook Pro 之后,我做过一个实验:把 IntelliJ IDEA 卸载,只用 VS Code 写 2026-07-17 tool 2
Charles 和 Proxyman 的 HTTPS 解密配置教程 Charles 和 Proxyman 的 HTTPS 解密配置教程 Charles 和 Proxyman 的 HTTPS 解密配置教程 在 Android 开发里抓包,最常见的情况不是配代理,而是配完代理之后满屏的红色叉号。Charles 的列表里显示 <unknown>,Proxyman 的 Fl 2026-07-17 tool 2
Lottie 动画的文件体积优化,JSON 精简技巧 Lottie 动画的文件体积优化,JSON 精简技巧 Lottie 动画的文件体积优化,JSON 精简技巧 Lottie 在 Android 上的普及程度已经不用多说,Airbnb 开源这套方案近十年后,它几乎成了 App 里播放复杂动画的标准答案。但一个常被忽略的问题是:设计导出的 JSON 文件 2026-07-15 tool 6
Systrace 和 Perfetto 的录制与解读 Systrace 和 Perfetto 的录制与解读 Systrace 和 Perfetto 的录制与解读:一个 Android 性能工程师的实战笔记 从一次 ANR 定位说起 去年处理过一个棘手的 Input ANR,用户反馈在列表滑动时偶发卡死,线下复现概率不到 5%。常规的 logcat 抓栈 2026-07-15 tool 6
Layout Inspector 的进阶:3D 视图和属性检查 Layout Inspector 的进阶:3D 视图和属性检查 Layout Inspector 的进阶:3D 视图和属性检查 Android Studio 自带的 Layout Inspector 在 4.0 版本之后经历了一次彻底的重写,从基于 IntelliJ 插件的老架构迁移到了新的底层实现 2026-07-13 tool 6
Turbine 测试 Kotlin Flow,让异步变同步 Turbine 测试 Kotlin Flow,让异步变同步 「Turbine 测试 Kotlin Flow,让异步变同步」 Flow 的测试一直是个让人头疼的事。Kotlin 协程把异步代码写得像同步一样顺手,可一到单元测试里,这种"顺手"就变成了"烫手"。runTest 确实解决了挂起函数的问题, 2026-07-13 tool 6
Google 的架构组件示例仓库,Learning Path Google 的架构组件示例仓库,Learning Path Google 的架构组件示例仓库,Learning Path 一个被低估的官方资源 去年重构公司一个老项目的时候,我在 GitHub 上翻 Android 官方示例,偶然点进了 android/architecture-component 2026-07-13 tool 6