Android

邪恶机器人

121 篇文章
Android
App Startup 库真的能优化启动吗,实测数据

App Startup 库真的能优化启动吗,实测数据

App Startup 库真的能优化启动吗,实测数据 App Startup 库真的能优化启动吗,实测数据 去年把项目里的第三方 SDK 初始化逻辑从 Application.onCreate 迁移到 AndroidX Startup 之后,我盯着 Macrobenchmark 跑出来的结果看了很久

WindowInsets 的兼容处理,从 Edge-to-Edge 说起

WindowInsets 的兼容处理,从 Edge-to-Edge 说起

WindowInsets 的兼容处理,从 Edge-to-Edge 说起 「WindowInsets 的兼容处理,从 Edge-to-Edge 说起」 把项目 targetSdk 从 34 切到 35 之后,首页的底部导航栏直接沉到了屏幕最底下,被手势提示条盖住了大半。CoordinatorLayo

MediaStore 的日期查询索引,为什么有时候会慢

MediaStore 的日期查询索引,为什么有时候会慢

MediaStore 的日期查询索引,为什么有时候会慢 MediaStore 的日期查询索引,为什么有时候会慢 一个线上卡顿 case 上个月排查了一个相册模块的冷启动卡顿问题。Systrace 抓下来,主线程在 ContentResolver.query 上硬耗了 1.8 秒,直接导致首页 Rec

StrictMode 检测主线程 IO,生产环境敢开吗

StrictMode 检测主线程 IO,生产环境敢开吗

StrictMode 检测主线程 IO,生产环境敢开吗 StrictMode 检测主线程 IO,生产环境敢开吗 去年在做启动性能优化的时候,通过 Systrace 发现主线程在 Application.onCreate 里有一小段可疑阻塞。跟进去看,是一个第三方 SDK 在初始化时读了 assets

Android 的剪贴板读取限制,Android 13 后的变化

Android 的剪贴板读取限制,Android 13 后的变化

Android 的剪贴板读取限制,Android 13 后的变化 Android 的剪贴板读取限制,Android 13 后的变化 去年把 App 的 targetSdkVersion 升到 33 之后,线上开始零星出现用户反馈:复制了分享口令,打开 App 却怎么都触发不了自动跳转。我本地拿一台

CopyOnWriteArrayList 的读写分离,更新开销有多大

CopyOnWriteArrayList 的读写分离,更新开销有多大

CopyOnWriteArrayList 的读写分离,更新开销有多大 「CopyOnWriteArrayList 的读写分离,更新开销有多大」 去年在优化一个即时通讯模块时,我遇到了一个典型的并发修改崩溃。后台线程通过 WebSocket 不断收到新消息,直接往一个 ArrayList 里 add,

Palette 取色库的旧代码,现在还值得留吗

Palette 取色库的旧代码,现在还值得留吗

Palette 取色库的旧代码,现在还值得留吗 「Palette 取色库的旧代码,现在还值得留吗」 上个月重构一个老项目时,我在 build.gradle 里看到一行 androidx.palette:palette:1.0.0。愣了一下才反应过来,这个库自 2018 年 AndroidX 迁移之后

ViewModel 的 SavedStateHandle,进程杀死后数据还在吗

ViewModel 的 SavedStateHandle,进程杀死后数据还在吗

ViewModel 的 SavedStateHandle,进程杀死后数据还在吗 ViewModel 的 SavedStateHandle,进程杀死后数据还在吗 最近在重构一个订单填写页时,我把页面里的表单状态全部迁进了 ViewModel 的 SavedStateHandle。本地开发时开着开发者选