android:scrollingCache// 设置在滚动时是否使用绘制缓存。若设为true,则将使滚动表现更快速,但会占用更内存。默认为true。
android:animationCache// 设置布局在绘制动画效果时是否为其子View创建绘图缓存。若设为true,将会消耗更多的内存,要求持续时间更久的初始化过程,但表现更好。默认为true。
- 重用ConvertView,使用ViewHolder模式
- 异步线程加载图片(一般都是直接使用图片库加载,如Glide, Picasso),对于本地的大图片也要异步加载
- getView方法中尽可能的减少逻辑判断,特别是耗时的判断
- 避免GC(可以从LOGCAT查看有无GC的LOG)
- 在快速滑动时不要加载图片
- 将ListView的scrollingCache和animateCache这两个属性设置为false(默认是true)
- 尽可能减少List Item的Layout层次(如可以使用RelativeLayout替换LinearLayout,或使用自定的View代替组合嵌套使用的Layout)