Fuchsia 系统的进度,Android 会被替代吗 Fuchsia 系统的进度,Android 会被替代吗 Fuchsia 系统的进度,Android 会被替代吗 那个 2016 年 GitHub 上突然冒出来的神秘仓库 2016 年 8 月,有人注意到 Google 的 GitHub 组织里出现了一个叫 fuchsia 的仓库,没有 README, 2026-06-11 随笔 0
AccessibilityService 的滥用检测,现在的限制有多严 AccessibilityService 的滥用检测,现在的限制有多严 AccessibilityService 的滥用检测,现在的限制有多严 从一次上架被拒说起 去年帮一个做效率工具的朋友处理 Google Play 上架问题,应用核心功能是自动填充表单,底层依赖 AccessibilitySer 2026-06-11 Android 0
Scrcpy 的投屏控制,开发者调试神器 Scrcpy 的投屏控制,开发者调试神器 Scrcpy 的投屏控制,开发者调试神器 从一次真机调试的崩溃说起 去年维护一个视频播放器项目时,我遇到了一个只在特定机型复现的 Surface 渲染异常。手头那台测试机屏幕碎了一半,触控层时灵时不灵,USB 调试倒是开着。当时我的调试流程是:插线、adb 2026-06-11 tool 0
Square 开源库全家桶:OkHttp、Retrofit、Moshi Square 开源库全家桶:OkHttp、Retrofit、Moshi Square 开源库全家桶:OkHttp、Retrofit、Moshi Square 这家公司在国内开发者社区里存在感不算特别高,但只要你写过几年 Android,几乎不可能没用过他们的库。OkHttp 作为 Android 4 2026-06-10 tool 1
Jetpack 库的版本碎片化,不同库的版本怎么对齐 Jetpack 库的版本碎片化,不同库的版本怎么对齐 Jetpack 库的版本碎片化,不同库的版本怎么对齐 从一次 gradle 报错说起 去年十月,我把一个老项目的 compileSdk 从 33 升到 34,Gradle sync 直接炸了。报错信息很眼熟:androidx.lifecycle: 2026-06-10 随笔 1
Lint 自定义规则开发,我写完的第一条规则 Lint 自定义规则开发,我写完的第一条规则 Lint 自定义规则开发,我写完的第一条规则 从一次代码审查的重复劳动说起 去年下半年我们团队做了一次模块化重构,把原本耦合在 App 模块里的网络请求逻辑拆到了独立的 network 模块里。拆完之后我负责审查迁移后的代码,结果连续三天都在做同一件事: 2026-06-10 Android 2
Google Play 的政策收紧,开发者账号被封怎么办 Google Play 的政策收紧,开发者账号被封怎么办 Google Play 的政策收紧,开发者账号被封怎么办 2024 年的封号潮:不是个案,是系统性的 去年下半年开始,中文技术社区里关于 Google Play 开发者账号被封的帖子明显变多了。不是那种"我违反了政策被警告"的常规操作,而是大 2026-06-09 随笔 1
ViewModel 的 SavedStateHandle,进程杀死后数据还在吗 ViewModel 的 SavedStateHandle,进程杀死后数据还在吗 ViewModel 的 SavedStateHandle,进程杀死后数据还在吗 Android 开发者对 ViewModel 的熟悉程度大概仅次于 Activity 和 Fragment,但 SavedStateHand 2026-06-09 Android 3
Android 开发者官网的隐藏页面和工具 Android 开发者官网的隐藏页面和工具 Android 开发者官网的隐藏页面和工具 developer.android.com 这个域名,大部分开发者每天打交道的就是那几样:API 参考文档、Jetpack 库的版本说明、偶尔查查 Material Design 的规范。但 Google 在这个 2026-06-09 tool 0
AtomicFU 的无锁并发,替代 synchronized 的场景 AtomicFU 的无锁并发,替代 synchronized 的场景 AtomicFU 的无锁并发,替代 synchronized 的场景 从一段性能测试的异常数据说起 去年在做 Kotlin 协程的通道(Channel)性能基准测试时,我遇到了一个反直觉的结果。测试场景很简单:两个线程通过 Cha 2026-06-08 Android 1