Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 開發入門 >> Android 數據存儲

Android 數據存儲

編輯:開發入門

 數據存儲Data Storage
概覽Storage quickvIEw
² 系統偏好:快速,輕量級存儲
² 文件:存儲到設備內部或可移動閃存
² 數據庫:任意的結構化存儲
² 支持基於網絡的存儲

無論你是否想把應用程序數據輸出給別人,你總需要有一個方法來保存它。android提供了下面4種機制來保存和獲取數據:系統偏好Preferences,文件Files,數據庫Databases和網絡Network。

系統偏好Preferences

系統偏好是一個用來存放和提取元數據類型鍵-值對的輕量級機制。它通常用來存放應用程序偏好,例如一個應用程序啟動時所使用的默認問候或文本字體。通過調用Context.getSharedPreferences() 來讀寫數值。如果你想分享給應用程序中的其它組件,可以為你的偏好集分配一個名字,或者使用沒有名字的Activity.getPreferences()方法來保持對於該調用程序的私有性。你不能跨應用程序共享偏好(除了使用一個內容提供器)。

下面是一個為計算器設置按鍵靜音模式的例子:

Java代碼:
  1. import android.app.Activity;
  2. import android.content.SharedPreferences;

  3. public class Calc extends Activity {
  4. public static final String PREFS_NAME = "MyPrefsFile";

  5. @Override
  6. protected void onCreate(Bundle state){
  7. super.onCreate(state);

  8. SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  9. boolean silent = settings.getBoolean("silentMode", false);
  10. setSilent(silent);
  11. }

  12. @Override
  13. protected void onStop(){
  14. super.onStop();

  15. SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  16. SharedPreferences.Editor editor = settings.edit();
  17. editor.putBoolean("silentMode", mSilentMode);

  18. editor.commit();
  19. }
  20. }

文件Files

你可以直接在移動設備或可移動存儲媒介裡存放文件。缺省情況下,其它應用程序不能訪問這些文件。
為了從文件中讀取數據,可調用Context.openFileInput()方法並傳遞本地文件名和文件路徑給它。該方法返回一個標准的Java FileInputStream 對象。為了寫一個文件,可調用Context.openFileOutput()並傳遞文件名和路徑,這個方法也返回FileOutputStream對象。從另外的應用程序中調用這些方法將不起作用,你只能訪問本地文件。
如果你有一個靜態文件需要在編譯時打包進應用程序,你可以保存該文件在你項目中res/raw/myDataFile,然後使用Resources.openRawResource (R.raw.myDataFile)打開它。該方法返回一個InputStream對象,你可以使用它讀取文件數據。

數據庫Databases

android API包含對創建和使用SQLite數據庫的支持。每個數據庫都是創建它的應用程序所私有的。
這個SQLiteDatabase對象代表了一個數據庫並包含與之交互的方法-生成查詢和管理數據。為了創建數據庫,調用SQLiteDatabase.create()並同時子類化SQLiteOpenHelper。

作為支持SQLite數據庫的一部分,android暴露了數據庫管理函數,這讓你可以存儲復雜的數據集合,這些數據被包裝到有用的對象裡。比如,android為聯系人信息定義了一個數據類型;它由很多字段組成,其中包括姓,名(字符串),地址信息和電話號碼(也是字符串),照片(位圖圖像),以及更多其它個人信息。
android裝載了sqlite3數據工具, 利用這些工具你可以浏覽表內容,運行SQL命令,並執行SQLite數據庫上的其它有用的函數。請查閱檢查數據庫(Examine databases (sqlite3))得知如何運行這個程序。
所有的數據庫,SQLite以及其它,都被保存在設備如下目錄裡:/data/data/package_name/databases.
討論創建多少表格,包含哪些字段以及它們之間如何連接超出了本文的范圍,不過android並沒有引入任何在標准SQLite概念之外的限制。我們確實推薦包含一個自增長數值的關鍵域,作為一個唯一ID用來快速查找一個記錄。這對於私有數據並不必要,但如果你實現了一個內容提供器,你必須包含這樣一個唯一ID字段。請參見Content Providers文檔以獲取關於該字段的更多信息,以及NotePadProvider類(在NotePad例子代碼裡)中創建和組裝一個新數據庫的方法。你創建的任何數據庫都將可以通過名字被應用程序中其它的類訪問,但不能從應用程序外部訪問。

網絡Network
你也可以使用網絡來存放和獲取數據(當它可用時)。要進行網絡操作,可使用如下程序包中的類:
· Java.Net.*
· android.
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved