數(shù)據(jù)存儲
1. 掌握Android 的3種本地?cái)?shù)據(jù)存儲方式以及應(yīng)用場景
第一種: SharedPreferences存儲數(shù)據(jù)
應(yīng)用場景:保存少量的數(shù)據(jù)奔穿,且這些數(shù)據(jù)的格式非常簡單:字符串型、基本類型的值缝其。比如應(yīng)用程序的各種配置信息(如是否打開音效私植、是否使用震動(dòng)效果忌栅、小游戲的玩家積分等)
第二種: 文件存儲數(shù)據(jù)
應(yīng)用場景:(如SD卡存儲多媒體文件, 文件緩存)可以在設(shè)備本身的存儲設(shè)備或者外接的存儲設(shè)備中創(chuàng)建用于保存數(shù)據(jù)的文件。同樣在默認(rèn)的狀態(tài)下曲稼,文件是不能在不同的程序間共享索绪。
第三種:SQLite存儲數(shù)據(jù)
應(yīng)用場景: 一種嵌入式數(shù)據(jù)庫,支持sql語言。(如存儲大量結(jié)構(gòu)性數(shù)據(jù)躯肌、對讀取效率高的需求)
2.掌握 Android 的文件存儲系統(tǒng)的內(nèi)部存儲者春、外部存儲的存儲位置、讀寫流程
內(nèi)部存儲
存儲位置:文件路徑為/data/data+你應(yīng)用的包名
外部存儲
存儲位置:文件路徑為sdcard/Android/data/+包名
讀寫流程
- Context類提供了一個(gè)openFileOutput()方法清女,用于將數(shù)據(jù)存儲到指定文件中
- 文件的操作模式钱烟,有MODE_PRIVATE和MODE_APPEND兩種方式
- FileInputStream通過Java流的方式獲得數(shù)據(jù)
3. 理解外部存儲涉及的運(yùn)行時(shí)權(quán)限的申請
運(yùn)行時(shí)權(quán)限
Android 6.0 后將權(quán)限分為兩類
- 普通權(quán)限
不會直接威脅到用戶的隱私和安全,系統(tǒng)會自動(dòng)幫我們授權(quán)。 - 運(yùn)行時(shí)權(quán)限
能直接威脅到用戶隱私安全的操作拴袭,需要運(yùn)行時(shí)用戶手動(dòng)授權(quán)读第。
運(yùn)行時(shí)權(quán)限的申請
- checkSelfPermission(檢查是否已被授予)
- requestPermissions(申請權(quán)限)
- onRequestPermissionsResult(自動(dòng)回調(diào))
- shouldShowRequestPermissionRationale
4.掌握 SharedPreferences存儲和讀取的開發(fā)流程
存儲數(shù)據(jù):
//步驟1:創(chuàng)建一個(gè)SharedPreferences對象
//步驟2: 實(shí)例化SharedPreferences.Editor對象
//步驟3:將獲取過來的值放入文件
//步驟4:提交 commit()
讀取數(shù)據(jù):
//步驟1:創(chuàng)建一個(gè)SharedPreferences對象
//步驟2:根據(jù)key值獲取數(shù)據(jù)sharedPreferences.getString("name","");
5. 掌握 SQLite 數(shù)據(jù)庫的基本概念
SQLite 是一個(gè)輕量級數(shù)據(jù)庫,它的設(shè)計(jì)目標(biāo)是嵌入式的拥刻,而且占用資源非常低怜瞒,在內(nèi)存中只需要占用幾百kB的存儲空間,這也是Android移動(dòng)設(shè)備采用SQLite數(shù)據(jù)庫的重要原因之一般哼。
6.掌握 SQLlite 數(shù)據(jù)庫的增刪改查的開發(fā)流程
SQLlite數(shù)據(jù)庫創(chuàng)建
- 創(chuàng)建一個(gè)繼承自SQLiteOpenHelper的子類
- 獲取可寫入的 SQLiteDatabase 對象
- 創(chuàng)建 ContentValues 對象
- 將數(shù)據(jù)添加到ContentValues對象
- db.insert插入數(shù)據(jù)
- db.delete刪除數(shù)據(jù)
- db.update更改數(shù)據(jù)
- db.query查詢數(shù)據(jù)
- 關(guān)閉數(shù)據(jù)庫
7.了解ORMLite吴汪、GreenDAO 或 Room 等一種數(shù)據(jù)庫框架的使用方法
GreenDao使用
- 在工程目錄下build.gradle下添加插件
- 在項(xiàng)目目錄下的build.gradle下添加插件依賴
- 接下來工程目錄下build.gradle繼續(xù)添加依賴庫
- 再接下來就是初始化GreenDao配置,在app下的build.gradle目錄下
- 定義一個(gè)實(shí)體類【需要Make Project】
- 編寫DaoManager
- 編寫Application蒸眠,并初始化 DaoManager
- 編寫DaoUtils(增刪改查)
- 在activity中使用
8.理解 ContentProvider 實(shí)現(xiàn)不同應(yīng)用之間數(shù)據(jù)共享的方法
使用 ContentProvider 可以將數(shù)據(jù)共享給其他應(yīng)用漾橙,讓除本應(yīng)用之外的應(yīng)用也可以訪問本應(yīng)用的數(shù)據(jù)。它的底層是用 SQLite 數(shù)據(jù)庫實(shí)現(xiàn)的楞卡,所以其對數(shù)據(jù)做的各種操作都是以 Sql 實(shí)現(xiàn)霜运,只是在上層提供的是 Uri,用戶只需要關(guān)心操作數(shù)據(jù)的 uri 就可以了,ContentProvider 可以實(shí)現(xiàn)不同 app 之間共享蒋腮。
步驟:
1淘捡、定義自己的ContentProvider類,該類需要繼承Android提供的ContentProvider基類池摧。
2焦除、在AndroidManifest.xml文件中注冊個(gè)ContentProvider,注冊ContenProvider時(shí)需要為它綁定一個(gè)URL险绘。