ListView的性能优化的一丢丢经验
来源:互联网 发布:黑芯木莲 淘宝 编辑:程序博客网 时间:2024/06/06 07:03
在使用listview的过程中,会碰到滑动卡顿的问题。这个问题尤其在item view的布局比较复杂的时候存在。带来的使用体验会很差,在一些较低端的设备上,甚至有可能发生anr。大致说一下我自己的一点经验,高手还请帮忙补充,多多益善~~
- 使用viewHolder
这个其实已经算是一个很基础、近乎标准的东东了,但是毋庸置疑它很重要。 - 避免过度绘制
android 每隔16ms,也就是60fps会发出一个VSYNC信号,通知渲染UI,如果渲染时间过久,就会导致卡顿。更详细的所以减少过度绘制是及其有必要的。
具体的方法可以在手机的开发者选项中找到“调试GPU过度绘制“,打开这个功能,颜色越鲜艳的表明过度绘制的程度越强。根据这个,去检查自己的视图,是不是有冗余的layout嵌套,是不是有没用的layout等等。 - 不在getview中进行耗时操作
这个是不论mvc还是mvp的开发模式都有的理念:view只负责显示视图,不去做数据的处理或者业务逻辑的处理,应该丢给model去搞。事实上,我在很多地方看到的,在getView方法中一大堆的逻辑,还有耗时处理。
一个明显的例子就是把表情的转换放在getview中。尽管已经有了viewHolder机制,但是getview仍然是被频繁使用的方法,如果表情转换的算法写的一般(甚至很渣),如果用户要同时显示很多表情,那么卡顿就无法避免。
如果getView中的item视图有耗时的动画效果,也建议使用surfaceView在子线程处理。 - 不在getView中new 例如listener的实例
因为getView是很频繁调用的,在里面new 会导致滑动的时候一大堆实例分配内存。
0 0
- ListView的性能优化的一丢丢经验
- ListView的性能优化
- ListView的性能优化
- listView的性能优化
- ListView的性能优化
- ListView的性能优化
- ListView的性能优化
- ListView的adapter性能优化
- listview, gridview的性能优化
- listview性能优化的方法?
- Android listview的性能优化
- listview getview的性能优化
- SQL2K5的性能优化的经验
- 数据库开发的性能优化经验
- MySQL性能优化的20条经验
- MySQL之二十种性能优化的经验
- 二十条MySQL性能优化的经验
- MySql 性能优化的最佳经验
- HDU5813 Elegant Construction 2016 Multi-University Training Contest 7(构造)
- java源码分析之集合架构01
- 【机器学习】神经网络(一)——多类分类问题
- 河内之塔
- HDU-5810-Balls and Boxes(方差期望)
- ListView的性能优化的一丢丢经验
- UVA 11624
- Eclipse+maven+scala+spark环境搭建
- Tomcat安装失败 的解决方法
- 九大基础排序总结与对比
- 第七场多校总结
- zzuli oj1895: 985的0-1串难题 [二分]
- iOS app启动另外的app
- 使用ButterKnife8以上版本,控件报空指针的问题