实验二. Android的数据存储和IO——简单存储


实验目的

  • 了解 SharedPreferences 的使用方法;

实验环境

  • 硬件:CBT-EMB-MIP 实验平台,PC机;
  • 软件:Android Studio;

实验内容

  读取程序中保存的SharedPreferences信息。

实验原理

  SharedPreferences 是一种轻量级的数据保存方式,通过SharedPreferences可以将 NVP(Name/Value Pair,名称/值对)保存在 Android 的文件系统中,而且 SharedPreferences 完全屏蔽的对文件系统的操作过程,开发人员仅是通过调用 SharedPreferences 对 NVP 进行保存和读取。SharedPreferences不仅能够保存 数据,还能够实现不同应用程序间的数据共享 ,SharedPreferences 支持三种访问模式:

  • 私有(MODE_PRIVATE):仅有创建程序有权限对其进行读取或写入;
  • 全局读(MODE_WORLD_READABLE):不仅创建程序可以对其进行读取或写入,其他应用程序也读取操作的权限,但没有写入操作的权限;
  • 全局写(MODE_WORLD_WRITEABLE):创建程序和其他程序都可以对其进行写入操作,但没有读取的权限。

在使用 SharedPreferences 前,先定义 SharedPreferences 的访问模式。

下面的代码将访问模式定义为私有模式:

public static int MODE = MODE_PRIVATE;

有的时候需要将 SharedPreferences 的访问模式设定为即可以全局读,也可以全局写,这样就需要将两种模式写成下面的方式:

public static int MODE = Context.MODE_WORLD_READABLE + 
Context.MODE_WORLD_WRITEABLE;

定义完访问模式后,需定义 SharedPreferences 的名称,这个名称与在 Android 文件系统中保存的文件同名。因此,只要具有相同的 SharedPreferences 名称的 NVP 内容,都会保存在同一个文件中。

public static final String PREFERENCE_NAME = "SaveSetting";

为了可以使用 SharedPreferences,需要将访问模式和 SharedPreferences 名称作为参数,传递到 getSharedPreferences()函数,并获取到 SharedPreferences 对象。代码如下:

SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);

在获取到 SharedPreferences对象后,则可以通过SharedPreferences.Editor类 对SharedPreferences进行修改,最后调用 commit()函数保存修改内容。SharedPreferences 广泛支持各种基本数据类型,包括整型、布尔型、浮点型和长型等等。代码如下:

SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putString("Name", "Tom"); 
editor.putInt("Age", 20); 
editor.putFloat("Height", 180.0); 
editor.commit();

如果需要从已经保存的 SharedPreferences 中读取数据,同样是调用 getSharedPreferences()函数,并在函数的第 1 个参数中指明需要访问的 SharedPreferences 名称,最后通过 get()函数获取保存在 SharedPreferences 中的 NVP。代码如下:

SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE); 
String name = sharedPreferences.getString("Name","Default Name"); 
int age = sharedPreferences.getInt("Age", 20); 
float height = sharedPreferences.getFloat("Height",180.0);

实验步骤

  下面将通过 SimplePreferenceDemo 示例具体说明 SharedPreferences 的文件保存位置和保存格式及其读取:

导入工程源码

  1. 打开Android Studio,从菜单栏选择 File > Open
  2. 弹窗中浏览选择光盘src目录下的Gradle工程 CH03_SDK ,点击OK导入。
  3. 等待工程构建完成后,在工具栏中的Android App列表中选择本实验例程CH03_02_SimplePreferenceDemo

演示运行

程序运行界面如图5.2.1所示:

图5.2.1

  • 在界面上输入信息后,然后退出,即关闭Activity时 SharedPreferences 进行保存,当在应用程序中找到这个应用重新开启时,保存在 SharedPreferences 的信息将被读出来,并重新呈现在用户界面上。

图5.2.2

  • SharedPreferences是以XML的格式被自动保存的,实例运行后,在DDMS中的File Explorer相应目录/data/data//shared_prefs下可以看到一个叫 SETTING_infos.xml,如图5.2.3所示: Android Studio中DDMS打开方法:

通过 Tools > Android > Android Device Monitor打开。

图5.2.3

  • 在DDMS界面中将 SETTING_infos.xml 导出至本地。点击右上角Pull图标保存,如图5.2.4所示操作

图5.2.4

查看其代码如下:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<float name="HEIGHT" value="1.6" />
<string name="NAME"> 张三</string>
</map>

results matching ""

    No results matching ""