Android數據存儲(總結篇)

By: 海市蜃樓

在前面的2篇文章:Android SQLite解析Android 應用程序之間數據共享中分別詳細說明了,如何使用數據庫存儲信息,以及如何通過ContentProvider獲取其他應用程序共享的數據,現將Android數據存儲做下總結,在以後的開發過程中根據需求選擇合適的數據存儲方式。

Android提供了5種方式存儲數據:

  1. 使用SharedPreferences存儲數據;
  2. 文件存儲數據;
  3. SQLite數據庫存儲數據;
  4. 使用ContentProvider存儲數據;
  5. 網絡存儲數據;

其中3,4已經在Android SQLite解析、Android 應用程序之間數據共享篇幅中詳細說明,不在此重複說明,現將其他3種方式詳細介紹。

使用SharedPreferences存儲數據

首先說明SharedPreferences存儲方式,它是Android提供的用來存儲一些簡單配置信息的一種機制,例如:登錄用戶的用戶名與密碼。其採用了Map數據結構來存儲數據,以鍵值的方式存儲,可以簡單的讀取與寫入,具體實例如下:

void  ReadSharedPreferences()
{
String  strName,strPassword;
SharedPreferences   user = getSharedPreferences(“user_info”,0);
strName = user.getString(“NAME”,””);
strPassword = user getString(“PASSWORD”,””);
}

void  WriteSharedPreferences(String  strName,String strPassword)
{
SharedPreferences   user = getSharedPreferences(“user_info”,0);
uer.edit();
user.putString(“NAME”, strName);
user.putString(“PASSWORD” ,strPassword);
user.commit();
}

數據讀取與寫入的方法都非常簡單,只是在寫入的時候有些區別:先調用edit()使其處於編輯狀態,然後才能修改數據,最後使用commit()提交修改的數據。實際上SharedPreferences是採用了XML格式將數據存儲到設備中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。以上面的數據存儲結果爲例,打開後可以看到一個user_info.xml的文件,打開後可以看到:
<?xml version=”1.0″ encoding=”UTF-8″?>
<map>
<string name=”NAME”>moandroid</string>
<string name=” PASSWORD”>SharedPreferences</string>
</map>
使用SharedPreferences是有些限制的:只能在同一個包內使用,不能在不同的包之間使用。

文件存儲數據

文件存儲方式是一種較常用的方法,在Android中讀取/寫入文件的方法,與Java中實現I/O的程序是完全一樣的,提供了openFileInput()和openFileOutput()方法來讀取設備上的文件。FilterInputStreamFilterOutputStream等可以到Java  io  package說明中去詳細學習,不再此詳細說明,具體實例如下:
String fn = “moandroid.log”;
FileInputStream fis = openFileInput(fn);
FileOutputStream fos = openFileOutput(fn,Context.MODE_PRIVATE);
除此之外,Android還提供了其他函數來操作文件,詳細說明請閱讀Android SDK

網絡存儲數據

網絡存儲方式,需要與Android 網絡數據包打交道,關於Android 網絡數據包的詳細說明,請閱讀Android SDK引用了Java SDK的哪些package?

總結說明

以上5中存儲方式,在以後的開發過程中,根據設計目標、性能需求、空間需求等找到合適的數據存儲方式。Android 中的數據存儲都是私有的,其他應用程序都是無法訪問的,除非通過ContentResolver獲取其他程序共享的數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章