Android的數據存儲主要有五種:
1:SharedPreferences:保存少量數據,簡單格式的數據。保存的數據主要是類似於配置信息格式的數據(例如:用戶名,密碼),因此它保存的數據主要是簡單類型的key-value對。其本質就相當於一個xml文件。
優點:SharedPreferences使用起來十分的方便,可以靈活應用,因爲它簡單方便,所以能用它就儘量不要用文件或是數據庫。
限制條件:只能在同一個包內使用。
boolean commit():當editor編輯完成後,調用該方法提交修改。
SharedPreferences數據總是保存在/data/data/<pasckage name>/shared-prefs目錄下。
2、File:用來存儲文件(非配置信息或結構化數據),如文本文件,二進制文件,多媒體文件,下載的文件等。
context提供兩個方法打開本應用程序的數據文件夾的文件I/O流。
openFileOuutput()和openFileInput().
3、SQLite:是一個輕量級數據庫,支持基本SQL語法,提供一個名爲SQLiteDatabase類。
優點:效率高,在不同Activity或應用之間傳遞數據方便;適合存儲結構化數據;使用標準的SQL語句能實現CRUDE,操作方便;移植性好。
4、ContentProvider:是不同應用程序之間進行數據交換的標準API。一旦一個應用程序通過ContentProvider暴露了自己的數據操作接口,不管這個應用程序是否啓動,其他應用程序都可以通過接口來操作(增、刪、改、查)該應用程序的內部數據。
開發ContentProvider需要先開發一個ContentProvider的子類,該子類需要實現query()、insert()、update()、delete()等方法。這些方法並不是給該應用本身調用的,而是供其他應用來調用的。再在AndroidManifest.xml文件中註冊該ContentProvider,指定android:authorities屬性。
配置ContentProvider:
<provider
android:name=".MyProvider"
android:authorities="org.crazyit.providers.myprovider"
android:exported="true">
authorities:指定該ContentProvider對應的Uri(相當於爲該ContentProvider分配一個域名)。
android:exported:指定該ContentProvider是否允許其他應用調用。如果設爲false,不允許其他應用調用。
5、網絡存儲:通過網絡來實現數據的存儲和獲取的方法。