Android数据存储原理分析 (一)

版权声明:本文为博主原创文章,未经博主允许不得转载。

https://blog.csdn.net/susan_123456/article/details/92794337

Android上常见的数据存储方式为:

   

SharedPreferences是 Android 中比较常用的存储方法,本篇将从源码角度带大家分析一下Android中常用的轻量级数据存储工具SharedPreferences。


1.什么是SharedPreferences?官方说法为:

 

  • 它可以用来存储一些比较小的键值对集合;
  • 对于任何一类的preference,SharedPreferences是唯一的;
  • 会影响到主线程,造成卡顿,甚至造成anr; 
  • SharedPreferences不支持多进程;

2.SharedPreferences常用使用方法:

1)将数据保存至SharedPreferences

/*
 *Context.MODE_PRIVATE: 默认操作模式,代表该文件是私有数据,只能被应用本身访问, 在该模式下,写入 
 *的内容会覆盖原文件的内容
 *Context.MODE_APPEND: 该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件
 *Context.MODE_WORLD_READABLE: 当前文件可以被其他应用读取
 *Context.MODE_WORLD_WRITEABLE:当前文件可以被其他应用写入  
 */
SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name="测试";
editor.putString("name", name);
editor.commit(); 

2)从SharedPreferences读取数据

SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
String name=preferences.getString("name", "123");

3.1 获取getSharedPreferences对象,做了哪些操作?

以下节选至ContextImpl.getSharedPreferences源码片段:

  @Override
    public SharedPreferences getSharedPreferences(String name, int mode) {
        // At least one application in the world actually passes in a null
        // name.  This happened to work because when we generated the file name
        // we would stringify it to "null.xml".  Nice.
        if (mPackageInfo.getApplicationInfo().targetSdkVersion <
                Build.VERSION_CODES.KITKAT) {
            if (name == null) {
                name = "null";
            }
        }

        File file;
        synchronized 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值