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

本文详细探讨了Android中的两种数据存储方式:SharedPreferences和SQLite。分析了SharedPreferences的内部实现,包括数据存储格式、数据载入缓存、数据写入以及多进程操作的问题。此外,还指出了SharedPreferences对主线程的影响及其使用注意事项,建议大量数据存储时选择SQLite以提高效率和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件中的形式

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值