文档介绍: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) {