Android

邪恶机器人

80 篇文章
Android
AGP 8.0 的 R8 全模式,我迁移时遇到的坑

AGP 8.0 的 R8 全模式,我迁移时遇到的坑

AGP 8.0 的 R8 全模式,我迁移时遇到的坑 AGP 8.0 的 R8 全模式,我迁移时遇到的坑 上个月把项目的主干分支从 AGP 7.4.2 切到 8.0.0,Gradle wrapper 从 7.5 升到 8.0,compileSdk 也顺势提到了 33。Sync 过程比预想中顺利,Kot

Android 的 DNS 解析缓存,OkHttp 怎么控制

Android 的 DNS 解析缓存,OkHttp 怎么控制

Android 的 DNS 解析缓存,OkHttp 怎么控制 Android 的 DNS 解析缓存,OkHttp 怎么控制 去年一次线上切流,我们给 CDN 域名换了 A 记录指向备用集群。监控里 iOS 端的错误率在五分钟后开始回落,Android 端的超时报警却持续了近十五分钟。后端确认新 IP

Crashlytics 的自定义日志,定位 Native Crash

Crashlytics 的自定义日志,定位 Native Crash

Crashlytics 的自定义日志,定位 Native Crash Crashlytics 的自定义日志,定位 Native Crash 去年线上有一个 Native Crash 把我们折腾了挺久。信号 SIGSEGV,崩溃地址 0x0000000000000000,Firebase Consol

Android 14 的截屏检测 API,能做什么不能做什么

Android 14 的截屏检测 API,能做什么不能做什么

Android 14 的截屏检测 API,能做什么不能做什么 Android 14 的截屏检测 API,能做什么不能做什么 Android 14 正式引入 DETECT_SCREEN_CAPTURE 权限和 ScreenCaptureCallback 的时候,我第一反应是:Google 终于把这个坑

Android 的增量编译,到底省了多少时间

Android 的增量编译,到底省了多少时间

Android 的增量编译,到底省了多少时间 Android 的增量编译,到底省了多少时间 从一条 UP-TO-DATE 日志开始 前阵子升级一个老项目到 AGP 8.1.0 + Gradle 8.2.1 + Kotlin 1.9.10, clean build 时间从 3 分 20 秒涨到了 5

OverlayManagerService 的悬浮窗权限,不同厂商差异

OverlayManagerService 的悬浮窗权限,不同厂商差异

OverlayManagerService 的悬浮窗权限,不同厂商差异 OverlayManagerService 的悬浮窗权限,不同厂商差异 从一次线上崩溃说起 去年维护一个直播 SDK 的时候,我们收到一份来自 vivo X90 的崩溃报告。堆栈很干净,干净到让人头疼: android.view

SavedStateViewModelFactory 的恢复逻辑,Bundle 大小限制

SavedStateViewModelFactory 的恢复逻辑,Bundle 大小限制

SavedStateViewModelFactory 的恢复逻辑,Bundle 大小限制 「SavedStateViewModelFactory 的恢复逻辑,Bundle 大小限制」 去年给一个电商 App 做进程回收后的状态恢复时,我踩到了一个坑:用户把商品加入购物车后切到后台,过十几分钟再回来,

RecyclerView 的预加载机制,Prefetch 到底有用吗

RecyclerView 的预加载机制,Prefetch 到底有用吗

RecyclerView 的预加载机制,Prefetch 到底有用吗 RecyclerView 的预加载机制,Prefetch 到底有用吗 从一次列表卡顿说起 去年维护一个信息流应用时,我遇到个挺典型的性能问题。列表滑动到第 15 条左右开始掉帧,Systrace 上能看到明显的红色帧, Chore