Android 的 TTS 引擎选择,系统 vs 第三方 Android 的 TTS 引擎选择,系统 vs 第三方 「Android 的 TTS 引擎选择,系统 vs 第三方」 去年把 App 的 targetSdkVersion 升到 31(Android 12)之后,后台收到一条很诡异的崩溃链:用户在 Pixel 5 上点击播放按钮,应用直接闪退,堆栈 2026-07-31 Android 1
Android 的 Storage Access Framework 性能,SAF 文档选择器的卡顿问题 Android 的 Storage Access Framework 性能,SAF 文档选择器的卡顿问题 Android 的 Storage Access Framework 性能,SAF 文档选择器的卡顿问题 如果你在 Android 11 的低端机上触发一个 ACTION_OPEN_DOCUME 2026-07-31 随笔 0
KMP 项目里的 expect/actual 是怎么工作的 KMP 项目里的 expect/actual 是怎么工作的 KMP 项目里的 expect/actual 是怎么工作的 去年把团队里的核心网络层从纯 Android 迁到 Kotlin Multiplatform 时,我碰到的第一个硬钉子不是协程在 Darwin 上的内存模型,也不是 CocoaPo 2026-07-31 Android 0
Android 的 Nearby Share 升级,跨设备文件传输体验 Android 的 Nearby Share 升级,跨设备文件传输体验 Android 的 Nearby Share 升级,跨设备文件传输体验?先别急着夸 CES 2023 上,Google 和 Samsung 突然宣布了一件事:以后 Nearby Share 改名叫 Quick Share,而且要 2026-07-31 随笔 0
APK 瘦身实战记录,从 80MB 压到 35MB APK 瘦身实战记录,从 80MB 压到 35MB APK 瘦身实战记录,从 80MB 压到 35MB 去年秋天的时候,我们项目的 APK 在某次大版本迭代后突破了 80MB。虽然 Google Play 的 150MB 上限还远,但国内几个主要渠道的分发后台已经开始弹警告,更直接的是后台数据里显示 2026-07-31 tool 0
kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 kotlinx.serialization 的稳定性,生产环境敢用吗 去年把项目里的 Kotlin 版本从 1.9.10 推到 1.9.20 时,我顺手将 kotlinx.serialization 从 1.5.1 升到了 1.6 2026-07-31 tool 0
Android 的 Partial Wake Lock 限制,后台保活还能怎么做 Android 的 Partial Wake Lock 限制,后台保活还能怎么做 Android 的 Partial Wake Lock 限制,后台保活还能怎么做 如果你最近把手上的项目 targetSdkVersion 升到 34(Android 14),同时又恰好有个需要在后台持续跑任务的需求, 2026-07-29 随笔 4
WebView 的 JsBridge 方案,现在还有必要吗 WebView 的 JsBridge 方案,现在还有必要吗 「WebView 的 JsBridge 方案,现在还有必要吗」 上个月处理一个老项目的性能工单,用户反馈在低端机上点击 H5 页面的按钮后,Native 端要卡将近半秒才有响应。抓 Systrace 一看,时间全耗在了一条 shouldOv 2026-07-29 Android 5
Notification Channel 的分组策略,太多渠道怎么办 Notification Channel 的分组策略,太多渠道怎么办 「Notification Channel 的分组策略,太多渠道怎么办」 做内容聚合类应用的工程师大概率都遇到过这个窘境:产品运营要求每个栏目单独开关通知,技术侧为了把控制权交给用户,在 Android O 之后为每个栏目都建了独 2026-07-29 Android 5
远程真机测试平台对比:Firebase、AWS、BrowserStack 远程真机测试平台对比:Firebase、AWS、BrowserStack 「远程真机测试平台对比:Firebase、AWS、BrowserStack」 把 targetSdk 升到 34 之后,我们的应用在 Samsung Galaxy S24 Ultra 上收到一个 Native 崩溃,堆栈指向一 2026-07-29 tool 2