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 优化的代码:

    1. public class HolderAdapter<E> extends AbstractAdapter<E> {
    2. public HolderAdapter(LayoutInflater inflater, ViewCreator<E> creator) {
    3. super(inflater, creator);
    4. }
    5. private static class ViewHolder{
    6. public View view;
    7. }
    8. @Override
    9. public View getView(int position, View convertView, ViewGroup parent) {
    10. // Holder View模式实现
    11. if (convertView == null) {
    12. ViewHolder holder = new ViewHolder();
    13. convertView = mCreator.createView(mInflater, position,getItem(position));
    14. holder.view = convertView;
    15. convertView.setTag(holder);
    16. } else {
    17. ViewHolder holder = (ViewHolder) convertView.getTag();
    18. //释放当前的View的数据
    19. mCreator.releaseView(convertView,  getItem(position));
    20. //将新数据更新到HodlerView中
    21. mCreator.updateView(holder.view, position, getItem(position));
    22. }
    23. return convertView;
    24. }
    25. }

Android, BaseAdapter 处理大数据量时的优化的更多相关文章

  1. 大数据量时Mysql的优化

    (转自网络) 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求.这个时候NoSQL的出现暂时 ...

  2. sql大数据量查询的优化技巧

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. MySQL大数据量分页性能优化

    mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1.   直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...

  4. 任何抛开业务谈大数据量的sql优化都是瞎扯

    周三去某在线旅游公司面试.被问到了一个关于数据量大的优化问题.问题是:一个主外键关联表,主表有一百万数据,外键关联表有一千万的数据,要求做一个连接. 本人接触过单表数据量最大的就是将近两亿行历史数据( ...

  5. 大数据量时 Mysql LIMIT如何正确对其进行优化(转载)

    以下的文章主要是对Mysql LIMIT简单介绍,我们大家都知道LIMIT子句一般是用来限制SELECT语句返回的实际行数.LIMIT取1个或是2个数字参数,如果给定的是2个参数,第一个指定要返回的第 ...

  6. 【原创】大数据量时生成DataFrame避免使用效率低的append方法

      转载请注明出处:https://www.cnblogs.com/oceanicstar/p/10900332.html      ★append方法可以很方便地拼接两个DataFrame df1. ...

  7. mysql大数据量之limit优化

    背景:当数据库里面的数据达到几百万条上千万条的时候,如果要分页的时候(不过一般分页不会有这么多),如果业务要求这么做那我们需要如何解决呢?我用的本地一个自己生产的一张表有五百多万的表,来进行测试,表名 ...

  8. .net WebService 大数据量时性能的提高

    1.直接返回DataSet对象 [WebMethod(Description = "直接返回DataSet对象")] public DataSet GetUserListDateS ...

  9. Kendo UI中TreeView 放入tabstrip中,大数据量时超过边框的解决方案。

    参考http://www.kendoui.com/forums/ui/tabstrip/tabstip-with-treeview-treeview-breaking-out-of-tabstrip. ...

随机推荐

  1. Flask -- 会话

    会话session 在不同请求间存储特定用户的信息.它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名.这意味着用户可以查看你 Cookie 的内容,但却不能修改它,除非用户 ...

  2. android开发注意点

    一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能 ...

  3. java代码中 路径符号的写法

    String path="D:\\新建文件夹\\2.png"; File file=new File(path); System.out.println(file.exists() ...

  4. Go-file

    两个包具有文件操作的相关方法,一个是os,一个是syscall,其中os中的相关方法是对syscall相关方法的封装,推荐使用os中的相关方法.文件的打开文件的第一步操作实际上是创建,但是由于文件的打 ...

  5. Centos下 Nginx安装与配置

    网上找了好多资料.都很难找全,这里以这个目录为主,进行备注. Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.它最常的用途是提供 ...

  6. 安卓srcCompat弄死我了

    <ImageView android:layout_width="150dp" android:layout_height="120dp" app:src ...

  7. screen 链接远程桌面

    screen     开一个新的screen窗口 screen -ls 查看已经存在的所有screen窗口 screen -r  208111  进入这个窗口 ctrl+a+d  退出screen,回 ...

  8. mysql日志详细解析【转载】

    转自:http://pangge.blog.51cto.com/6013757/1319304 MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 日志是mysql数据 ...

  9. Java多态(一)

    父类: public class Parent { public String name; private String pass; public void say1(AA aa){ System.o ...

  10. byte数组转16进制 输出到文件

    try { File file = new File(Environment.getExternalStorageDirectory(),"shuju2"); if(!file.e ...