adb 命令的高级用法,不只是安装卸载 adb 命令的高级用法,不只是安装卸载 「adb 命令的高级用法,不只是安装卸载」 大多数人第一次接触 adb 是在 Android Studio 的 logcat 窗口里,或者照着某个教程敲下 adb install app.apk。这个工具在 Android 开发工具链里存在感极强,但用法又极其 2026-06-17 tool 29
MockK 和 Mockito 的对比,Kotlin 项目怎么选 MockK 和 Mockito 的对比,Kotlin 项目怎么选 MockK 和 Mockito 的对比,Kotlin 项目怎么选 从一个编译错误说起 去年迁移一个老项目到 Kotlin 1.9 的时候,我遇到了一个挺典型的 Mockito 报错。大概长这样: org.mockito.excepti 2026-06-16 tool 13
Realm 数据库的现状,迁移到 Room 的经验 Realm 数据库的现状,迁移到 Room 的经验 Realm 数据库的现状,迁移到 Room 的经验 Realm 的收购与社区冷却 2020 年 MongoDB 宣布收购 Realm,这件事在当时看起来像是 NoSQL 移动数据库的一次胜利。Realm 的 GitHub 仓库 star 数一度接近 2026-06-15 tool 11
NinePatch 的绘制原理,还能用多久 NinePatch 的绘制原理,还能用多久 NinePatch 的绘制原理,还能用多久 Android 开发里有个老东西,从 1.0 时代活到现在,几乎每个项目都用过,但真去深究它怎么工作的开发者没几个。NinePatch,就是那个 .9.png 后缀的图,Google 官方文档叫它 "nine-p 2026-06-15 tool 17
Bugsnag 的错误聚合分析,堆栈可读性 Bugsnag 的错误聚合分析,堆栈可读性 Bugsnag 的错误聚合分析,堆栈可读性 从一次 Native Crash 的排查说起 去年维护一个包含大量 C++ 代码的 Android 项目时,我遇到了一个让人头疼的问题。线上 Firebase Crashlytics 报告显示某类崩溃发生了 12 2026-06-13 tool 15
C++ 和 Kotlin 的互操作,JNI 封装技巧 C++ 和 Kotlin 的互操作,JNI 封装技巧 C++ 和 Kotlin 的互操作,JNI 封装技巧 JNI 这玩意,Android 开发者都绕不开。Native 层有现成的 C++ 库要复用,或者性能敏感场景必须下到底层,总得打交道。但 JNI 的原始 API 写起来太折磨人了——FindC 2026-06-13 tool 13
Scrcpy 的投屏控制,开发者调试神器 Scrcpy 的投屏控制,开发者调试神器 Scrcpy 的投屏控制,开发者调试神器 从一次真机调试的崩溃说起 去年维护一个视频播放器项目时,我遇到了一个只在特定机型复现的 Surface 渲染异常。手头那台测试机屏幕碎了一半,触控层时灵时不灵,USB 调试倒是开着。当时我的调试流程是:插线、adb 2026-06-11 tool 26
Square 开源库全家桶:OkHttp、Retrofit、Moshi Square 开源库全家桶:OkHttp、Retrofit、Moshi Square 开源库全家桶:OkHttp、Retrofit、Moshi Square 这家公司在国内开发者社区里存在感不算特别高,但只要你写过几年 Android,几乎不可能没用过他们的库。OkHttp 作为 Android 4 2026-06-10 tool 20
Android 开发者官网的隐藏页面和工具 Android 开发者官网的隐藏页面和工具 Android 开发者官网的隐藏页面和工具 developer.android.com 这个域名,大部分开发者每天打交道的就是那几样:API 参考文档、Jetpack 库的版本说明、偶尔查查 Material Design 的规范。但 Google 在这个 2026-06-09 tool 20
Timber 日志库的扩展,比 Logcat 好在哪里 Timber 日志库的扩展,比 Logcat 好在哪里 「Timber 日志库的扩展,比 Logcat 好在哪里」 Timber 这个库在 Android 圈子里已经存在很久了,Jake Wharton 2013 年写的,到现在 GitHub 上快两万星,算是最稳的第三方日志工具之一。但很多人用 T 2026-06-08 tool 14