Android Emulator 的快照功能,保存测试状态 Android Emulator 的快照功能,保存测试状态 Android Emulator 的快照功能,保存测试状态 一个被反复打断的下午 去年三月份,我在调试一个应用内购买的流程问题。测试环境需要 Google Play 结算库 6.0 的完整配置,包括许可证测试账号、测试信用卡、以及一个特定的 2026-06-29 tool 1
Google 的官方 Codelab 合集,哪些值得刷 Google 的官方 Codelab 合集,哪些值得刷 Google 的官方 Codelab 合集,哪些值得刷 Android 开发者对 Codelab 的态度挺分裂的。一部分人觉得这是官方出的"手把手教程",权威、路径清晰,适合快速上手新 API;另一部分人刷过几个之后就放弃了,理由是"太浅了,跟 2026-06-29 tool 1
APKPure 和酷安的下载安全性分析 APKPure 和酷安的下载安全性分析 APKPure 和酷安的下载安全性分析 从一次签名验证失败说起 去年给一个老设备做系统维护时,我遇到了一个挺典型的问题。一台 Pixel 3 XL 停留在 Android 12,Google Play 服务因为证书链问题无法正常更新,导致依赖 GMS 的应用集 2026-06-29 tool 1
MAT 工具分析堆转储,定位内存泄漏 MAT 工具分析堆转储,定位内存泄漏 「MAT 工具分析堆转储,定位内存泄漏」 Android 应用的内存泄漏问题,说大不大,说小不小。说它不大,是因为很多应用在用户手上运行三五分钟就被杀掉了,泄漏那点内存根本来不及累积成灾难。说它不小,是因为一旦泄漏发生在常驻组件——比如 Service、单例、或 2026-06-25 tool 5
NDK 开发的 CMake 配置模板分享 NDK 开发的 CMake 配置模板分享 NDK 开发的 CMake 配置模板分享 一个被 CMake 3.10 坑过的开场 去年维护一个老项目时,我把 build.gradle 里的 externalNativeBuild.cmake.version 从 "3.10.2" 顺手改成了 "3.22. 2026-06-25 tool 5
JUnit 5 在 Android 测试中的配置与使用 JUnit 5 在 Android 测试中的配置与使用 JUnit 5 在 Android 测试中的配置与使用 Android 测试长期被 JUnit 4 统治。从 2018 年 Google 在 AndroidX Test 库中引入 AndroidJUnitRunner 开始,这个基于 JUnit 2026-06-23 tool 3
Firebase 免费额度够用吗,超出后多少钱 Firebase 免费额度够用吗,超出后多少钱 「Firebase 免费额度够用吗,超出后多少钱」 Firebase 的 Spark 计划(免费档)在 Google 产品里算是个异类。它不像 GCP 那样新用户送 300 美元试用金、到期就停,而是真正意义上的"永久免费"——只要你不触发某些隐藏开关 2026-06-22 tool 11
SVG 转 Vector Drawable 的注意事项 SVG 转 Vector Drawable 的注意事项 SVG 转 Vector Drawable 的注意事项 Android 开发里用 Vector Drawable 替代多套 PNG 已经是老生常谈了,但真把设计师给的 SVG 往项目里一丢,编译报错、运行时崩溃、渲染错位的问题从来没少过。这篇文 2026-06-21 tool 4
Moshi 的代码生成,KSP 适配后的编译速度 Moshi 的代码生成,KSP 适配后的编译速度 Moshi 的代码生成,KSP 适配后的编译速度 从 KAPT 的编译噩梦说起 如果你用 Kotlin 写 Android 项目超过三年,大概率经历过 KAPT 的折磨。Moshi 作为 Square 出品的 JSON 解析库,早期版本依赖 KAPT 2026-06-21 tool 4
WireShark 抓包分析移动应用网络请求 WireShark 抓包分析移动应用网络请求 WireShark 抓包分析移动应用网络请求 WireShark 这个工具在桌面网络分析领域几乎是标配,但把它拉到移动应用开发场景里,事情就变得复杂不少。我见过太多开发者以为装个 WireShark 就能看穿 App 的所有网络行为,结果在 HTTPS 2026-06-21 tool 6