`

通过createDeviceProtectedStorageContext建立的SharePreference的存储位置

阅读更多
关于Direct Boot Mode[DBM]介绍可以参考如下文章
http://blog.csdn.net/huluboy/article/details/53397582

一般应用的SharePreference保存在/data/data/[package name]/shared_prefs目录,但通过createDeviceProtectedStorageContext建立的SharePreference是保存在/data/user_de/0/[package name]/shared_prefs目录。

当我们找不到SharePreference保存在哪,可以通过这个方法获取其路径
final File source = deviceContext.getSharedPreferencesPath(PreferenceManager.getDefaultSharedPreferencesName(deviceContext));
String absolutePath = source.getAbsolutePath();


使用例子是DeskClock
http://androidxref.com/7.1.1_r6/xref/packages/apps/DeskClock/src/com/android/deskclock/Utils.java

/**
* Return the default shared preferences.
*/
public static SharedPreferences getDefaultSharedPreferences(Context context) {
    final Context storageContext;
    if (isNOrLater()) {
        / All N devices have split storage areas, but we may need to
        // migrate existing preferences into the new device protected
        // storage area, which is where our data lives from now on.
        final Context deviceContext = context.createDeviceProtectedStorageContext();
            if (!deviceContext.moveSharedPreferencesFrom(context,
                    PreferenceManager.getDefaultSharedPreferencesName(context))) {
                LogUtils.wtf("Failed to migrate shared preferences");
            }
           storageContext = deviceContext;
        } else {
            storageContext = context;
        }

        return PreferenceManager.getDefaultSharedPreferences(storageContext);
    }
}


分享到:
评论

相关推荐

    sharePreference

    封装的一些关于sharePreference的方法

    SharePreference存储demo

    不同于文件的存储方式,SharePreference是使用键值对的方式来存储数据的。也就是说 当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以 通过键把相应的值取出来。

    SharePreference

    SharePreference是Android开发中用于持久化数据的一种轻量级存储方式。它主要用于存储用户设置或者应用的一些简单配置信息,如开关状态、偏好设置等。在Android系统中,SharePreference采用键值对(key-value pairs...

    SharePreference与File详解

    `SharePreference`是Android提供的一种轻量级的数据存储机制,主要用于存储简单的键值对数据,如布尔值、整型、浮点型、字符串等。这些数据通常以XML格式保存在设备的沙盒文件系统中,易于读写且持久化。 #### (1) ...

    sharepreference

    Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/...

    android4.0跨应用共享数据通过sharepreference

    要使SharedPreferences在多个应用之间可访问,我们需要将它的存储位置设置为一个公共的可读写目录,比如外部存储。在Android 4.0中,可以通过以下代码创建这样的SharedPreferences实例: ```java File ...

    Android 序列化对象存储到sharepreference

    这通常通过Base64编码来实现,因为SharedPreferences只能存储基本数据类型,例如String、int等。以下是实现这个功能的步骤: 1. 序列化对象:使用`ObjectOutputStream`将对象转换为字节数组。 2. Base64编码:使用`...

    sharepreference工具类

    很好用的工具类,使用sharepreference存储数据,节省程序员开发时间

    Sharepreference

    在Android开发中,`SharedPreferences` 是一个非常重要的轻量级数据存储机制,它主要用于存储一些简单的配置信息,如用户设置、应用状态等。这个“Sharepreference”主题涉及到的是对`SharedPreferences`进行代码...

    SharePreference音本应用

    在“SharePreference音本应用”中,描述提到通过`SharedPreferences`存储写入数据的次数,并且可以通过读取按键显示这个次数。这可能是一个简单的计数器应用,每次按键时增加计数,然后在界面上显示累计次数。这个...

    android跨应用sharepreference数据共享

    SharedPreferences是Android提供的一种轻量级的数据存储机制,它允许我们保存和读取简单的键值对数据,如字符串、整型、布尔值等。 首先,了解SharedPreferences的工作原理。SharedPreferences是基于XML文件存储的...

    百度定位并获取县区天气-XML+fragment+SharePreference.zip

    此工程较BaiduLocationXML相比: 1.植入fragment,结合微信UI 2.在原本主界面的button textview textview 移植到Fragment1 3.增加网络判断,网络不通的情况下做另外处理 4.在网络通畅的情况下,将地址信息、天气信息...

    sharepreference删除文件数据不会丢失.rar

    4. 可能还会探讨如何在应用更新时保持用户设置不变,这通常通过备份SharedPreferences到外部存储或云服务,然后在应用启动时检查并恢复实现。 如果你正在学习Android开发,了解SharedPreferences的使用以及它在数据...

    用SharePreferences做ContentProvider

    本篇文章将深入探讨如何利用 `SharedPreferences` 作为数据存储,并通过实现 `ContentProvider` 来实现不同应用间的数据共享。 `SharedPreferences` 是Android系统提供的一种轻量级的数据存储方式,常用于保存应用...

    SharePreference类似于JavaEE中的session

    在Android开发中,SharePreferences是用于存储轻量级数据的关键组件,它被广泛用来持久化应用的设置或用户偏好。SharePreferences与JavaEE中的session有某些相似之处,但它们的本质和用途有所不同。在这个讨论中,...

    Eclipse编写的Android SharePreference应用实例

    本教程将基于Eclipse IDE V4.2.0,通过一个实例详细讲解如何使用SharePreferences来实现数据的持久化存储。 **一、SharePreferences简介** SharePreferences通常用来存储一些简单的键值对数据,如字符串、整型、...

    android_save_data.rar_android_android 网络_sharepreference

    在Android应用开发中,数据保存是至关重要的环节,它涉及到应用程序的状态维护、用户偏好设置以及持久化数据存储。本教程将深入探讨Android程序中的三种主要数据存储方式:SQLite数据库、网络存储(HTTP-UPDATE)...

    Android Sharepreferences 登录示例demo 有注释,对初学者很有帮助

    首先,`SharePreferences`是一种持久化的存储方式,它通过XML文件存储键值对数据。这些文件通常位于应用的私有目录下,其他应用无法访问。在登录示例中,我们可以使用SharePreferences来保存用户的用户名和是否选择...

    四种Android数据存储方式

    SharePreference SQLite File ContentProvider Android系统中数据基本都是私有的,一般存放在“data/data/程序包名”目录下。如果要实现数据共享,正确的方式是使用ContentProvider。  SharedPreference ...

Global site tag (gtag.js) - Google Analytics