LeakCanary2.x
LeakCanary LeakCanary2.x 介绍 LeakCanary2.x 自动检测的对象: destroyed Activity instances destroyed Fragment instances destroyed fragment View instances cleared ViewModel instances destroyed Se...
LeakCanary LeakCanary2.x 介绍 LeakCanary2.x 自动检测的对象: destroyed Activity instances destroyed Fragment instances destroyed fragment View instances cleared ViewModel instances destroyed Se...
ANR 原理 系统 ANR 完整流程可以分为如下三个部分: 超时检测 ANR 信息收集 ANR 信息输出 超时检测 理解Android ANR的触发原理 触发 ANR 的过程可分为三个步骤:埋炸弹,、拆炸弹,、引爆炸弹 ANR(Application Not Responding)的监测原理本质上是消息机制,设定一个 delay 消息,超时未被移除则触发 ...
ANR 案例 android.os.MessageQueue.nativePollOnce 一周内 top 几的 ANR: 其中 nativePollOnce 的 ANR 排名第一: SP apply ANR SharedPreferences ANR 总结 今日头条 ANR 优化实践系列 - 告别 SharedPreference 等待 SharedPref...
ANR 基础 ANR 本质 ANR(Application Not Responding),应用程序无响应,简单一个定义,却涵盖了很多 Android 系统的设计思想 首先,ANR 属于应用程序的范畴。这不同于 SNR(System Not Respoding),SNR 反映的问题是系统进程 (system_server) 失去了响应能力,而 ANR 明确将问题圈定在应用程序。SNR ...
ANR 问题分析 ANR 分析套路 ANR 问题主要有两种原因:应用自身的问题 和 系统异常导致的问题。在分析 ANR 问题的时候,最主要的就是要确定是哪个原因导致的(当然也有一些中间地带,比如代码写的不好,在正常情况下不会暴露,在系统出问题的时候很快就暴露出来) ANR 问题一般的分析步骤如下 分析 Log 从 EventLog 看具体的 ANR 时间 EventLog ...
卡顿优化 卡顿优化方法论 卡顿优化,也就是提升 APP 的响应时间,用空间换时间,总结了四项基本原则: 缓存优先,有缓存读缓存 减少新建,能复用就不新建 减少任务,能不做的尽量不做 具体问题具体分析:针对具体事务本身进行分析,必须做的能提前做就提前做,不必须的延后做 优化措施 任务执行 任务优先级排序,优先高优先级的执行 线程设置 ...
基础知识 UI 优化思路 布局文件解析:io 操作 创建对象:反射 Xml inflate 原理 [[LayoutInflater 源码解析]] [[AsyncLayoutInflater]] 渲染优化 布局优化 merge merge 就是合并的意思。使用它可以有效优化某些符合条件的多余的层级。 在定义 View 的时候,可以把 xml 的根布局设...
APM 性能指标 启动时间 流畅度 FPS 网络指标 基于 okhttp 指标监控 https://www.jianshu.com/p/60cfd0282930
性能优化工具 TraceView [[TraceView]] Systrace [[Systrace入门]] Profiler Android Studio 自带工具 BTrace AGP 8.0 不支持,AGP 8.0+ 移除了 Transform 的 API Perfetto(Android9 及以上) LeakCanary MAT/MMAT MAT使用教程...
性能监控 监控应用卡顿方案 Looper Printer 替换方案 很常见的方案,使用系统方法 setMessageLogging 替换掉主线程 Looper 的 Printer 对象,通过计算 Printer 打印日志的时间差,来拿到系统 dispatchMessage 方法的执行时间 Looper.getMainLooper().setMessageLogging(str -&g...