`
jackliao
  • 浏览: 77909 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android平台上四种保存数据的方法

阅读更多

        对于我们所熟悉的大部分软件都有一个比较典型的特点,应用现有的数据根据不同的需求来得到相应的结果。例如,我们最常用的Office word、Excel、PowerPoint等办公软件,它们都是帮助我们完成某种特定的需求,同时由其所产生的数据或者文档又可以被其它软件所读取和做进一步的优化等等,在这个层面上可以看成是这些软件通过相同的文件标准来共享数据。但是对于Android最大的不同点在于,其平台上的应用软件所存储的数据或者文件是私有,仅仅可以通过它自身才可以访问其所包含的数据资源。
那么基于这样的限制,该如何在Android平台上实现不同程序间的数据共享呢?答案非常简单 – 应用Content Providers,这是建立在Android平台上用于定义统一的数据标准。Android提供了针对不同数据类型的Content Providers来满足各种需要。例如:Image、Audio、Video和通讯录信息类等。阅读下边的文档之前,最好先熟悉Content Providers的概念。

有了上边所提到Content Providers,接下来就要处理在共享文件过程中的存储环节了,这里有四种方法分别适用于不同情况的需求。它们都各自有相应的优缺点,所以当开发者决定选择应用哪种方法之前,先要考虑当前所操作的情况是否适合于所选择的方法。

  • Preferences
  • Files
  • Databases
  • Network

接下来将依次介绍上诉四个方法:

Preferences

从其保存数据的结构来分析,这是一个相对较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置。通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。

通过一个实例来了解实际使用方法:

01 import android.app.<A title=Activity href="http://www.androidres.com/index.php/2009/02/09/activity/">Activity</A>;
02 import android.content.SharedPreferences;
03   
04 public class Calc extends Activity {
05 public static final String PREFS_NAME = "MyPrefsFile";
06     . . .      
07   
08     @Override
09     protected void onCreate(<A title=Bundle href="http://developer.android.com/reference/android/os/Bundle.html" target=_blank>Bundle</A> state){
10        super.onCreate(state);
11   
12     . . .
13   
14        // Restore preferences
15        SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
16        boolean silent = settings.getBoolean("silentMode", false);
17        setSilent(silent);
18     }
19   
20     @Override
21     protected void onStop(){
22        super.onStop();
23   
24       // Save user preferences. We need an Editor object to
25       // make changes. All objects are from android.context.Context
26       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
27       SharedPreferences.Editor editor = settings.edit();
28       editor.putBoolean("silentMode", mSilentMode);
29   
30       // Don't forget to commit your edits!!!
31       editor.commit();
32     }
33 }

Files

从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。

写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。

读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。

(注意:在其它程序中将无法应用相同的路径和文件名来操作文件)

另外编译程序之前,在res/raw/tempFile中建立一个static文件,这样可以在程序中通过Resources.openRawResource (R.raw.myDataFile)方法同样返回一个InputStream对象,直接读取文件内容。

 

Databases

在Android API中包括了应用SQLite databases的接口,每个程序所创建的数据库都是私有的,换句话说,程序间无法相互访问对方的数据库。

在程序中创建SQLiteDatabase对象,其中包含了大部分与database交互的方法,例如:读取数据或者管理当前数据。可以应用SQLiteDatabase和其subClassSQLiteOpenHelper的create()方法来创建新的数据库。

对于SQLite database而言,其强大和方便的功能为Android提供了强有力的存储功能。特别是存储一些复杂的数据结构,例如:Android特别为通讯录创建了特有的数据类型,其中包含了非常多的子集而且涵盖了大部分的数据类型 “First Name” “Last Name” “Phone Number”和“Photo”等。

Android可以通过Sqlite3 database tool来查看指定数据库中表的内容,直接运行SQL命令来快速便捷的直接操作SQLite database,参考 Examine databases (sqlite3)了解更多内容。

数据库在设备中保存的地址是 /data/data/package_name/databases

 

Network

通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所以相对存在一些限制。下面列出了两个用于相关操作的类:

以上是四种常用于针对Android平台来存储和读取数据的方法。

 

转至:www.getideas.cn

分享到:
评论

相关推荐

    android数据存储的四种方式

    本文将详细介绍Android中的四种主要数据存储方式:SharedPreferences、File、SQLite数据库以及网络存储。 1. SharedPreferences: SharedPreferences是Android提供的一种轻量级的数据存储方式,适合存储用户偏好...

    Android数据保存

    本主题将深入探讨Android中的四种主要数据保存方法:内部文件存储、外部SD卡存储、首选项(SharedPreferences)存储以及SQLite数据库存储。 1. **内部文件存储** Android提供了一种方式来在应用的私有目录中保存...

    Android实现数据存储技术

    网络存储是 Android 平台上的一种数据存储方式,主要用于存储数据到服务器上。网络存储的优点是可以实时同步数据,多平台共享数据,但其缺点是需要网络连接,数据传输不安全。 Android 中的数据存储方式有多种,每...

    Android之SharedPreferences数据保存

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,用于存储简单的键值对数据,如布尔值、整型、浮点型、字符串等。本资源将通过一个具体的例子来介绍如何使用SharedPreferences进行数据保存。 ...

    Android保存数据的四种方法[借鉴].pdf

    以下将详细介绍Android保存数据的四种常见方法:Preferences、Files、Databases和Network。 1. Preferences: Preferences通常用于存储轻量级的配置数据,如应用的设置参数。它们类似于ini文件,适合作为保存用户...

    android下的串口读写及数据保存

    在Android平台上进行串口通信是开发物联网或者嵌入式设备应用时常见的需求。"android下的串口读写及数据保存"这个主题涵盖了Android系统中如何与串行端口交互以及如何处理接收到的数据并将其保存到文件的关键技术点...

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用程序的简单配置信息,如用户设置、偏好设置等。它采用键值对的形式存储,支持基本数据类型如布尔型、整型、浮点型、字符串等。数据持久化在...

    android ViewModel保存数据使用

    在Android应用开发中,ViewModel是Android Architecture Components库的一部分,它为Activity和Fragment提供了一种有效管理数据的方式,即使设备旋转或者应用被系统杀死后,ViewModel中的数据也能保持存活。...

    Android 本地保存数据

    本教程将引导您了解如何在Android设备上保存和查询本地数据,这对于新手开发者来说是一个很好的起点。 Android提供了多种本地数据存储机制,包括Shared Preferences、内部存储、外部存储、SQLite数据库以及最近引入...

    Android Gps 获取Nmea 数据.rar

    本教程将详细讲解如何在Android 11上获取并处理NMEA数据。 1. **NMEA数据格式** NMEA数据是一系列由逗号分隔的字符串,每个字符串以"$"开头,以"\r\n"结尾。常见的NMEA语句如$GPGGA、$GPGLL等,每种语句代表不同的...

    四种Android数据存储方式

    Android系统提供了四种主要的数据存储方式,分别是SharedPreference、SQLite、File和ContentProvider。下面我们将详细探讨这些方法。 **1. SharedPreference** SharedPreference是Android中最简单、最常用的轻量级...

    Android数据储存

    它是一种轻量级的存储方案,数据以XML格式存储在磁盘上,易于读写。 2. 文件存储:可以创建自定义格式的文件来保存数据,如文本文件、JSON或XML文件。对于小量结构化数据,文件存储是一个不错的选择。 3. SQLite...

    android ini文件 sharePrefernces 保存数据

    `SharedPreferences`是Android系统提供的一种轻量级的数据存储机制,常用于保存应用程序中的配置信息或用户设置。它以键值对(key-value pairs)的形式来存储数据,支持基本数据类型如布尔、整型、浮点型、字符串等...

    Android应用源码之数据的储存与读取.zip

    在Android应用开发中,数据的储存与读取是不可或缺的一部分,它涉及到应用程序的状态保存、用户数据持久化以及应用间的数据共享。本资料包主要探讨了Android中如何进行数据存储,包括基本的文件存储、...

    Android将数据导出为excel文件的方法

    在Android开发中,有时我们需要将应用中的数据导出到Excel文件,以便用户可以方便地查看、编辑或分享。本文将详细介绍如何在Android中实现这一功能,主要涉及的技术点包括文件操作、数据序列化以及第三方库的使用。 ...

    Android的SQLite中DateTime类型数据的存取问题

    Android 平台中的 SQLite 数据库在存储 DateTime 类型的数据时会遇到一些问题。本文将详细介绍这些问题和解决方案。 日期类型数据的存储问题 ------------------------- 在 SQLite 中,日期类型数据的存储方式有...

    Android 获得传感器的数据保存在SD卡中

    在Android平台上,获取传感器数据并将其保存到SD卡是一个常见的需求,这有助于用户记录设备的运动状态、环境信息等。本项目"Android 获得传感器的数据保存在SD卡中"提供了一个实现这一功能的示例,它可以在Eclipse...

    将存RGB数据流上屏显示(android)

    在Android平台上,将RGB数据流上屏显示是一个常见的任务,特别是在处理视频解码或图像处理时。RGB数据是表示像素颜色的一种方式,每个像素由红色、绿色和蓝色三个分量组成。本文将深入探讨如何利用Android SDK中的...

    Android 保存List数据(SharedPreferences)

    SharedPreferences是Android提供的一种轻量级的数据持久化方式,它以键值对的形式存储数据,并提供了XML文件的读写操作。通常,我们通过`PreferenceManager.getDefaultSharedPreferences(Context)`获取默认的...

Global site tag (gtag.js) - Google Analytics