• Android數據存儲

    2
    Android XML C/C++ Go 18871 次瀏覽

    在前面的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獲取其他程序共享的數據

    轉自:http://www.moandroid.com/?p=319

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色