今天了解到了一个android轻量级的开源缓存框架,(github:https://github.com/yangfuhai/ASimpleCache),花了一点时间研究了一下源代码,大概的思路就是每个缓存目录对应一个Acache类,通过mInstanceMap关联(个人觉得这个主要是减少对象的创建吧,源码上用的hashmap,不过我感觉可以用weakmap), 这个框架可以设定缓存的时间,其实就是每个缓存对应一个文件,缓存文件的格式为 “写入内容时的时间-设置的缓存时间(mSeparator)缓存内容”, mSeparator为定义的分割符,每次读缓存的时候会解析这个格式,从而获得缓存存入的时间和设定的有效期限,如果读缓存时的系统时间>写入缓存时的时间+缓存设置的时间,那么就认为缓存过期,删除这个缓存文件,然后返回null,反之则返回具体内容, 这个框架封装的蛮好的,不过有个地方比较坑,就是acache.getAsString()方法,里面的实现用的FileReader和bufferedReader,导致字符串的换行符没有了,并且当字符串很多时这段代码的效率很低,我测试了9000行的缓存,结果读了超过7秒,后来我把这改成了FileInputStream的方式,结果效率明显提高了0.0..,不过这些都是小问题,Acache里面提供了很多方法,可以缓存bitmap, object, 等等, 框架介绍是线程安全的,但是我没有看明白为何(大概我还远远不过吧)?

  总之今天看这个开源框架收获蛮多的,作者写代码的方式思路给我提供了一些灵感,在这向所有具有开源精神的人表示感谢!今天还顺便复习了一下java的强软弱虚。

  每天进步一点点~

转载于:https://www.cnblogs.com/zhangyan-2015/p/4955013.html

Android acache读后感相关推荐

  1. 深入理解android的读后感_如何写好读后感

    很多同学刚开始接触读后感,都不知道该如何选材,概括多,感想少,"头重脚轻",抓不住重点.要学会写读后感,最基本的就是掌握方法. 什么是读后感呢?把读一篇文章或一本书的感想写下来,就 ...

  2. 深入理解android的读后感_《陪孩子长大》读后感

    <陪孩子长大>读后感 看完一本名著后,相信大家都积累了属于自己的读书感悟,记录下来很重要哦,一起来写一篇读后感吧.那么读后感到底应该怎么写呢?以下是小编帮大家整理的<陪孩子长大> ...

  3. 第一行代码android的读后感,《第一行代码Android》读书笔记

    自学android一段时间了,一开始是看看视频,跟着打打代码,后来也有跟着团队一起做项目,一直都很零散,并没有真正系统的学习过,虽然能跟得上项目,但总觉得基础不牢固扎实,之前有读过郭霖老师博客里的几篇 ...

  4. 第一行代码android的读后感,《第一行代码》读书笔记

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? TextView 我们使用android:gravity 来指定文字的对齐方式,可选值有top.bottom.left. ...

  5. 深入理解android的读后感_何捷“读后感”写作指导的多层递进与指令词指引

    小学语文名师 小学语文老师de微信公众号 于茫茫书海中,为你寻找更适合自己成长的有效资源和那些锲入心灵的文字.与高人交心,轻松学习,把时间留给更重要的人更重要的事. 喜欢我记得点击右上方的三个点,给我 ...

  6. 深入浅出Google Android这本书怎么样

    关于深入浅出Google Android 评论 读后感:对入门的知识讲的很详细,近乎罗嗦,例子比较少而且不够吸引人. 读后感:我还没收到货呢,昨天下午发的货,应该今天能到,因为是周末,我待会儿要回家, ...

  7. 第二章:搭建Android开发环境(读后感)

    在此章节中只要介绍了Android底层开发环境的搭建,其中包括了Android应用程序开发环境.Android NDK开发环境和交叉编译环境的搭建! 1:JDK的安装 (1)下载JDK的压缩包(tar ...

  8. Android深度探索(卷1)HAL与驱动开发读后感---第四章

    第4章  源代码的下载和编译 4.1  下载.编译和测试Android源代码     主要学习了:配置源代码的下载环境,Android源代码目录结构解析,下载Android源代码中的一部分,编译And ...

  9. Android深度探索读后感第二章

    第二章 搭建Android开发环境 Android底层开发的环境,主要包括:Android应用程序开发环境,Android  NDK开发环境和交叉编译环境的搭建. Android应用程序开发环境:第一 ...

最新文章

  1. 华为《5G业务商业价值评估》白皮书!
  2. matlab二重定积分_怎样用matlab求二重积分?
  3. python怎么输入文件数据库_python学习日记——文件及数据库
  4. 西安下雪了,做了一个室内温度计
  5. 快速排序 (随机选择pivot)
  6. ggplot2 | 坐标标度函数、坐标系统函数
  7. C++ Qt学习笔记(2)简易计算器设计(为计算器添加菜单功能)
  8. android之uniapp弹出activity
  9. 再回首,Java温故知新(六):Java基础之变量
  10. CentOS7+rsync+sersync实现数据实时同步
  11. html网页代码入门,html 网页入门(示例代码)
  12. 一键提取app源码_【补发】自动答题脚本教程及源码分享(无视分辨率)
  13. 60个Java练手项目案例,看了让你茅塞顿开~
  14. 【OpenDDS开发指南V3.20】第一章:介绍
  15. 红米6 Pro开启ROOT权限的教程
  16. python打开pcap文件_python 抓包保存为pcap文件并解析的实例
  17. 如何把网站程序文件快速上传到服务器空间经历分享
  18. 小程序开发笔记(二):微信小程序富文本编辑器editor的使用
  19. 决定局域网特性的三要素是什么
  20. GetAsyncKeyState用法

热门文章

  1. 【CodeForces - 260C】Balls and Boxes (思维模拟,有坑,时光倒流)
  2. java 命令行 编译 jar文件_用命令行编译java并生成可执行的jar包
  3. html中超链接使用_干货 | HTML中表格的使用方法
  4. * 完成随机点名案例;学生姓名都提前写在文件中;:每次敲回车,随机显示一个学生姓名,每人最多显示一次,所有人都显示完了就结束程序;
  5. 队列的顺序数组c语言代码,队列-队列的顺序表示和实现
  6. leetcode628. 三个数的最大乘积(简单,我觉得你不会)
  7. leetcode867. 转置矩阵
  8. Lua 与 C混合编程 .
  9. 纠偏的意思_承压能力和纠偏能力,决定成长的高度
  10. ansible 修改文件变量_Ansible Playbook中的变量与引用