Android

邪恶机器人

108 篇文章
Android
Android 15 预测性返回手势,我试了一下

Android 15 预测性返回手势,我试了一下

Android 15 预测性返回手势,我试了一下 Android 15 预测性返回手势,我试了一下 Android 15 在 2024 年 9 月正式发布,预测性返回手势(Predictive Back Gesture)从开发者选项里的实验性功能变成了系统默认行为。这个特性最早在 Android 1

Dynamic Feature Module 上线一年后的真实体验

Dynamic Feature Module 上线一年后的真实体验

Dynamic Feature Module 上线一年后的真实体验 「Dynamic Feature Module 上线一年后的真实体验」 去年 Q2 我们把一个 28MB 的安装包拆成了 base + 3 个 dynamic feature module,当时团队内部的预期很乐观:用户冷启动只下载

Compose Multiplatform 真的能用吗?踩坑记录

Compose Multiplatform 真的能用吗?踩坑记录

Compose Multiplatform 真的能用吗?踩坑记录 Compose Multiplatform 真的能用吗?踩坑记录 从一次失败的 Demo 开始 去年十月份,手边一个内部工具需要同时支持 Android 和桌面端。团队里就我一个 Android 开发,再招一个 Desktop 的人不

Kotlin 协程的 Job 和 SupervisorJob 差别在哪

Kotlin 协程的 Job 和 SupervisorJob 差别在哪

Kotlin 协程的 Job 和 SupervisorJob 差别在哪 Kotlin 协程的 Job 和 SupervisorJob 差别在哪 去年维护一个后台任务调度模块的时候,我踩到了一个协程异常处理的坑。当时代码大概长这样: val scope = CoroutineScope(Job() +

Hilt 的编译时代码生成,到底生成了什么

Hilt 的编译时代码生成,到底生成了什么

Hilt 的编译时代码生成,到底生成了什么 Hilt 的编译时代码生成,到底生成了什么 Hilt 2.44 版本发布的时候,我把一个老项目从 Dagger 2 切了过去。迁移过程比预期顺利,加几个注解、删几行代码就编译通过了。但那天晚上我盯着 build 目录看了很久——Hilt 到底帮我生成了什么

Macrobenchmark 测出来的启动时间,跟真实用户差多少

Macrobenchmark 测出来的启动时间,跟真实用户差多少

Macrobenchmark 测出来的启动时间,跟真实用户差多少 「Macrobenchmark 测出来的启动时间,跟真实用户差多少」 从一次离谱的数据差异说起 去年我在优化一个电商 App 的冷启动,Macrobenchmark 跑出来的数据漂亮得让我怀疑人生。Median 280ms,P99 3

KMP 项目里的 expect/actual 是怎么工作的

KMP 项目里的 expect/actual 是怎么工作的

KMP 项目里的 expect/actual 是怎么工作的 KMP 项目里的 expect/actual 是怎么工作的 从一个编译报错开始 去年下半年我在把一个 Android 项目往 KMP 迁移时,碰到了一个挺典型的编译错误。代码结构大概是这样: // commonMain expect cla

Baseline Profile 启动优化实测,效果有多少

Baseline Profile 启动优化实测,效果有多少

Baseline Profile 启动优化实测,效果有多少 「Baseline Profile 启动优化实测,效果有多少」 去年 Google I/O 上 Baseline Profile 被反复提及的时候,我其实有点将信将疑。启动优化这个领域,从 Multidex 时代的 main-dex-lis

Baseline Profile 启动优化实测,效果有多少

Baseline Profile 启动优化实测,效果有多少

Baseline Profile 启动优化实测,效果有多少 Baseline Profile 启动优化实测,效果有多少 从一次冷启动卡顿的排查说起 去年下半年我在维护一个用户量级百万级别的工具类应用,收到不少关于启动慢的反馈。当时应用冷启动时间大概在 2.8 秒左右(从点击图标到首帧绘制完成),在低

Hilt 的编译时代码生成,到底生成了什么

Hilt 的编译时代码生成,到底生成了什么

Hilt 的编译时代码生成,到底生成了什么 Hilt 的编译时代码生成,到底生成了什么 Hilt 2.44 版本发布的时候,我正好在迁移一个老项目。当时遇到个挺诡异的问题:编译通过了,运行时却抛 IllegalStateException,说某个依赖找不到。排查了半天,发现是 @HiltAndroi