1. 程式人生 > >android儲存方式的應用場景

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適用於儲存一些鍵值對,而資料庫則適用於那些複雜的關係型資料。

相關推薦

android儲存方式應用場景

作為一個完整的應用程式,資料儲存操作是必不可少的。因此,Android系統一共提供了四種資料儲存方式。分別是:SharePreference、檔案儲存、SQLite、 Content Provider。對這幾種方式的不同和應用場景整理如下。第一種: 使用SharedPreferences儲存資料  適用範圍:

設計模式-單例模式(Singleton)在Android中的應用場景和實際使用遇到的問題

介紹 在上篇部落格中詳細說明了各種單例的寫法和問題。這篇主要介紹單例在Android開發中的各種應用場景以及和靜態類方法的對比考慮,舉實際例子說明。 單例的思考 寫了這麼多單例,都快忘記我們到底為什麼需要單例,複習單例的本質 單例的本質:控制例

Callback機制在Android中的應用場景

Callback是什麼? 當我們需要把耗時操作傳送到子執行緒執行時, 需要在耗時操作完成時將結果放到主執行緒來呈現或者再處理時, 我們需要在子執行緒主動地回頭呼叫主執行緒中處理結果的方法, 這種回撥式的機制就是Callback. 如何使用 Callback? 主執行緒: /

Bean的不同配置方式比較與應用場景

jdb ext 小寫字母 str 類定義 ati ice control aso 基於XML配置 Bean的定義: 在XML文件中通過<bean>元素定義。 Bean的名稱: 通過<bean>的id或name屬

Android:圖解四種啟動模式 及 實際應用場景解說

類型 placed data val add The avi 能夠 per 在一個項目中會包括著多個Activity,系統中使用任務棧來存儲創建的Activity實例,任務棧是一種“後進先出”的棧結構。舉個栗子,若我們多次啟動同一個Activity。系統會創建多個實例依次放

Android核心技術-day06-05-Activity生命週期,應用場景

package com.gaozewen.lifecycle; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import an

Android 資料持久化技術(即資料儲存方式

在討論資料持久化技術之前我們先了解幾個概念? 什麼是瞬時資料:儲存在記憶體當中,有可能會因為程式的關閉或其他原因導致記憶體被收回而丟失的資料。   為什麼採用資料持久化技術:為了保證關鍵資料在程式退出時不被丟失。   什麼是資料持久化技術:將記憶體中的瞬時資料

5分鐘學會MySQL儲存過程_1、定義及應用場景

                                          &nb

事務 鎖 悲觀鎖 樂觀鎖 概念 應用場景 使用方式 小記

【部落格園cnblogs筆者m-yb原創(部分引用, 在文末有註明),轉載請加本文部落格連結,筆者github: https://github.com/mayangbo666,公眾號aandb7,QQ群927113708】  https://www.cnblogs.com/m-yb/p/99749

Android五種資料儲存方式之SQLite資料庫儲存 載入SD卡資料庫 sql操作 事務 防止SQL注入

資料庫 前言 資料庫儲存 資料庫建立 內建儲存資料庫 外接儲存資料庫 編寫DAO 插入操作 更新操作 刪除操作 查詢操作

Android五種資料儲存方式之檔案儲存 內部儲存 外部儲存 檔案讀取儲存操作封裝

檔案儲存 前言 檔案儲存 記憶體 內部儲存 外部儲存 內部儲存操作 API 讀寫操作 外部儲存操作 公共目錄 私有目錄

Flask框架鉤子函式使用方式應用場景分析

Flask框架鉤子函式使用方式及應用場景分析 在正常執行的程式碼前中後,強行插入執行一段你想要實現的功能的程式碼,這種函式就叫做鉤子函式。鉤子函式就是等同於高速公路上的收費站,進高速之前給你一個卡,並檢查你是否超重。離開之前收你,也可以攔住你安檢一下。 一. 基礎概念:

全快閃記憶體儲存的VDI場景應用

華為OceanStor Dorado V3是面向企業關鍵業務打造的全快閃記憶體儲存系統,採用專為快閃記憶體設計的FlashLink技術。      專為快閃記憶體設計的儲存系統,通過創新的FlashLink技術,提供0.5毫秒穩定時延,業務效能提升3倍。      HyperMetro免

python中socket、程序、執行緒、協程、池的建立方式應用場景

程序 場景 利用多核、高計算型的程式、啟動數量有限 程序是計算機中最小的資源分配單位 程序和執行緒是包含關係 每個程序中都至少有一條執行緒 可以利用多核,資料隔離

Android 圖片和音訊的本地儲存方式

android 在本地建立資料夾,並將圖片和音訊儲存在資料夾下, <span style="font-size:18px;"> public void newFile() { String fileName = "niannian"; String albu

銀行卡識別的實現方式及其應用場景

今天一上來,我覺得就可以直切主題。我們來討論下銀行卡識別的實現方式及其應用的場景。 銀行卡識別的實現方式分為三種: APP的整合 需要將我司的銀行卡識別SDK嵌入到某個APP中去,通過APP呼叫終端的攝像頭,以“掃一掃”的方式獲取銀行卡圖片,再呼叫本地的識別服務,無需聯網

ios應用資料儲存方式(偏好設定)-轉

一.簡單介紹 1.很多ios應用都支援偏好設定,比如儲存使用者名稱,密碼,字型大小等設定,ios提供了一套標準的解決方案來為應用加入偏好設定功能。 2.每個應用都有個NSUserDefaults例項,通過它來儲存偏好設定。比如,儲存使用者名稱,字型大小,是否自動登入。 3.儲存位

Android-Activity啟動模式-應用場景

在上一篇部落格中,Android-Activity啟動模式(launchMode),就介紹了Activity四種啟動模式的特點與使用等,但是到底什麼樣子的場景,去使用什麼樣子的啟動模式呢     Activity啟動模式分為四種:      如果不配置:launchMode,預設

Android應用場景識別-音樂程序或音訊程序識別

0. 實現原理 獲取當前程序是音樂程序 && 當前程序是否佔有音訊服務焦點 1.上層呼叫方法 AudioManager audio = getSystemService(AudioManager.class); (audio.isMusicAct

android Activity 啟動模式 應用場景

棧的原理:先進後出,後進先出。所有操作都發生在棧頂。 首先介紹一下任務棧: (1)程式開啟時就建立了一個任務棧, 用於儲存當前程式的activity,所有的activity屬於一個任務棧。  (2)一個任務棧包含了一個activity的集合, 去有序的選擇哪一個activ