PackageVisibility 的查询白名单,Android 11 后的适配 PackageVisibility 的查询白名单,Android 11 后的适配 PackageVisibility 的查询白名单,Android 11 后的适配 Android 11(API 30)引入的 Package Visibility 限制,是我这几年做应用适配时踩坑最多、也最被低估的一个 2026-06-29 Android 0
LocalBroadcastManager 的废弃,应用内通信用什么替代 LocalBroadcastManager 的废弃,应用内通信用什么替代 LocalBroadcastManager 的废弃,应用内通信用什么替代 一个被忽略 5 年的废弃通知 2022 年 1 月,AndroidX Core 1.8.0-alpha01 版本发布,release notes 里有一 2026-06-29 Android 0
Android Emulator 的快照功能,保存测试状态 Android Emulator 的快照功能,保存测试状态 Android Emulator 的快照功能,保存测试状态 一个被反复打断的下午 去年三月份,我在调试一个应用内购买的流程问题。测试环境需要 Google Play 结算库 6.0 的完整配置,包括许可证测试账号、测试信用卡、以及一个特定的 2026-06-29 tool 0
Compose 性能分析:Layout Inspector 之外还有什么 Compose 性能分析:Layout Inspector 之外还有什么 Compose 性能分析:Layout Inspector 之外还有什么 Layout Inspector 在 Android Studio 里挂了太多年了,从传统 View 时代就是性能分析的标配。Compose 出来以后, 2026-06-29 Android 0
Google 的官方 Codelab 合集,哪些值得刷 Google 的官方 Codelab 合集,哪些值得刷 Google 的官方 Codelab 合集,哪些值得刷 Android 开发者对 Codelab 的态度挺分裂的。一部分人觉得这是官方出的"手把手教程",权威、路径清晰,适合快速上手新 API;另一部分人刷过几个之后就放弃了,理由是"太浅了,跟 2026-06-29 tool 0
APKPure 和酷安的下载安全性分析 APKPure 和酷安的下载安全性分析 APKPure 和酷安的下载安全性分析 从一次签名验证失败说起 去年给一个老设备做系统维护时,我遇到了一个挺典型的问题。一台 Pixel 3 XL 停留在 Android 12,Google Play 服务因为证书链问题无法正常更新,导致依赖 GMS 的应用集 2026-06-29 tool 0
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
CopyOnWriteArrayList 的读写分离,更新开销有多大 CopyOnWriteArrayList 的读写分离,更新开销有多大 「CopyOnWriteArrayList 的读写分离,更新开销有多大」 去年排查一个线上 OOM 问题时,堆栈里反复出现 java.util.concurrent.CopyOnWriteArrayList 的 add 方法,这让 2026-06-25 Android 3
ProfileInstaller 的 Baseline Profile 分发,Play Store 之外怎么发 ProfileInstaller 的 Baseline Profile 分发,Play Store 之外怎么发 「ProfileInstaller 的 Baseline Profile 分发,Play Store 之外怎么发」 Baseline Profile 这玩意儿,Google 推了有几年了。 2026-06-24 Android 6