一. 列表卡顿优化
常规方案
convertView复用、使用ViewHolder
耗时任务异步处理
布局相关
减少布局层级、避免过度绘制
异步inflate 或者 X2C
图片相关
避免过大尺寸:GC频繁、内存抖动
滑动时取消加载
线程相关
使用线程池收敛线程,降低线程优先级
避免UI线程时间片被抢占
TextView相关
原因:面对复杂文本性能不佳。
BoringLayout 单行、StaticLayout 多行
DynamicLayout 可编辑文本展示
TextView优化
展示类StaticLayout即可,性能优于DynamicLayout
异步创建StaticLayout
可直接使用 facebook/TextLayoutBuilder
其它
Systrace跟踪
注意字符串拼接
不要用 “+” 而是要用StringBuilder
二. WebView异常监控
腾讯VasSonic:https://github.com/Tencent/VasSonic
重要控件
问题:性能与适配
容器预热、资源预加载
WebView版本及对接业务方众多
思路:
监控屏幕是否白屏,判断是否有问题。
网友评论