编写PreferencesUtils工具类可以简单对象(可以缓存对象中所有public的简单属性)

 
另外研究了Preference存储与直接采用对象文件缓存方式的区别
第一次写文件时
1、效率,直接缓存对象文件比Preference快
2、大小,直接缓存对象文件比Preference文件小
3、缓存目录不同,Preference缓存在shared_prefs下,对象文件则根据我们的设置可以选择目录
在设置中有两个操作
清除缓存:会将data/应用程序/caches目录下的文件删除
清除数据:会将除lib目录下的所有文件删除,包括shared_prefs
 
意味着,如果我们缓存对象文件时选择的目录不是caches下,采用files或其它目录,其与preference这仅有的劣势也消失了
 
为什么Preference操作比对象流慢,文件大。本质上都是读写文件操作,但是Preference采用的是xml形式存储,这就意味着有多余的节点和多余的转换。
 
第二次加载的时候由于SharedPreferencesImpl 在ContextImpl中采取了Map对SharedPreferenceImpl进行缓存,所以它会表现得非常快。
 
接下来要讨论的就是SharedPreference的存储原理,看看其缓存机制是否适合经常更改的内容的对象。
 
源码下载地址:https://github.com/AltasT/PreferenceVObjectFile
https://github.com/AltasT/PreferenceVObjectFile/archive/master.zip
 
https://github.com/AltasT/PreferenceVObjectFile
http://blog.csdn.net/wxyyxc1992/article/details/17222841

使用SharedPreference和对象流存储对象的更多相关文章

  1. java --对象流与对象的序列化

    对象流 ObjectInputStream ObjectOutputStream类分别是InputStream和OutputStream的子类,对象输出流使用writeObject(Object ob ...

  2. Java对象流的使用

    为了让对象持久化(把对象存储到本地),可以使用java的对象流处理对象,把对象的内容写到本地存储的文件中,也可以从本地文件中读取出来.也就是常说的序列化和反序列化 主要用到了ObjectInputSt ...

  3. 动车上的书摘-java对象流与序列化

    摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 钢笔不限贵便宜,书法是来自心对手的交流.-泥沙砖瓦浆木匠 一.对 ...

  4. IO Streams:对象流

    简介 正如数据流支持原始数据类型的I / O一样,对象流支持对象的I / O.标准类中的大多数但不是全部都支持对象的序列化.那些实现标记接口Serializable的那些. 对象流类是ObjectIn ...

  5. 对象流,它们是一对高级流,负责即将java对象与字节之间在读写的过程中进行转换。 * java.io.ObjectOutputStream * java.io.ObjectInputStream

    package seday06; import java.io.Serializable;import java.util.Arrays; /** * @author xingsir * 使用当前类来 ...

  6. COM结构化存储中存储对象或者流对象的命名规则

      COM结构化存储中存储对象或者流对象的命名规则

  7. Java IO7:管道流、对象流

    前言 前面的文章主要讲了文件字符输入流FileWriter.文件字符输出流FileReader.文件字节输出流FileOutputStream.文件字节输入流FileInputStream,这些都是常 ...

  8. I/O 流和对象序列化

    一.I/O 流(java 如何实现与外界数据的交流) 流定义: 任何有能力产出数据的数据源对象或者有能力接收数据的数据源对象.他屏蔽了实际的I/O设备处理数据的细节. 1.Input/Output:指 ...

  9. java 存储对象

    一.存储区域: 1)寄存器.这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部.但是寄存器的数量极其有限,所以寄存器根据需求进行分配.你不能直接控制,也不能在程序中感觉到寄存器存在的任何 ...

随机推荐

  1. 030.Zabbix分布式部署

    一 分布式Zabbix介绍 zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix se ...

  2. Java定时线程池停止超时任务

    一.背景题主最近遇到一个问题,本来通过ScheduledExecutorService线程池定时调度一个任务.奈何不知道为啥跑了2个多月,其中一个任务Hang住了,原本定时的任务则出现了问题. 关于定 ...

  3. 一个新的Android Studio 2.3.3可以在稳定的频道中使用。A new Android Studio 2.3.3 is available in the stable channel.

    作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com 一个新的Android Studio 2.3 ...

  4. SPOJTLE - Time Limit Exceeded(高维前缀和)

    题意 题目链接 题目的意思是给一个数组C,长度为n,每个数字的范围是2^m,然后要求构造一个数组a,满足 1.a[i] % C[i] !=0 ; 2.a[i] < 2^m ; 3.a[i] &a ...

  5. [CF920G]List Of Integers

    Description: \(t\)组询问,求第\(k\)个大于\(x\)且与\(p\)互质的数 Hint: \(x,k,p<=1e6,t<=30000\) Solution: 推出式子后 ...

  6. innodb文件

    参数文件 日志文件 socket文件 pid文件 mysql表结构文件 存储引擎文件 1. 错误日志 启用错误日志方法 /etc/init.d/mysql启动文件中 /usr/bin/mysqld_s ...

  7. Compile SQLite3 from individual files

    下载非Amalgamation SQLite3源码 安装tcl, apt-get instal tcl 解压 mkdir build cd build ../configure make #make ...

  8. JDBC(5)—DatabaseMetaData

    1.简介: 使用元数据已实现通用的查询方法.元数据介绍:使用jdbc获得连接之后,得到一个Connection对象,可以通过这个对象获得DataBaseMetaData对象,该对象可以获得有关数据库管 ...

  9. Window Server 2008 R2系统备份

    1.安装Backup 2.打开Backup工具 3.一次性备份 下一步

  10. mock获取入参数并动态设置返回值

    /*   * Copyright (c) 2007 Mockito contributors   * This program is made available under the terms of ...