Android数据存储方式,包括下面四种:

1. Shared Preferences:用来存储"key-value"paires格式的数据,它是一个轻量级的键值存储机制,只可以存储基本的数据类型。

主要用于系统配置信息的配置,例如:检测是不是第一次使用应用程序;设置的音效开关等。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。

2. Fils:它通过FileInputStream 和FileOutputStream对文件进行操作。但是文件Files在Android中是属于一个程序私有的,其他程序无法读写其他应用的文件。即无法实现共享。

3. SQLite:Android提供的标准的数据库,支持SQL语句。SQLite是一个开源的关系型数据库,与普通的关系型数据库一样。

4. Network:通过网络来存储和获得数据。将数据存储于网络,需要使用java.net.*和android.net.*这些类。

Shared Preferences

对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?

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

A、存放数据信息

1、打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、让setting处于编辑状态

SharedPreferences.Editor editor = settings.edit();

3、存放数据

editor.putString(“name”,”ATAAW”);
editor.putString(“URL”,”ATAAW.COM”);

4、完成提交

editor.commit();

B、读取数据信息

1、获取Preferences

SharedPreferences settings = getSharedPreferences(“setting”, 0);

2、取出数据

String name = settings.getString(“name”,”默认值”);
String url = setting.getString(“URL”,”default”);

以上就是Android中SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看:

DDMS->File Explorer /<package name>/shared_prefs/setting.xml

 
再来一个例子:
 
SharedPreferences sharedPreferences = getSharedPreferences("zyj", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "老李");
editor.putInt("age", 4);
editor.commit();//提交修改
生成的zyj.xml文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">老李</string>
<int name="age" value="4" />
</map>

下面来一个实例,用于判断是不是第一次使用应用程序,如果是第一次使用,则要求用户输入姓名、住址信息,如果不是第一次使用,则不需要输入这些信息。

Android 数据分析系列一:sharedPreferences的更多相关文章

  1. Android数据存储-通过SharedPreferences实现记住密码的操作

    在Android中登陆中,为了实现用户的方便,往往需要根据用户的需要进行记住密码的操作,所以,在Android数据存储中SharedPreferences恰恰可以实现这一点 下面,小编将带领大家通过S ...

  2. Android拓展系列(11)--打造Windows下便携的Android源码阅读环境

    因为EXT和NTFS格式的差异,我一直对于windows下阅读Android源码感到不满. 前几天,想把最新的android5.0的源码下下来研究一下,而平时日常使用的又是windows环境,于是专门 ...

  3. Android学习系列(37)--App调试内存泄露之Context篇(下)

    接着<Android学习系列(36)--App调试内存泄露之Context篇(上)>继续分析. 5. AsyncTask对象 我N年前去盛大面过一次试,当时面试官极力推荐我使用AsyncT ...

  4. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  5. Android UI系列-----时间、日期、Toasts和进度条Dialog

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内 ...

  6. 【Android进阶系列教程】前言

    起因 因为初学Android的时候还没有写博客的意识,现在Android的门是入了,正在进阶的道路上行走,但是就这一路也走了不少的弯路.我想,总得来说Android入门还是比较容易的,网络资源比较丰富 ...

  7. Android Studio系列教程六--Gradle多渠道打包

    Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...

  8. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  9. Android Studio系列教程四--Gradle基础

    Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...

随机推荐

  1. MySql安装完成后设置远程访问的角本

    一.方法: 登陆安装Mysql的机器的Mysql, 执行: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password001!' ...

  2. Linux(CentOS)中使用Mono+jexus部署Asp.net4.5网站

    一.效果: 二.安装步骤: 1.安装系统CentOS,我这是用CentOs7测试的. 2.接下来安装libgdiplus.Mono.Jexus有问题可以参考安装工具的官网: Libgdiplus下载官 ...

  3. tornado url配置

    Note tornado是支持虚拟主机的,在同一端口上根据域名区分app http://www.tornadoweb.org/en/stable/web.html#application-config ...

  4. CentOS7系统安装Nginx进行跨域处理

    1 打开终端 依次输入以下命令: yum install nginx vi /etc/nginx/nginx.conf 然后编辑修改该文件中代码,以下是修改后的代码全文: # For more inf ...

  5. 使用Flask+MongoDB实现基于REST的接口简单操作

    目录 前言 1 准备工作 2 具体实现 前言 最近在捣鼓如何使用阿里云服务器搭建一个简单的基于Flask框架的后端接口,刚开始为了图方便,就直接买了一个Windows Server 2008系统服务器 ...

  6. java动态代理_aop

    (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理.日志.计算方法的运行时间.事务管理等等,如何去做? 解答:编写一个与目标类具有相同接口的代理类 ...

  7. Percona-XtraBackup系列一:安装 perl(Time::HiRes) is needed by percona-xtrabackup-2.2.10-1.el6.x86_64

    1:在percona官网下载最新的Xtrabackup http://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/bi ...

  8. 阅读《Android 从入门到精通》(9)——多项选择

    多项选择(CheckBox) CheckBox 类是 Button 的子类,层次关系例如以下: android.widget.Button android.widget.CompoundButton ...

  9. Java多线程中的内存模型

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6536131.html  一:现代计算机的高速缓存 在计算机组成原理中讲到,现代计算机为了匹配 计算机存储设备的 ...

  10. 【shell】各种括号()、(())、[]、[[]]、{}的使用

    圆括号 1.单圆括号() ①命令组,括号中的命令将会开启一个子shell独立运行:括号中以分号连接,最后一个命令不需要;各命令和括号无需空格 Linux:/qins # (var=1;echo $va ...