?

安卓開發之數據存儲在本地的四種方式

本地數據存儲,在安卓開發過程中是不可避免的一個話題。這些本地的數據可能是用戶的設置,程序的設置,用戶的數據圖片, 也可能是網絡傳輸的一些緩沖數據。
基本上我們有4種方法可以存儲安卓程序的數據。
第1種是Shared Preference(共享選項)。
這種方法適合于存儲一些基本數據類型的數據。他提供的是key-value(鍵值)的方式。鍵必須是字符串類型的,值可以是布爾型的,浮點型的,整型的,長整型的,或者字符串類型的。
這種方式是用一個xml文件在私有的目錄里面存放這些數據的。一個程序可以有多個這樣的文件。
下面一段代碼用來描述寫入數據。

第2種是Internal Storage(內部存儲)。
這種方式用來存儲一些復雜的數據結構。因為是內部存儲方式,所以其他程序無法訪問。這樣可以保證數據的安全性。當你的程序卸載以后,這些內部存儲數據也會被清除掉。
這類數據一般包括像一些對象,或者本地需要一些類似文件系統訪問模式的數據。
下面一段代碼用來寫入數據。

第3種是External Storage(外部存儲)。
這種存儲方式用來存儲一些文件對象。這些文件可以被其他程序來訪問。要使用外部存儲,需要申請特別的寫權限WRITE_EXTERNAL_STORAGE。如果其他程序需要訪問這些外部存儲數據的話,也需要申請讀權限READ_EXTERNAL_STORAGE 。
從安卓4.4開始,用戶可以把自己的數據寫入一個私有的外部存儲文件夾中,如果這樣的話,用戶就不需要申請寫權限WRITE_EXTERNAL_STORAGE。當用戶卸載程序的時候,這個文件夾也會被清除。
從安卓7.0開始, 安卓程序可以申請訪問特定的文件目錄,而不是申請訪問整個外部存儲空間。這樣可以保證數據的安全性,防止誤操作。用戶只可以訪問圖片目錄,或者文檔目錄。

第4種是SQLite database(數據庫)。
這種方式需要了解一些數據庫方面的知識。適合存儲相對結構化的數據。尤其是表結構。數據庫是跟當前程序綁定的其他程序無法訪問。
下面一段代碼用來展示寫入數據。

這里是丁哥開講,歡迎留言進行進一步的討論,謝謝。
與此同時請關注一下我們的合作伙伴。

