Android的两种数据存储方式分析(一)

Android上常见的数据存储方式有哪些呢?

SharedPreferences这种存储数据的方式我们平时用的都对吗?

怎么使用SQLiteDatabase才是安全的?

带着这些问题,我们今天来深入分析一下SharedPreferences和database这两种Android上常见的数据持久化方式。

一、SharedPreferences

1、Preference和sharedPreferences是什么

Preference在Android上是首选项的意思,主要是指FrameWork上的各种UI组件,我们看一下Preference的各个子类:

preference的子类

它们一般用在PreferenceActivity中,当使用这些组件时,设置在组件中的数据会自动进行保存。
说的更加直白一些,Preference就是应用的设置界面。

SharedPreferences是用来存取Preference中设置的数据的,它是key-value键值对的形式存在,Android 3.0后又增加了StringSet的value形式,可以说SharedPreferences就是用来为Preference做数据持久化的。我们也来看看官方对它的说明:

SharedPreferences说明

从这个官方说明里我们注意到我们平时容易忽略的两点:(1)对于任何一类的preference(实际就是同一个preference name),SharedPreferences是唯一的;(2)SharedPreferences不支持多进程(这个我们接下来也会分析到)。

2、SharedPreferenced的内部实现

对于怎么使用SharedPreferences,我们就不多讨论了,这是Android最基本的一种数据存储方式了,如果你还不知道如何使用它,那你要保持低调了,不要让人知道你是一个Android的程序员,同时赶紧去找资料学习一下吧。

(1)数据存储格式

SharedPreferences的数据是以xml格式存储的;它的存储位置在我们应用程序私有文件目录下的shared_prefs中,每个preference_name会存储一个xml文件;同时,这些数据都是明文存储的,担心数据泄漏的,记得加密后再写入哦。

具体的文件存储目录是:/data/data/${packageName}/shared_prefs/

我们看一下SharedPreferences的get方法接口:

SharedPreferences get方法

从这里可以看出SharedPreferences只支持6种数据类型,分别是boolean,float,int,long,String和StringSet,基本StringSet还是在Android3.0后才加入。我们再来看看存储在xml中是什么样子:

pref文件中的形式

可以看出,xml中的标签也是对应的几个。

(2)数据载入和缓存

SharedPreferences会在第一次打开这个Preference时&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值