Android系統一共提供了四種資料存放區方式。分別是:SharePreference、SQLite、Content Provider和File。由於Android系統中,資料基本都是私人的的,都是存放於“data/data/程式包名”目錄下,所以要實現資料共用,正確方式是使用Content Provider。 SQLite: SQLite是一個輕量級的資料庫,支援基本SQL文法,是常被採用的一種資料存放區方式。Android為此資料庫提供了一個名為SQLiteDatabase的類,封裝了一些操作資料庫的API。 SharedPreference: 除SQLite資料庫外,另一種常用的資料存放區方式,其本質就是一個xml檔案,常用於儲存較簡單的參數設定。 File: 即常說的檔案(I/O)儲存方法,常用語儲存大數量的資料,但是缺點是更新資料將是一件困難的事情。 ContentProvider: Android系統中能實現所有應用程式共用的一種資料存放區方式,由於資料通常在各應用間的是互相私密的,所以此儲存方式較少使用,但是其又是必不可少的一種儲存方式。例如音頻,視頻,圖片和通訊錄,一般都可以採用此種方式進行儲存。每個Content Provider都會對外提供一個公用的URI(封裝成Uri對象),如果應用程式有資料需要共用時,就需要使用Content Provider為這些資料定義一個URI,然後其他的應用程式就通過Content Provider傳入這個URI來對資料進行操作。 PS: URI由3個部分組成:"content://"、資料的路徑、標識ID(可選)。 SQLite是一種轉為嵌入式裝置設計的輕型資料庫,其只有五種資料類型,分別是: NULL: 空值 INTEGER: 整數 REAL: 浮點數 TEXT: 字串 BLOB: 大資料 在SQLite中,並沒有專門設計BOOLEAN和DATE類型,因為BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE類型則可以擁有特定格式的TEXT、REAL和INTEGER的值來代替顯示,為了能方便的操作DATE類型,SQLite提供了一組函數,詳見:http://www.sqlite.org/lang_datefunc.html。這樣簡單的資料類型設計更加符合嵌入式裝置的要求。關於SQLite的更多資料,請參看:http://www.sqlite.org/ 在Android系統中提供了android.database.sqlite包,用於進行SQLite資料庫的增、刪、改、查工作。其主要方法如下: beginTransaction(): 開始一個事務。 close(): 關閉串連,釋放資源。 delete(String table, String whereClause, String[] whereArgs): 根據給定條件,刪除合格記錄。 endTransaction(): 結束一個事務。 execSQL(String sql): 執行給定SQL語句。 insert(String table, String nullColumnHack, ContentValues values): 根據給定條件,插入一條記錄。 openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory): 根據給定條件串連資料庫,如果此資料庫不存在,則建立。 query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy): 執行查詢。 rawQuery(String sql, String[] selectionArgs): 根據給定SQL,執行查詢。 update(String table, ContentValues values, String whereClause, String[] whereArgs): 根據給定條件,修改合格記錄。 除了上訴主要方法外,Android還提供了諸多實用的方法,總之一句話:其實Android訪問資料庫是一件很方便的事兒。