📄🦌🙌🐟🏖️
ccc2
探 索 星 辰 大 海
SQLDelight 的类型安全 SQL,在 Android 项目中的使用

SQLDelight 的类型安全 SQL,在 Android 项目中的使用

SQLDelight 的类型安全 SQL,在 Android 项目中的使用 「SQLDelight 的类型安全 SQL,在 Android 项目中的使用」 从 Room 的编译期焦虑说起 去年维护一个老项目时,我遇到过一个典型的 Room 痛点。需求很简单:给查询加个 LIMIT 参数,让用户能分页

Dagger 到 Hilt 的迁移检查清单

Dagger 到 Hilt 的迁移检查清单

Dagger 到 Hilt 的迁移检查清单 「Dagger 到 Hilt 的迁移检查清单」 Hilt 发布已经四年多了,但直到今天,我打开 GitHub 上那些 2018 年以前创建的 Android 项目,Dagger 的 @Component 和 @Module 依然随处可见。迁移不是不想做,而

Zygote 的预加载优化,对 App 启动的影响

Zygote 的预加载优化,对 App 启动的影响

Zygote 的预加载优化,对 App 启动的影响 Zygote 的预加载优化,对 App 启动的影响 Android 应用的冷启动速度,很大程度上取决于 Zygote 进程的分叉效率。这个结论在官方文档里被反复提及,但具体到实际项目中,Zygote 预加载的类列表到底该怎么调整、能省多少毫秒、会不

JetBrains Fleet 对 Android 开发的支持现状

JetBrains Fleet 对 Android 开发的支持现状

JetBrains Fleet 对 Android 开发的支持现状 JetBrains Fleet 对 Android 开发的支持现状 一个被反复推迟的"下一代 IDE"承诺 JetBrains 在 2021 年底首次公开 Fleet 的时候,整个技术圈的预期被拉得很高。官方博客的标题写得相当大胆:

Coil 和 Glide 的加载性能对比数据

Coil 和 Glide 的加载性能对比数据

Coil 和 Glide 的加载性能对比数据 Coil 和 Glide 的加载性能对比数据 从一个真实的 ANR 开始 去年维护的一个社交类 App 开始频繁上报 Input dispatching timed out 类型的 ANR,堆栈信息集中在图片加载环节。当时用的是 Glide 4.14.2

Retrofit 的自定义 Converter,写一个没那么难

Retrofit 的自定义 Converter,写一个没那么难

Retrofit 的自定义 Converter,写一个没那么难 Retrofit 的自定义 Converter,写一个没那么难 Retrofit 的 Converter 机制被很多人视为黑盒。官方文档里轻描淡写一句 "addConverterFactory",Stack Overflow 上搜到的答

欧盟 DMA 法案实施后,Google 搜索框还能预装吗

欧盟 DMA 法案实施后,Google 搜索框还能预装吗

欧盟 DMA 法案实施后,Google 搜索框还能预装吗 「欧盟 DMA 法案实施后,Google 搜索框还能预装吗」 欧盟数字市场法案(Digital Markets Act,DMA)在 2024 年 3 月全面生效,这半年多下来,Android 生态里最能感受到震动的,其实不是那些宏大的反垄断叙

Biometric 指纹认证的不同安全等级,怎么选

Biometric 指纹认证的不同安全等级,怎么选

Biometric 指纹认证的不同安全等级,怎么选 Biometric 指纹认证的不同安全等级,怎么选 Android 的 Biometric API 从 BiometricPrompt 取代 FingerprintManager 开始,官方就在推一个"统一入口"的概念。但真到了要上线指纹支付、应用

Jacoco 覆盖率报告的配置与解读

Jacoco 覆盖率报告的配置与解读

Jacoco 覆盖率报告的配置与解读 Jacoco 覆盖率报告的配置与解读 一个被忽略的质量信号 去年维护一个老项目时,我遇到了一个典型的场景:CI 流水线里跑完测试,Jacoco 报告生成成功,覆盖率 87%,团队觉得挺满意。但线上还是出了 NPE,堆栈指向的代码路径在测试里明明"覆盖"到了。追查