Android, BaseAdapter 处理大数据量时的优化
Android优化 最常见的就是ListView, Gallery, GridView, ViewPager 的大数据优化 图片优化 访问网络的优化
优化的原则:
数据延迟加载 分批加载 本地缓存
数据优化
1).复用contentview
2).创建static class ViewHolder
3).分批加载
滑动监听 或者按钮 显示更多数据 往下拖动 显示
图片优化
1).异步加载
2).本地缓存(二级缓存 内存(软引用实现),sd卡)
3).快速滑动时不显示图片
4).分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池
异步加载
AsynTask android 封装好的异步数据获取,包括三个方法
doInBackground 执行在子线程中的异步方法
onProgressUpdate 数据获取之后 执行的方法,在主线程中可以在这里更新UI界面
onPostExecute 异步方法执行前,可以进行界面友好提示 在主线程中执行的方法
也可以自己封装一个任务类(子线程)thread 采用线程池
这里需要自己维护一个任务列表,并且做到任务的优先级
对Adapter 优化的代码:
- public class HolderAdapter<E> extends AbstractAdapter<E> {
- public HolderAdapter(LayoutInflater inflater, ViewCreator<E> creator) {
- super(inflater, creator);
- }
- private static class ViewHolder{
- public View view;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // Holder View模式实现
- if (convertView == null) {
- ViewHolder holder = new ViewHolder();
- convertView = mCreator.createView(mInflater, position,getItem(position));
- holder.view = convertView;
- convertView.setTag(holder);
- } else {
- ViewHolder holder = (ViewHolder) convertView.getTag();
- //释放当前的View的数据
- mCreator.releaseView(convertView, getItem(position));
- //将新数据更新到HodlerView中
- mCreator.updateView(holder.view, position, getItem(position));
- }
- return convertView;
- }
- }
Android, BaseAdapter 处理大数据量时的优化的更多相关文章
- 大数据量时Mysql的优化
(转自网络) 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时 ...
- sql大数据量查询的优化技巧
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- MySQL大数据量分页性能优化
mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...
- 任何抛开业务谈大数据量的sql优化都是瞎扯
周三去某在线旅游公司面试.被问到了一个关于数据量大的优化问题.问题是:一个主外键关联表,主表有一百万数据,外键关联表有一千万的数据,要求做一个连接. 本人接触过单表数据量最大的就是将近两亿行历史数据( ...
- 大数据量时 Mysql LIMIT如何正确对其进行优化(转载)
以下的文章主要是对Mysql LIMIT简单介绍,我们大家都知道LIMIT子句一般是用来限制SELECT语句返回的实际行数.LIMIT取1个或是2个数字参数,如果给定的是2个参数,第一个指定要返回的第 ...
- 【原创】大数据量时生成DataFrame避免使用效率低的append方法
转载请注明出处:https://www.cnblogs.com/oceanicstar/p/10900332.html ★append方法可以很方便地拼接两个DataFrame df1. ...
- mysql大数据量之limit优化
背景:当数据库里面的数据达到几百万条上千万条的时候,如果要分页的时候(不过一般分页不会有这么多),如果业务要求这么做那我们需要如何解决呢?我用的本地一个自己生产的一张表有五百多万的表,来进行测试,表名 ...
- .net WebService 大数据量时性能的提高
1.直接返回DataSet对象 [WebMethod(Description = "直接返回DataSet对象")] public DataSet GetUserListDateS ...
- Kendo UI中TreeView 放入tabstrip中,大数据量时超过边框的解决方案。
参考http://www.kendoui.com/forums/ui/tabstrip/tabstip-with-treeview-treeview-breaking-out-of-tabstrip. ...
随机推荐
- 10- python 网络爬虫分析
Python 网络爬虫简单分析 import urllib2 response = urllib2.urlopen("http://www.baidu.com") print re ...
- Ubuntu+Django+mod_wsgi+Apache配置过程
Ubuntu15.10 Apache2.4( sudo apt-get install apache2 ) Python3.4( sudo apt-get install apache2 ), [系 ...
- SuperMapPy 批量拼接 GeoTiff影像
影像拼接工具使用说明 一.影像像素位深检查 1.采用开源库GDAL的gdalinfo.exe读取GeoTiff文件的信息,如类型.投影,范围等. 2.采用DOS脚本遍历所有GeoTiff文件,输出各个 ...
- js或jquery实现图片轮播
如: 1.//3个div的统一class = 'div' var index =0; //3秒轮播一次 var timer = setInterval(function(){ index = ...
- android异步Http框架
首先在GitHub上下载异步Http框架代码以及相关文档: 将jar包放入lib包中即可: 接下来分别实现get.post.文件上传功能实现: 代码实现如下: AsyncHttpClient clie ...
- js 放置 cookie、获取 cookie、删除 cookie
这块TM的删不掉 代码如下: // 自定义 js cookies var mycookie = { // 放置 set : function(name,value){ var Days = 1; // ...
- webform在页面生成的代码与事件回传
<script type="text/javascript"> //<![CDATA[ var theForm = document.forms['form1'] ...
- 解析好的静态页面.shtml浏览器无法解析.需要apache解析后再返回给浏览器
解析好的静态页面.shtml浏览器无法解析.需要apache解析后再返回给浏览器 让Apache支持SHTML(SSI)的配置方法 http.conf放开addtype text/html .shtm ...
- android网络编程之HttpUrlConnection的讲解--实现文件的断点上传
1.网络开发不要忘记在配置文件中添加访问网络的权限 <uses-permission android:name="android.permission.INTERNET"/& ...
- Bootstrap 3 与 Foundation 5
开发工程师, 使用 Bootstrap. 前端开发人员, 使用 Foundation. 我们来谈谈为什么. Bootstrap 与 Foundation 有许多关键的区别, 但是, 我想你只需要记住一 ...