Android

邪恶机器人

39 篇文章
Android
AtomicFU 的无锁并发,替代 synchronized 的场景

AtomicFU 的无锁并发,替代 synchronized 的场景

AtomicFU 的无锁并发,替代 synchronized 的场景 AtomicFU 的无锁并发,替代 synchronized 的场景 从一段性能测试的异常数据说起 去年在做 Kotlin 协程的通道(Channel)性能基准测试时,我遇到了一个反直觉的结果。测试场景很简单:两个线程通过 Cha

Tile Service 开发:快速设置面板的小组件

Tile Service 开发:快速设置面板的小组件

Tile Service 开发:快速设置面板的小组件 Tile Service 开发:快速设置面板的小组件 从 NotificationListener 的权限噩梦逃过来 去年做系统工具类应用时,我被 NotificationListenerService 的权限申请流程折磨得够呛。用户得跳转到系统

Firebase Performance Monitoring,采集开销实测

Firebase Performance Monitoring,采集开销实测

Firebase Performance Monitoring,采集开销实测 「Firebase Performance Monitoring,采集开销实测」 Firebase Performance Monitoring 在 Android 社区里的存在感一直有点微妙。官方文档把它包装成"开箱即用

Zygote 的预加载优化,对 App 启动的影响

Zygote 的预加载优化,对 App 启动的影响

Zygote 的预加载优化,对 App 启动的影响 Zygote 的预加载优化,对 App 启动的影响 Android 应用的冷启动速度,很大程度上取决于 Zygote 进程的分叉效率。这个结论在官方文档里被反复提及,但具体到实际项目中,Zygote 预加载的类列表到底该怎么调整、能省多少毫秒、会不

Retrofit 的自定义 Converter,写一个没那么难

Retrofit 的自定义 Converter,写一个没那么难

Retrofit 的自定义 Converter,写一个没那么难 Retrofit 的自定义 Converter,写一个没那么难 Retrofit 的 Converter 机制被很多人视为黑盒。官方文档里轻描淡写一句 "addConverterFactory",Stack Overflow 上搜到的答

Biometric 指纹认证的不同安全等级,怎么选

Biometric 指纹认证的不同安全等级,怎么选

Biometric 指纹认证的不同安全等级,怎么选 Biometric 指纹认证的不同安全等级,怎么选 Android 的 Biometric API 从 BiometricPrompt 取代 FingerprintManager 开始,官方就在推一个"统一入口"的概念。但真到了要上线指纹支付、应用

Kotlin 的 Duration API,替代手写毫秒计算

Kotlin 的 Duration API,替代手写毫秒计算

Kotlin 的 Duration API,替代手写毫秒计算 Kotlin 的 Duration API,替代手写毫秒计算 一个让我放弃 `System.currentTimeMillis()` 的线上故障 去年维护一个音视频通话 SDK 时,我踩过一个很蠢的坑。代码里要判断用户是否超过 30 秒没

Compose 动画的 animate*AsState 底层怎么实现的

Compose 动画的 animate*AsState 底层怎么实现的

Compose 动画的 animate*AsState 底层怎么实现的 Compose 动画的 animate*AsState 底层怎么实现的 Jetpack Compose 1.0 正式版发布到现在已经三年多了,animate*AsState 这套 API 几乎成了每个 Compose 开发者最先

LeakCanary 2.x 是怎么找到内存泄漏的

LeakCanary 2.x 是怎么找到内存泄漏的

LeakCanary 2.x 是怎么找到内存泄漏的 LeakCanary 2.x 是怎么找到内存泄漏的 从 1.x 到 2.x:一次彻底的重写 我第一次认真读 LeakCanary 源码是在 2019 年,当时项目里 1.6.3 版本的 RefWatcher 把内存泄漏检测搞成了性能灾难。Activ