android存儲方式的應用場景

做爲一個完整的應用程序,數據存儲操做是必不可少的。所以,Android系統一共提供了四種數據存儲方式。分別是:SharePreference、文件存儲、SQLite、 Content Provider。對這幾種方式的不一樣和應用場景整理以下。
第一種: 使用SharedPreferences存儲數據
  適用範圍:保存少許的數據,且這些數據的格式很是簡單:字符串型、基本類型的值。好比應用程序的各類配置信息(如是否打開音效、是否使用震動效果、小遊戲的玩家積分等),解鎖口 令密碼等
  核心原理:保存基於XML文件存儲的key-value鍵值對數據,一般用來存儲一些簡單的配置信息。經過DDMS的File Explorer面板,展開文件瀏覽樹,很明顯SharedPreferences數據老是存儲在/data/data//shared_prefs目錄下。SharedPreferences對象自己只能獲取數據而不支持存儲和修改,存儲修改是經過SharedPreferences.edit()獲取的內部接口Editor對象實現。 SharedPreferences自己是一 個接口,程序沒法直接建立SharedPreferences實例,只能經過Context提供的getSharedPreferences(String name, int mode)方法來獲取SharedPreferences實例,該方法中name表示要操做的xml文件名,第二個參數具體以下:
  Context.MODE_PRIVATE: 指定該SharedPreferences數據只能被本應用程序讀、寫。
  Context.MODE_WORLD_READABLE: 指定該SharedPreferences數據能被其餘應用程序讀,但不能寫。
  Context.MODE_WORLD_WRITEABLE: 指定該SharedPreferences數據能被其餘應用程序讀,寫
  SharedPreferences對象與SQLite數據庫相比,免去了建立數據庫,建立表,寫SQL語句等諸多操做,相對而言更加方便,簡潔。可是SharedPreferences也有其自身缺陷,好比其職能存儲boolean,int,float,long和String五種簡單的數據類型,好比其沒法進行條件查詢等。因此不論SharedPreferences的數據存儲操做是如何簡單,它也只能是存儲方式的一種補充,而沒法徹底替代如SQLite數據庫這樣的其餘數據存儲方式。
第二種: 文件存儲數據
  能夠在設備自己的存儲設備或者外接的存儲設備中建立用於保存數據的文件。一樣在默認的狀態下,文件是不能在不一樣的程序間共享。
  寫文件:調用Context.openFileOutput()方法根據指定的路徑和文件名來建立文件,這個方法會返回一個FileOutputStream對象。
  讀取文件:調用Context.openFileInput()方法經過制定的路徑和文件名來返回一個標準的Java FileInputStream對象。
第三種:SQLite存儲數據
  SQLite Database數據庫。Android對數據庫的支持很好,它自己集成了SQLite數據庫,每一個應用均可以方便的使用它,或者更確切的說,Android徹底依賴於SQLite數據庫,它全部的系統數據和用到的結構化數據都存儲在數據庫中。 它具備如下優勢: a. 效率出衆,這是無能否認的 b. 十分適合存儲結構化數據 c. 方便在不一樣的Activity,甚至不一樣的應用之間傳遞數據。  
第四種:ContentProvider
  Android系統中能實現全部應用程序共享的一種數據存儲方式,因爲數據一般在各應用間的是互相私密的,因此此存儲方式較少使用,可是其又是必不可少的一種存儲方式。例如音頻,視頻,圖片和通信錄,通常均可以採用此種方式進行存儲。每一個ContentProvider都會對外提供一個公共的URI(包裝成Uri對象),若是應用程序有數據須要共享時,就須要使用ContentProvider爲這些數據定義一個URI,而後其餘的應用程序就經過Content Provider傳入這個URI來對數據進行操做。
  總結一下,文件適用於存儲一些簡單的文本數據或者二進制數據,SharedPreferences適用於存儲一些鍵值對,而數據庫則適用於那些複雜的關係型數據。數據庫

相關文章
相關標籤/搜索