本文介紹Android中的5種資料存儲方式。
資料存儲在開發中是使用最頻繁的,在這裡主要介紹Android平台中實作資料存儲的5種方式,分别是:
1 使用SharedPreferences存儲資料;
2 檔案存儲資料;
3 SQLite資料庫存儲資料;
4 使用ContentProvider存儲資料;
6 網絡存儲資料;
下面将為大家一一詳細介紹。
第一種: 使用SharedPreferences存儲資料
SharedPreferences是Android平台上一個輕量級的存儲類,主要是儲存一些常用的配置比如視窗狀态,一般在Activity中 重載視窗狀态onSaveInstanceState儲存一般使用SharedPreferences完成,它提供了Android平台正常的Long長 整形、Int整形、String字元串型的儲存。
它是什麼樣的處理方式呢? SharedPreferences類似過去Windows系統上的ini配置檔案,但是它分為多種權限,可以全局共享通路,android123提示最終是以xml方式來儲存,整體效率來看不是特别的高,對于正常的輕量級而言比SQLite要好不少,如果真的存儲量不大可以考慮自己定義檔案格式。xml 處理時Dalvik會通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對于記憶體資源占用比較好。
它的本質是基于XML檔案存儲key-value鍵值對資料,通常用來存儲一些簡單的配置資訊。 其存儲位置在/data/data/<包名>/shared_prefs目錄下。
SharedPreferences對象本身隻能擷取資料而不支援存儲和修改,存儲修改是通過Editor對象實作。 實作SharedPreferences存儲的步驟如下:
一、根據Context擷取SharedPreferences對象
二、利用edit()方法擷取Editor對象。
三、通過Editor對象存儲key-value鍵值對資料。
四、通過commit()方法送出資料。
下面是示例代碼:
- public class MainActivity extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //擷取SharedPreferences對象
- Context ctx = MainActivity.this;
- SharedPreferences sp = ctx.getSharedPreferences("SP", MODE_PRIVATE);
- //存入資料
- Editor editor = sp.edit();
- editor.putString("STRING_KEY", "string");
- editor.putInt("INT_KEY", 0);
- editor.putBoolean("BOOLEAN_KEY", true);
- editor.commit();
- //傳回STRING_KEY的值
- Log.d("SP", sp.getString("STRING_KEY", "none"));
- //如果NOT_EXIST不存在,則傳回值為"none"
- Log.d("SP", sp.getString("NOT_EXIST", "none"));
- }
- }
複制代碼 這段代碼執行過後,即在/data/data/com.test/shared_prefs目錄下生成了一個SP.xml檔案,一個應用可以建立多個這樣的xml檔案。 SharedPreferences對象與SQLite資料庫相比,免去了建立資料庫,建立表,寫SQL語句等諸多操作,相對而言更加友善,簡潔。但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的資料類型,比如其無法進行條件查詢等。是以不論SharedPreferences的資料存儲操作是如何簡單,它也隻能是存儲方式的一種補充,而無法完全替代如SQLite資料庫這樣的其他資料存儲方式。
第二種: 檔案存儲資料
關于檔案存儲,Activity提供了openFileOutput()方法可以用于把資料輸出到檔案中,具體的實作過程與在J2SE環境中儲存資料到檔案中是一樣的。
檔案可用來存放大量資料,如文本、圖檔、音頻等。
預設位置:/data/data/<包>/files