国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android四種數據存儲的應用方式

2019-12-12 01:56:33
字體:
來源:轉載
供稿:網友

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適用于存儲一些鍵值對,而數據庫則適用于那些復雜的關系型數據。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 保德县| 高青县| 阳新县| 柳河县| 邢台市| 深泽县| 黄大仙区| 景东| 同江市| 松溪县| 安远县| 中方县| 比如县| 武功县| 竹北市| 南江县| 营山县| 舞阳县| 丰都县| 交口县| 西丰县| 昌都县| 石柱| 荆门市| 阿瓦提县| 梁平县| 若尔盖县| 丹东市| 久治县| 柳林县| 黄平县| 丰原市| 井研县| 吉安市| 沁源县| 卓尼县| 龙岩市| 泰兴市| 赤城县| 亚东县| 广宗县|