📄🦌🙌🐟🏖️
ccc2
探 索 星 辰 大 海
精选文章
按住 Shift 横向滚动
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

DownloadManager 的大文件下载,断点续传靠谱吗

DownloadManager 的大文件下载,断点续传靠谱吗

DownloadManager 的大文件下载,断点续传靠谱吗 「DownloadManager 的大文件下载,断点续传靠谱吗」 去年维护一个视频缓存项目时,我接到了一个看起来挺简单的需求:后台下载 500MB 以上的视频文件,支持断点续传,网络切换后能自动恢复。产品经理的原话是"系统不是有 Down

Appium 和 Espresso 的 UI 测试框架对比

Appium 和 Espresso 的 UI 测试框架对比

Appium 和 Espresso 的 UI 测试框架对比 Appium 和 Espresso 的 UI 测试框架对比 从一次 CI 崩溃说起 去年维护的一个项目把 UI 测试从 Espresso 迁移到 Appium,三个月后又在深夜回滚。回滚 commit 的 message 写得挺克制:"Re