ContentResolver 的批量操作,applyBatch 还靠谱吗 ContentResolver 的批量操作,applyBatch 还靠谱吗 ContentResolver 的批量操作,applyBatch 还靠谱吗 从一次联系人同步崩溃说起 去年维护一个企业通讯录同步模块时,我在 Firebase Crashlytics 里看到一条稳定复现的崩溃: androi 2026-07-03 Android 0
Genymotion 桌面模拟器的现在和替代方案 Genymotion 桌面模拟器的现在和替代方案 「Genymotion 桌面模拟器的现在和替代方案」 Genymotion 的免费桌面版在 2023 年彻底停更这件事,很多老 Android 开发者可能是后知后觉的。我注意到这个变化是因为某个项目里 CI 流水线突然挂掉,追查下来发现是 Genym 2026-07-03 tool 0
Gradle 依赖版本统一管理方案对比 Gradle 依赖版本统一管理方案对比 Gradle 依赖版本统一管理方案对比 Android 项目里依赖版本管理这件事,看起来是个"配置问题",实际踩进去才知道水有多深。一个中等规模的项目,几十上百个第三方库,加上内部模块的版本对齐,光靠每个 build.gradle 里硬编码版本号,维护起来就是 2026-07-02 tool 2
PendingIntent 的可变性声明,Android 12 的强制要求 PendingIntent 的可变性声明,Android 12 的强制要求 「PendingIntent 的可变性声明,Android 12 的强制要求」 Android 12 的 targetSdkVersion 31 强制要求 PendingIntent 必须显式声明可变性,这个改动在 2021 2026-07-02 Android 3
Kotlin 的 Inline Class 和 Value Class,字节码层面看什么 Kotlin 的 Inline Class 和 Value Class,字节码层面看什么 Kotlin 的 Inline Class 和 Value Class,字节码层面看什么 从一次性能调优的困惑说起 去年维护一个高频交易相关的 Android 模块时,团队里有人提议用 Kotlin 的 val 2026-07-01 Android 6
Stetho 调试桥,查看数据库和网络的 Chrome 插件 Stetho 调试桥,查看数据库和网络的 Chrome 插件 Stetho 调试桥,查看数据库和网络的 Chrome 插件 Stetho 是 Facebook 在 2015 年开源的一个 Android 调试工具,核心思路是把 Chrome DevTools 的远程调试协议(Chrome DevTo 2026-07-01 tool 3
Ktor 客户端替代 Retrofit,协程原生支持 Ktor 客户端替代 Retrofit,协程原生支持 Ktor 客户端替代 Retrofit,协程原生支持 从一次 Retrofit 协程适配的崩溃说起 去年维护一个老旧项目时,我遇到过一个典型的生产环境崩溃。StackTrace 指向 Retrofit 的 KotlinExtensions.kt 2026-06-30 tool 3
Paging 3 的 RemoteMediator,缓存策略怎么设计 Paging 3 的 RemoteMediator,缓存策略怎么设计 Paging 3 的 RemoteMediator,缓存策略怎么设计 一个让人困惑的 API 设计 RemoteMediator 的签名看起来足够简单。load() 方法返回 MediatorResult.Success 或者 M 2026-06-30 Android 4
Docker 构建 Android 环境,镜像层缓存策略 Docker 构建 Android 环境,镜像层缓存策略 Docker 构建 Android 环境,镜像层缓存策略 从一次 CI 崩溃说起 去年迁移团队 CI 到 GitHub Actions 时,我遇到了一个典型的问题:每次构建 Android 项目,Docker 镜像的 apt-get upda 2026-06-30 tool 4
Security 库的 EncryptedSharedPreferences,性能损耗有多少 Security 库的 EncryptedSharedPreferences,性能损耗有多少 Security 库的 EncryptedSharedPreferences,性能损耗有多少 Android Jetpack Security 库在 1.0.0 稳定版发布之后,EncryptedShare 2026-06-30 Android 5