zoukankan      html  css  js  c++  java
  • 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的强软弱虚。

      每天进步一点点~

  • 相关阅读:
    rust 宏
    umi 调试
    rust 编译器工作流
    rust 神奇的特质
    rust 生命周期2
    rust 函数-生命周期
    rust 九九乘法表
    rust 代码生成选项
    rust 编码模式
    恢复到版本并销毁之后的git提交记录
  • 原文地址:https://www.cnblogs.com/zhangyan-2015/p/4955013.html
Copyright © 2011-2022 走看看