ListView性能优化之视图缓存
前言
ListView是Android中最常用的控件,通过适配器来进行数据适配然后显示出来,而其性能是个很值得研究的话题。本文与你一起探讨Google I/O提供的优化Adapter方案,欢迎大家交流。
正文
一、准备
了解关于Google IO大会关于Adapter的优化,参考以下文章:
Android开发之ListView 适配器(Adapter)优化
Android开发——09Google I/O之让Android UI性能更高效(1)
PDF下载:Google
准备测试代码:
Activity
private TestAdapter mAdapter;
private String[] mArrData;
private TextView mTV;
***@Override
protected void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
setContentView();
mTV = (TextView) findViewById();
mArrData = new String[1000];
for (int i = 0; i < 1000; i++) {
mArrData[i] = "Google IO Adapter" + i;
}
mAdapter = new TestAdapter(this, mArrData);
((ListView) findViewById()).setAdapter(mAdapter);
}
代码说明:模拟一千条数据,TestAdapter继承自BaseAdapter,。
二、测试
测试方法:手动滑动ListView至position至50然后往回滑动,充分利用convertView不等于null的代码段。
方案一
按照Google I/O介绍的第二种方案,把item子元素分别改为4个和10个,这样效果更佳明显。
测试代码
private int count = 0;
private long sum = 0L;
***@Override
public View getView(int position, View convertView, ViewGroup parent) {
//开始计时
long startTime = ();
if (convertView == null) {
ListView性能优化之视图缓存 来自淘豆网m.daumloan.com转载请标明出处.