tool

60 篇文章
SonarQube 代码质量门禁,团队落地经验

SonarQube 代码质量门禁,团队落地经验

SonarQube 代码质量门禁,团队落地经验 SonarQube 代码质量门禁,团队落地经验 从一次深夜回滚说起 去年 Q3 我们团队经历过一次典型的技术债反噬。凌晨两点,生产环境一个空指针异常把订单结算服务打挂了。根因定位很快:某个分支合并时,新同事把 Optional.of() 用成了 Opt

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

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

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

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

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

Appium 和 Espresso 的 UI 测试框架对比

Appium 和 Espresso 的 UI 测试框架对比

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

Genymotion 桌面模拟器的现在和替代方案

Genymotion 桌面模拟器的现在和替代方案

Genymotion 桌面模拟器的现在和替代方案 「Genymotion 桌面模拟器的现在和替代方案」 Genymotion 的免费桌面版在 2023 年彻底停更这件事,很多老 Android 开发者可能是后知后觉的。我注意到这个变化是因为某个项目里 CI 流水线突然挂掉,追查下来发现是 Genym

Gradle 依赖版本统一管理方案对比

Gradle 依赖版本统一管理方案对比

Gradle 依赖版本统一管理方案对比 Gradle 依赖版本统一管理方案对比 Android 项目里依赖版本管理这件事,看起来是个"配置问题",实际踩进去才知道水有多深。一个中等规模的项目,几十上百个第三方库,加上内部模块的版本对齐,光靠每个 build.gradle 里硬编码版本号,维护起来就是

Stetho 调试桥,查看数据库和网络的 Chrome 插件

Stetho 调试桥,查看数据库和网络的 Chrome 插件

Stetho 调试桥,查看数据库和网络的 Chrome 插件 Stetho 调试桥,查看数据库和网络的 Chrome 插件 Stetho 是 Facebook 在 2015 年开源的一个 Android 调试工具,核心思路是把 Chrome DevTools 的远程调试协议(Chrome DevTo