Android的Listview优化
写了很多Listview,最近专门研究了Listview的优化策略/套路。
首先要明白这里谈的优化是指内存的优化,基于减少内存的使用。
1、Listview源码解析
源码详解ListView中的RecycleBin机制。这是Android加载Listview的机制,针对屏幕展示的view的消失和出现,循环利用item view的机制。参考这篇文章
http://www.2cto.com/kf/201604/497754.html
2、Listview优化套路
在getview()方法中,通过判断convertview是否为空,减少Layoutinflate.inflate()方法的调用,这一步很耗时,因为它是从XML文件解析得到view对象。
Google官方推荐安的方法是使用viewholder内部类,通过settag的方法将viewholder和convertview绑定起来。
具体参考下面这两篇文章
Android优化系列之ListView优化老生常谈http://www.cnblogs.com/yuhanghzsd/p/5595532.html
Android研究院之ListView原理学习与优化总结(二十一)http://www.xuanyusong.com/archives/1252
写了很多Listview,最近专门研究了Listview的优化策略/套路。
首先要明白这里谈的优化是指内存的优化,基于减少内存的使用。
1、Listview源码解析
源码详解ListView中的RecycleBin机制。这是Android加载Listview的机制,针对屏幕展示的view的消失和出现,循环利用item view的机制。参考这篇文章
http://www.2cto.com/kf/201604/497754.html
2、Listview优化套路
在getview()方法中,通过判断convertview是否为空,减少Layoutinflate.inflate()方法的调用,这一步很耗时,因为它是从XML文件解析得到view对象。
Google官方推荐安的方法是使用viewholder内部类,通过settag的方法将viewholder和convertview绑定起来。
具体参考下面这两篇文章
Android优化系列之ListView优化老生常谈http://www.cnblogs.com/yuhanghzsd/p/5595532.html
Android研究院之ListView原理学习与优化总结(二十一)http://www.xuanyusong.com/archives/1252