tool

60 篇文章
Moshi 的代码生成,KSP 适配后的编译速度

Moshi 的代码生成,KSP 适配后的编译速度

Moshi 的代码生成,KSP 适配后的编译速度 Moshi 的代码生成,KSP 适配后的编译速度 从 KAPT 的编译噩梦说起 如果你用 Kotlin 写 Android 项目超过三年,大概率经历过 KAPT 的折磨。Moshi 作为 Square 出品的 JSON 解析库,早期版本依赖 KAPT

WireShark 抓包分析移动应用网络请求

WireShark 抓包分析移动应用网络请求

WireShark 抓包分析移动应用网络请求 WireShark 抓包分析移动应用网络请求 WireShark 这个工具在桌面网络分析领域几乎是标配,但把它拉到移动应用开发场景里,事情就变得复杂不少。我见过太多开发者以为装个 WireShark 就能看穿 App 的所有网络行为,结果在 HTTPS

JRebel for Android 的热部署方案还在吗

JRebel for Android 的热部署方案还在吗

JRebel for Android 的热部署方案还在吗 JRebel for Android 的热部署方案还在吗 JRebel 这个名字在 Android 开发圈子里已经沉寂了好几年。如果你是从 2015 年前后入行的开发者,可能还记得 ZeroTurnaround 公司那个绿色的火箭图标,以及它

adb 命令的高级用法,不只是安装卸载

adb 命令的高级用法,不只是安装卸载

adb 命令的高级用法,不只是安装卸载 「adb 命令的高级用法,不只是安装卸载」 大多数人第一次接触 adb 是在 Android Studio 的 logcat 窗口里,或者照着某个教程敲下 adb install app.apk。这个工具在 Android 开发工具链里存在感极强,但用法又极其

MockK 和 Mockito 的对比,Kotlin 项目怎么选

MockK 和 Mockito 的对比,Kotlin 项目怎么选

MockK 和 Mockito 的对比,Kotlin 项目怎么选 MockK 和 Mockito 的对比,Kotlin 项目怎么选 从一个编译错误说起 去年迁移一个老项目到 Kotlin 1.9 的时候,我遇到了一个挺典型的 Mockito 报错。大概长这样: org.mockito.excepti

Realm 数据库的现状,迁移到 Room 的经验

Realm 数据库的现状,迁移到 Room 的经验

Realm 数据库的现状,迁移到 Room 的经验 Realm 数据库的现状,迁移到 Room 的经验 Realm 的收购与社区冷却 2020 年 MongoDB 宣布收购 Realm,这件事在当时看起来像是 NoSQL 移动数据库的一次胜利。Realm 的 GitHub 仓库 star 数一度接近

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

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

NinePatch 的绘制原理,还能用多久 NinePatch 的绘制原理,还能用多久 Android 开发里有个老东西,从 1.0 时代活到现在,几乎每个项目都用过,但真去深究它怎么工作的开发者没几个。NinePatch,就是那个 .9.png 后缀的图,Google 官方文档叫它 "nine-p

Bugsnag 的错误聚合分析,堆栈可读性

Bugsnag 的错误聚合分析,堆栈可读性

Bugsnag 的错误聚合分析,堆栈可读性 Bugsnag 的错误聚合分析,堆栈可读性 从一次 Native Crash 的排查说起 去年维护一个包含大量 C++ 代码的 Android 项目时,我遇到了一个让人头疼的问题。线上 Firebase Crashlytics 报告显示某类崩溃发生了 12

C++ 和 Kotlin 的互操作,JNI 封装技巧

C++ 和 Kotlin 的互操作,JNI 封装技巧

C++ 和 Kotlin 的互操作,JNI 封装技巧 C++ 和 Kotlin 的互操作,JNI 封装技巧 JNI 这玩意,Android 开发者都绕不开。Native 层有现成的 C++ 库要复用,或者性能敏感场景必须下到底层,总得打交道。但 JNI 的原始 API 写起来太折磨人了——FindC

Scrcpy 的投屏控制,开发者调试神器

Scrcpy 的投屏控制,开发者调试神器

Scrcpy 的投屏控制,开发者调试神器 Scrcpy 的投屏控制,开发者调试神器 从一次真机调试的崩溃说起 去年维护一个视频播放器项目时,我遇到了一个只在特定机型复现的 Surface 渲染异常。手头那台测试机屏幕碎了一半,触控层时灵时不灵,USB 调试倒是开着。当时我的调试流程是:插线、adb