📄🦌🙌🐟🏖️
ccc2
探 索 星 辰 大 海
精选文章
按住 Shift 横向滚动
ShortcutManager 的动态快捷方式,真的有人用吗

ShortcutManager 的动态快捷方式,真的有人用吗

ShortcutManager 的动态快捷方式,真的有人用吗 ShortcutManager 的动态快捷方式,真的有人用吗 被忽视的 API:从 Android 7.1 到今天的尴尬地位 ShortcutManager 这个 API 在 Android 7.1(API 25)引入,到现在已经横跨了八

 kotlinx.serialization 的稳定性,生产环境敢用吗

kotlinx.serialization 的稳定性,生产环境敢用吗

kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 从 Gson 迁移说起:一个被低估的决策成本 三年前接手一个日活百万级别的 Android 项目时,团队正面临一个典型的技术债场景:Gson 的 TypeTok

NetworkSecurityConfig 的证书固定,配置注意事项

NetworkSecurityConfig 的证书固定,配置注意事项

NetworkSecurityConfig 的证书固定,配置注意事项 NetworkSecurityConfig 的证书固定,配置注意事项 去年处理一个支付 SDK 的接入需求时,对方要求必须做证书固定(Certificate Pinning)。当时心想这玩意儿 Android 7.0 就原生支持了

Robolectric 的单元测试速度, JVM 内跑 Android

Robolectric 的单元测试速度, JVM 内跑 Android

Robolectric 的单元测试速度, JVM 内跑 Android Robolectric 的单元测试速度,JVM 内跑 Android 一个真实的痛点:Android 单元测试的启动成本 去年维护一个中型项目时,我们的 CI 流水线跑完全部单元测试需要 14 分钟。其中真正的测试执行时间不到

F-Droid 开源应用市场的使用体验

F-Droid 开源应用市场的使用体验

F-Droid 开源应用市场的使用体验 F-Droid 开源应用市场的使用体验 一个被忽略的官方仓库配置问题 我第一次认真用 F-Droid 是在 2021 年,给一台刷了 LineageOS 的备用机装应用。当时遇到的情况很典型:打开客户端,刷新仓库,然后看着进度条卡在 "Updating rep

VpnService 的隧道实现,MTU 和 DNS 配置细节

VpnService 的隧道实现,MTU 和 DNS 配置细节

VpnService 的隧道实现,MTU 和 DNS 配置细节 「VpnService 的隧道实现,MTU 和 DNS 配置细节」 Android 的 VpnService 从 API 14 就有了,但真正能做出稳定可用的隧道实现,踩的坑远比文档上写的多。我去年维护一个基于 VpnService 的

WorkManager 的约束条件,电池优化下还靠谱吗

WorkManager 的约束条件,电池优化下还靠谱吗

WorkManager 的约束条件,电池优化下还靠谱吗 WorkManager 的约束条件,电池优化下还靠谱吗 从一次凌晨的崩溃告警说起 去年维护的一个后台上传模块,线上突然报了大量 WorkInfo.State.FAILED 的异常。看日志很诡异:任务明明设置了 NetworkType.CONNE

GitHub Actions 的 Android CI 模板优化

GitHub Actions 的 Android CI 模板优化

GitHub Actions 的 Android CI 模板优化 GitHub Actions 的 Android CI 模板优化 那个被复制了十万次的模板有什么问题 几乎所有 Android 项目的 .github/workflows/android.yml 都是从同一个源头变异而来的:GitHu

ProGuard 和 R8 的规则文件编写技巧

ProGuard 和 R8 的规则文件编写技巧

ProGuard 和 R8 的规则文件编写技巧 ProGuard 和 R8 的规则文件编写技巧 从一次 4MB 的体积回退说起 去年维护一个老牌金融类 App 时,我踩了一个相当经典的坑。团队把构建工具从 AGP 7.2 升级到 8.0,R8 的 full mode 默认开启,发版后线上崩溃率从 0