注意:其中包括工具、三方库、系统API,其都在性能优化中使用到

Layout Inspector

Android自带工具 Tools->Layout Inspector
查看视图层次结构

Choreographer

获取FPS,线上使用,具备实时性
API16后

AsyncLayoutInflater

异步Inflate,
WorkThread加载布局,回掉主线程
节约主线程时间
不能设置layoutinflater.factory(自定义解决)

X2C介绍

保留XML优点,解决其性能问题
开发人员写XML,自动生成Java代码,进行加载
原理:APT编译期翻译XML为java代码

X2C使用
AnnotationProcessor ‘com.zhangyue.we:x2c-apt:1.1.2’
implementation ‘com.zhangyue.we:x2c-lib:1.0.6’
@xml(layouts=”activity_main”)

问题:
部分属性Java不支持
失去了系统的兼容(AppCompat)

StrictMode

严苛模式,Android提供的一种运行时检测机制
方便强大,容易被忽视
包含:线程策略和虚拟机策略检查
线程策略
自定义的耗时调用,detectCustomSlowCalls()
磁盘读取操作,detectDiskReads
网络操作,detectNetwork
虚拟机策略
Activity泄漏,detectActivityLeaks
Sqlite对象泄漏,detectLeakedSqlLiteObjects
检测实例数量,setClassInstanceLimit()

AndroidPerformanceMonitor

github
介绍:非侵入式的性能监控组件,通知形式弹出卡顿信息,方便精确定位
缺点:
确实卡顿了,但卡顿堆栈可能不准确
和OOM一样,最后的堆栈只是表象,不是真正问题
优化方向:获取监控周期内的多个堆栈,而不仅仅是最后一个

ANR-WatchDog

github
非侵入式的监控ANR组件