一般在界面中涉及到大量图片加载的时候都会产生卡顿,所以须要优化网络
其核心思想就是减小在getView()中的代码量和操做,让其尽量的轻量化。众多方法最根本的目的是 将一切耗时的操做从getView中抽离,常见的耗时如 大量计算,加载图片,加载网络数据,加载资源文件,new 对象的操做等等, 尽可能让getView只设置值。异步
最基本的有:布局
1.复用convertView,这是最基本的 ,不要每次新建一个item就产生一个view对象 这样很容易致使滑动不顺畅甚至内存溢出;优化
2.ViewHolder 也是 减小item中控件的findViewById操做,也节约了很多内存对象
ListView中有图片的时候,咱们尽可能使用异步操做来加载图片图片
为了防止滑动不顺畅 咱们能够在滑动的时候不请求数据不加载图片,或者不在快速滑动的时候加载图片,实现起来也不麻烦,给 ListView 设置 ScrollListener,针对 Fling 的状况作处理就好了。而后在滑动中止后再操做。内存
对listview中图片要进行规范,通常状况都须要进行压缩资源
listView的item中尽可能减小布局层次结构,item中的空件宽高尽可能写成固定的值或者math_parent,减小view的绘制 同理若是使用权重的地方过多也会增长绘制的压力get
listView分页请求数据也能够减小压力it