Shizuku 权限方案,无 Root 调用系统 API 的实践 Shizuku 权限方案,无 Root 调用系统 API 的实践 「Shizuku 权限方案,无 Root 调用系统 API 的实践」 Android 14 上,我尝试在应用内直接通过反射关闭另一个应用的通知权限。代码刚跑起来就收到了一个无情的 SecurityException,日志很直白:uid 2026-08-06 Android 8
Compose Compiler 新版本的性能优化,编译时间缩短了吗 Compose Compiler 新版本的性能优化,编译时间缩短了吗 Compose Compiler 新版本的性能优化,编译时间缩短了吗 Compose Compiler 2.0.0 跟着 Kotlin 2.0 一起落地已经有一段时间了。JetBrains 在 K2 编译器的发布博客里把性能提升吹 2026-08-06 随笔 7
Android 的 Auto Fill 服务安全性,密码管理器的新要求 Android 的 Auto Fill 服务安全性,密码管理器的新要求 Android 的 Auto Fill 服务安全性,密码管理器的新要求 Android 15 的 Developer Preview 放出来之后,我扫了一遍 Autofill 相关的 API diff。没发现什么振奋人心的大更新 2026-08-06 随笔 15
KtLint 和 Detekt 的代码规范配置 KtLint 和 Detekt 的代码规范配置 KtLint 和 Detekt 的代码规范配置:一个"过度配置"项目的踩坑记录 上个月把项目从 AGP 7.4 迁到 8.2,Gradle 升到 8.5,顺手把 KtLint 从 0.49.1 更新到 1.1.1。本地 ./gradlew spotle 2026-08-03 tool 10
DocumentsContract 的树形文档访问,SAF 的局限 DocumentsContract 的树形文档访问,SAF 的局限 「DocumentsContract 的树形文档访问,SAF 的局限」 去年把文件管理模块重构到纯 SAF(Storage Access Framework)方案时,我在 Android 11 的测试机上遇到一个极其诡异的权限崩溃。 2026-08-03 Android 15
Android 开发从 Java 8 到 17 的迁移,还有多少老项目没动 Android 开发从 Java 8 到 17 的迁移,还有多少老项目没动 Android 开发从 Java 8 到 17 的迁移,还有多少老项目没动 AGP 8.0 发布已经一年半了,Google 那把刀早就磨好。从 2023 年 4 月开始,Android Gradle Plugin 8.0 明 2026-08-03 随笔 8
Macrobenchmark 测出来的启动时间,跟真实用户差多少 Macrobenchmark 测出来的启动时间,跟真实用户差多少 「Macrobenchmark 测出来的启动时间,跟真实用户差多少」 去年做完一轮启动优化,本地跑 Macrobenchmark 的数据看起来相当漂亮。StartupTimingMetric 测出来的 timeToInitialDis 2026-08-03 Android 0
Jetpack Compose 的 Material3 Adaptive,大屏适配终于有官方方案了 Jetpack Compose 的 Material3 Adaptive,大屏适配终于有官方方案了 Jetpack Compose 的 Material3 Adaptive,大屏适配终于有官方方案了 Compose 1.0 正式发布的时候,折叠屏还只是个新鲜玩具。三星 Galaxy Z Fold 那 2026-08-03 随笔 9
国内手机厂商的折叠屏适配要求,大屏 App 的新规范 国内手机厂商的折叠屏适配要求,大屏 App 的新规范 国内手机厂商的折叠屏适配要求,大屏 App 的新规范 去年几家大厂凑在一起搞了个折叠屏软件生态联盟,华为、小米、OPPO、vivo、荣耀,该在的都在。新闻稿写得挺漂亮,说要统一标准、共建生态、提升大屏体验。结果联盟成立快一年了,我打开各家应用商店 2026-08-03 随笔 13
Baseline Profile 启动优化实测,效果有多少 Baseline Profile 启动优化实测,效果有多少 Baseline Profile 启动优化实测,效果有多少 上个月在给一个 Jetpack Compose 项目做冷启动性能基线的时候,Macrobenchmark 跑出来的数据让我一度怀疑设备坏了。同一台 Pixel 7,同一个 APK, 2026-08-03 Android 0