Android ListView优化技巧
接触Android开发一段时间了,ListView是最为常见的一个组件,它的优化方法也尤为重要,在这里我做一个总结,方便自己随时查阅。
1.使用ViewHolder模式提高效率。ViewHolder模式充分利用ListView的视图缓冲机制,避免了每次调用getView的时候通过findViewById去实例化控件。根据Android工具书中所列举的,使用ViewHolder将提高50%以上的效率。使用这种方法需要在自定义Adapter类中定义一个内部类ViewHolder即可。
2.如果涉及到图片,可以在listview滑动的过程中不加载图片,而是在listview停止滑动的时候去加载图片。这在我的项目家长端是用到过的。
3.第三点是很多地方都会遇到的,也就是减少item的布局的层次,尽量多的使用RelativeLayout布局。
4.重用了convertView,很大程度上的减少了内存的消耗。通过判断convertView是否为null,是的话就需要产生一个视图出来,不是的话就重用视图。
5.尽量避免在自定义Adapter类中使用static 来定义全局静态变量。
6.尽量避免在ListView适配器中使用线程,因为线程产生内存泄露的主要原因在于线程生命周期的不可控制。随着我们ListView的不断滑动,线程可能会越聚越多,造成卡死。
7.尽量使用applicationcontext而不是activity自带的context。
这上面的几点其实不光光是ListView的优化,它还涉及到了Android本身的一些优化,在这里我把它们都记下来,同时保证持续更新,以备自己查阅。