Android爲數據存儲提供了三種方式:文件、數據庫和網絡。
1.SharedPreferences共享偏好
2.Internal Storage內部存儲空間
3.External Storage外部存儲空間
4.SQLite Database數據庫
5.Internet網絡
一、SharedPreferences(偏好設定)多用於保存軟件配置參數,是一種採用XML格式進行數據保存的方式,文件存放在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。
通過SharedPreferences可以將NVP(Name/Value Pair,鍵值對)保存在Android的文件系統中,而且SharedPreferences完全屏蔽對文件系統的操作過程,開發人員僅是通過調用SharedPreferences對NVP進行保存和讀取。
SharedPreferences不僅能夠保存數據,還能夠實現不同應用程序間的數據共享。
SharedPreferences支持三種訪問模式:私有(MODE_PRIVATE)、全局讀(MODE_WORLD_READABLE)、全局寫(MODE_WORLD_WRITEABLE)。
獲取SharedPreferences對象的兩個方法:
Context.getSharedPreferences(String name,int mode):其中 name 爲本組件的配置文件名;mode 爲操作模式,默認的模式爲0。
Activity.getPreferences(int mode):配置文件僅可以被調用的Activity使用。mode 爲操作模式,默認的模式爲0。
如果要讀取配置文件信息,只需要直接使用SharedPreferences對象的getXXX()方法即可,而如果要寫入配置信息,則必須先調用SharedPreferences對象的edit()方法,使其處於可編輯狀態,然後再調用putXXX()方法寫入配置信息,最後調用 commit()方法提交更改後的配置文件。
二、文件存儲
(1) 內部存儲
Android系統允許應用程序創建僅能夠自身訪問的私有文件,文件保存在設備的內部存儲器上,在系統下的/data/data/<package name>/files目錄中。
Android系統支持標準Java的IO類和方法,並提供了能夠簡化讀寫流式文件過程的函數,主要的兩個函數:
openFileOutput():爲寫入數據做準備而打開的應用程序私文件,如果指定的文件不存在,則創建一個新的文件,函數的返回值是FileOutputStream類型;
openFileInput():爲讀取數據做準備而打開應用程序私文件。
(2) 外部存儲(SD卡(Secure Digital Memory Card))
SD卡適用於保存大尺寸的文件或者是一些無需設置訪問權限的文件,可以保存錄制的大容量的視頻文件和音頻文件等;SD卡使用的是FAT(File Allocation Table)的文件系統,不支持訪問模式和權限控制,但可以通過文件系統的文件訪問權限的控制保證文件的私密性。
Android模擬器支持SD卡,但模擬器中沒有缺省的SD卡,開發人員須在模擬器中添加SD卡的映像文件。
(3) 資源文件
程序開發人員可以將程序開發階段已經準備好的原始格式文件和XML文件分別存放在/res/raw和/res/xml目錄下,供應用程序在運行時進行訪問;原始格式文件可以是任何格式的文件,在應用程序編譯和打包時,/res/raw目錄下的所有文件都會保留原有格式不變,而/res/xml目錄下的XML文件,一般用來保存格式化的數據,在應用程序編譯和打包時會將XML文件轉換爲高效的二進制格式,應用程序運行時會以特殊的方式進行訪問。
<!--EndFragment-->