Android數(shù)據(jù)存儲(chǔ)訪問機(jī)制
大家在開發(fā)Android操作系統(tǒng)的時(shí)候,可能會(huì)經(jīng)常碰到關(guān)于數(shù)據(jù)存儲(chǔ)方面的一些操作。在這里我們會(huì)為大家詳細(xì)介紹一下有關(guān)Android數(shù)據(jù)存儲(chǔ)的一些基本概念以及應(yīng)用技巧。在Android 系統(tǒng)中,所有應(yīng)用程序數(shù)據(jù)都是私有的,任何其他應(yīng)用程序都是無(wú)法訪問的。#t#
1. 如何使得應(yīng)用程序的數(shù)據(jù)可以被外部訪問呢?
答案是使用android 的content provider 接口,content provider 可以使應(yīng)用程序的私有數(shù)據(jù)暴露給其它application.
有兩種選擇來(lái)暴露application data,一種是建立自己的content provider,另外一種是使用已有的content provider前提是數(shù)據(jù)類型一致。
2. Android數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)類型
Android 提供了一系列的 content type. 包括image, audio, and video files and personal contact information 等等.
3. Android數(shù)據(jù)存儲(chǔ)機(jī)制
Android 提供了存儲(chǔ)和獲取數(shù)據(jù)的以下幾種機(jī)制
3.1. Preference
Preference 提供了一種輕量級(jí)的存取機(jī)制,主要是可以通過關(guān)鍵字讀取和存儲(chǔ)某個(gè)Preference value.
比如載系統(tǒng)啟動(dòng)的時(shí)候得到上次系統(tǒng)退出時(shí)候保存的值。
- view plaincopy to clipboardprint?
- . . .
- public static final String PREFS_NAME = "MyPrefsFile";
- . . .
- @Override
- protected void onCreate(Bundle state){
- super.onCreate(state);
- . . .
- // Restore preferences
- SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
- boolean silent = settings.getBoolean("silentMode", false);
- setSilent(silent);
- }
- @Override
- protected void onStop(){
- super.onStop();
- // Save user preferences. We need an Editor object to
- // make changes. All objects are from android.context.Context
- SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
- SharedPreferences.Editor editor = settings.edit();
- editor.putBoolean("silentMode", mSilentMode);
- // Don't forget to commit your edits!!!
- editor.commit();
- }
- . . .
- public static final String PREFS_NAME = "MyPrefsFile";
- . . .
- @Override
- protected void onCreate(Bundle state){
- super.onCreate(state);
- . . .
- // Restore preferences
- SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
- boolean silent = settings.getBoolean("silentMode", false);
- setSilent(silent);
- }
- @Override
- protected void onStop(){
- super.onStop();
- // Save user preferences. We need an Editor object to
- // make changes. All objects are from android.context.Context
- SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
- SharedPreferences.Editor editor = settings.edit();
- editor.putBoolean("silentMode", mSilentMode);
- // Don't forget to commit your edits!!!
- editor.commit();
- }
3.2. Files
通過Android數(shù)據(jù)存儲(chǔ)中的File機(jī)制你可以直接存儲(chǔ)一個(gè)文件到你手機(jī)文件系統(tǒng)路徑比如SD卡中。
需要注意的是 , 默認(rèn)情況下存儲(chǔ)的文件是不可以被其他application是訪問的 !!
Context.openFileInput() 返回java的標(biāo)準(zhǔn)文件輸入對(duì)象。
Context.openFileOutput() 返回java的標(biāo)準(zhǔn)文件輸出對(duì)象。
3.3. Databases.
Android 使用 SQLite 數(shù)據(jù)庫(kù)。
可以通過調(diào)用SQLiteDatabase.create() and 以及子類 SQLiteOpenHelper.
Android 還提供了sqlite3 database tool, 你可以通過這個(gè)工具像MySQL tool那樣來(lái)直接訪問,修改數(shù)據(jù)庫(kù)
3.4. Network.
***你也可以通過網(wǎng)絡(luò)來(lái)存儲(chǔ)數(shù)據(jù),使用下面兩個(gè)包的java class.
- java.net.*
- android.net.*
Android數(shù)據(jù)存儲(chǔ)的相關(guān)應(yīng)用就為大家介紹到這里。