• Android acache读后感


      今天了解到了一个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的强软弱虚。

      每天进步一点点~

  • 相关阅读:
    mysql学习【第4篇】:数据库之数据类型
    mysql学习【第3篇】:数据库之增删改查操作
    mysql学习【第2篇】:基本操作和存储引擎
    mysql学习【第1篇】:数据库安装
    模块
    面向对象 之 反射 内置方法
    面向对象 的属性 类方法 静态方法
    python day
    day 18 面向对象的 继承
    python day
  • 原文地址:https://www.cnblogs.com/zhangyan-2015/p/4955013.html
Copyright © 2020-2023  润新知