tool

98 篇文章
APKPure 和酷安的下载安全性分析

APKPure 和酷安的下载安全性分析

APKPure 和酷安的下载安全性分析 APKPure 和酷安的下载安全性分析 去年十二月,我在整理一部 Pixel 7 的测试机环境,需要从外部渠道回退安装某个特定旧版本的 Firefox(org.mozilla.firefox,版本 120.1.0)。Google Play 已经强制更新到 12

NinePatch 的绘制原理,还能用多久

NinePatch 的绘制原理,还能用多久

NinePatch 的绘制原理,还能用多久 NinePatch 的绘制原理,还能用多久 去年维护一个社交 App 时,线上监控突然报出一批集中在 Android 12 设备的 Native Crash。堆栈信息很短,崩溃点落在 libhwui.so 内部,跟 Skia 的 patch 渲染相关。最后

Android 开发值得关注的 newsletter 和播客

Android 开发值得关注的 newsletter 和播客

Android 开发值得关注的 newsletter 和播客 Android 开发值得关注的 newsletter 和播客 Android Studio 的 release note 又弹出了更新提示,Jetpack 某个库的 alpha 版本号跳到了 alpha14,Compose Compile

我自己搭的 CI/CD 流水线,花了多少钱

我自己搭的 CI/CD 流水线,花了多少钱

我自己搭的 CI/CD 流水线,花了多少钱 我自己搭的 CI/CD 流水线,花了多少钱 Android 项目的构建成本是个容易被低估的坑。本地开发时,我们往往只关心 Gradle Sync 那几十秒能不能再快一点,却忽略了把这套构建流程搬到云端后,按分钟计费的账单会累积成什么规模。去年我把手上一個包

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

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

Gradle 依赖版本统一管理方案对比 Gradle 依赖版本统一管理方案对比 去年把项目从 Groovy 的 ext 块迁移到 buildSrc 之后,我们的 CI 构建时间从平均 14 分钟涨到了 38 分钟。排查了整整两天,最后发现症结在于 buildSrc 目录里的一行注释改动——仅仅是加了

Google 的官方 Codelab 合集,哪些值得刷

Google 的官方 Codelab 合集,哪些值得刷

Google 的官方 Codelab 合集,哪些值得刷 Google 的官方 Codelab 合集,哪些值得刷 Google 的 Codelab 体系有一个挺有意思的矛盾:它可能是 Android 官方生态里最成体系的学习路径,但刷完十来个课程之后,你依然有很大概率在面对真实项目时不知所措。不是因为

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

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

Genymotion 桌面模拟器的现在和替代方案 Genymotion 桌面模拟器的现在和替代方案 如果你最近还在用 Genymotion Desktop 跑 Android 14 的兼容性测试,大概会注意到启动耗时已经远不如三四年前的印象中那样轻快。那个曾经在 Stack Overflow 上被高

Ktor 客户端替代 Retrofit,协程原生支持

Ktor 客户端替代 Retrofit,协程原生支持

Ktor 客户端替代 Retrofit,协程原生支持 Ktor 客户端替代 Retrofit,协程原生支持 Retrofit 从 2.6.0 开始支持 suspend 函数,这让很多 Android 开发者误以为网络层已经彻底拥抱了 Kotlin 协程。但如果你打开 Retrofit 的源码,跟到

MAT 工具分析堆转储,定位内存泄漏

MAT 工具分析堆转储,定位内存泄漏

MAT 工具分析堆转储,定位内存泄漏 「MAT 工具分析堆转储,定位内存泄漏」 去年维护一个内容型 App 时,线上 Firebase 突然连续报出 OutOfMemoryError,堆栈集中在 java.lang.OutOfMemoryError: Failed to allocate a 524