android SharePreference底层原理

SharedPreFerences作为Android存储数据方式之一,特点:
1)只支持java基本数据类型
2)在应用内数据共享
3)使用简单

SharedPreferences 使用及原理详情
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据
SharedPrefences只能保存java基本数据类型,一般会将复杂类型的数据转换成base64编码
然后将转换后的数据以字符串形式保存在xml文件中,在使用sharedpreferences保存,

使用sharedpreferences保存key-values的步骤:
1)使用activity类的getSharedPreferences方法获得SharedPreference对象,
2)使用sharedpreferences接口的edit获得Sharedpreferences.Editor对象
3)通过sharedpreferences.editor接口的putXxx方法保存键值对,
4)通过Sharedpreferences.editor接口的commit()方法保存键值对

SharedPrefereces内部工作原理
调用getSharedPreferences();创建一个SharedPreferences对象,其中会先判断是否存在对应
xml文件,如果发生存在则会有一个预加载操作,这个操作把xml文件的内容通过I/O流操作和xmlUtil
解析后存入一个map对象中,多以我们调用Sharedprefernces::getString;get操作实际上是不会
对文件做I/O操作,而是直接访问刚刚的map集合内容,这提高了效率,如果对应的xml不存在则重新
创建一个对应xml文件
put写操作:分为两个步骤,
1)把数据先写入内存中,map集合中,
2)把数据写入硬盘文件中,保证数据的完整性
写操作有两个提交方式:
1)commit():线程安全,性能慢,一般来说在当线程完成写文件操作(有返回值)
2)apply();线程不安全,性能高,异步处理I/O操作,一定会把这个写文件放入一个SingleThreadExecutor线程池中(无返回值)

SharedPreferences在第一次创建后会一直维持一个singletop,每次调用getSharedpreferences()都会返回一个唯一的实例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值