常见面试题之ListView的复用及如何优化
来源:互联网 发布:pcb线路板软件下载 编辑:程序博客网 时间:2024/06/06 04:17
经常有人问我,作为刚毕业的要去面试,关于安卓开发的问题,技术面试官会经常问哪些问题呢?我想来想去不能一股脑的全写出来,我准备把这些问题单独拿出来写,并详细的分析一下,这样对于初学者是最有帮助的。这次的第一个问题就是:ListView的复用及如何优化!
1、ListView的复用简单来说就是使用ViewHolder复用convertView。说完大家尤其是初学者,没看过源码的同学不太明白。那我就举一个例子,让大家能够明明白白。
例子如下:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.lv_item, null);
holder = new ViewHolder();
holder.textView = (TextView)convertView.findViewById(R.id.tv_text);
convertView.setTag(holder);
} else {
holder = (ViewHolder)convertView.getTag();
}
holder.textView.setText(mData.get(position));
return convertView;
}
}
public class ViewHolder {
public TextView textView;
}
2、如何进行优化呢?
①、如果item中有图片一定要用异步加载。而且里面的图片尽量要用缩略图或者小图。
②、判断手势,快速滑动时不加载里面的图片。
③、要对数据进行分页加载。
④、item的布局层级要越少越好。
3、如何检查呢?
可以使用hierarchview工具查看其优化。
什么是hierarchview?为什么要用它呢?
不合理的布局会使我们的应用程序UI性能变慢,HierarchyViewer能够可视化的角度直观地获得UI布局设计结构和各种属性的信息,帮助我们优化布局设计。HierarchyViewer是我们优化程序的工具之一,它是Android自带的非常有用的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器。
怎么用它呢?
Hierarchy Viewer是随Android SDK发布的工具,位于Android SDK/tools/hierarchyviewer.bat (Windows操作系统,mac上显示的为hierarchyviewer),使用起来也是超级简单,通过此工具可以详细的理解当前界面的控件布局以及某个控件的属性(name、id、height等)。
1)连接设备真机或者模拟器。
2)启动你要观察的应用。
3)打开Hierarchyviewer,点击hierarchyviewer文件即可。
说到这里,我相信大家应该会对ListView的复用及优化有了一定的了解,如果在面试的过程中说出来,相信面试官应该会对你满意的!
原文链接:http://toutiao.com/a4721743636/?iid=2940446160&app=news_article&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_ios&utm_campaign=client_share
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
- 常见面试题之ListView的复用及如何优化
- 常见面试题之ListView的复用及如何优化
- 面试题:如何优化ListView的性能?
- ListView的复用及如何优化
- hibernate常见的面试题及答案
- Android 面试题笔记-------ListView的优化方式?
- 常见面试题及基础
- 常见的面试题
- 常见的面试题
- 常见的面试题
- 常见的面试题
- 【javascript常见面试题】常见前端面试题及答案
- 常见面试题之C++
- 常见面试题之C++ .
- 常见面试题之数组
- 常见面试题之单链表
- Android之常见面试题
- 常见面试题之C++
- Android进阶之设置透明、半透明等效果
- Java 内存区域和GC机制
- 关于UTF-8与GBK转码的懒办法
- linux下忘记mysql root用户密码修改办法【阿里云专用】
- 那些年我们一起清除过的浮动
- 常见面试题之ListView的复用及如何优化
- CSS十问——好奇心+刨根问底=CSSer
- Python学习笔记<list和tuple>
- Android新组件RecyclerView介绍,其效率更好
- [网络和多线程]1、iOS中的进程、线程
- [网络和多线程]2、pThread 的基本使用方法(不推荐使用)
- [网络和多线程]3、NSThread的基本使用方法
- [网络和多线程]4、线程同步
- 用ajax跨域访问通过php的问题,解决方法