課程目標:sql
掌握Android中數據存儲的幾種方式shell
熟練使用PreferenceActivity&PreferenceScreen作專業的Setting功能數據庫
熟練使用SQLite3來存儲數據安全
深刻研究SQLite3數據庫特性,而且比對與大型數據庫的包括存儲過程,主外鍵關聯等特性 網絡
瞭解文件存儲的內外存儲分別 瞭解網絡存儲C/S結構原理 。 app
重點難點:SQLiteOpenHelper類的使用 SQLIte數據庫的特性掌握函數
考覈目標:佈局
說出Android數據存儲的幾種形式 ?spa
Sqlite3能支持存儲過程麼,支持主外鍵關聯麼 ?操作系統
如何讓本身的Setting程序與系統的Setting程序融合
1、Android數據存儲初探
XML Share Preference
Binary File File <使用內部存儲,使用擴展存儲>
關係型數據庫 SQLite3
網絡訪問 Network <Socket , Http,Https>
2、SharedPreference
2.1 最基本操做步驟
1) getSharedPreference
2) get SharedPreferences.Editor
3) Editor.commit()。
2.2 三種方式獲得preference區別
1) public SharedPreferences getPreferences (int mode)
經過Activity對象獲取,獲取的是本Activity私有的Preference,保存在系統中的xml形式的文件的名稱爲這個Activity的名字,所以一個Activity只能有一個,屬於這個Activity。
2) public SharedPreferences getSharedPreferences (String name, int mode)
由於Activity繼承了ContextWrapper,所以也是經過Activity對象獲取,可是屬於整個應用程序,能夠有多個,以第一參數的name爲文件名保存在系統中。
3)public static SharedPreferences getDefaultSharedPreferences (Context context)
PreferenceManager的靜態函數,保存PreferenceActivity中的設置,屬於整個應用程序,可是隻有一個,Android會根據包名和PreferenceActivity的佈局文件來起一個名字保存。
2.3 打造專業的User Preference
PreferenceActivity
PreferenceScreen..
. setOnPreferenceChangeListener...
2.4 如何嵌套系統preference
2.5 Subtopic
3、SQLite3
3.1 SQLite數據庫簡介
SQLite (http://www.sqlite.org/),是一款輕型的數據庫,是遵照ACID的關聯式數據庫管理系統,它的設計目標是嵌入式的,並且目前已經在不少嵌入式產品中使用了它,它佔用資源很是的低,在嵌入式設備中,可能只須要幾百K的內存就夠了。它可以支持Windows/Linux/Unix等等主流的操做系統,同時可以跟不少程序語言相結合,好比 Tcl、C#、PHP、Java等,還有ODBC接口,一樣比起Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來說,它的處理速度比他們都快。SQLite第一個Alpha版本誕生於2000年5月. 至今已經有10個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。
特徵:輕量級,獨立性,隔離性,跨平臺,多語言接口,安全性。
3.2 總結
SQLite 是一個全面而又完整支持sql語句的文件型數據庫
Sqlite 支持 事務 , 視圖 , 索引,觸發器 ,主外鍵約束
默認的必須給每張表的主鍵名字爲_id
SqliteDatabase 能夠用封裝的insert ,update ,delete ,query 方法 ,也能夠用execSql , rawSql 等原生方法
3.3 SQLiteOpenHelper
getReadableDatabase()
getWritableDatabase()
onCreate(SQLiteDatabase db , int oldVersion, int newVersion)
onOpen(SQLiteDatabase db)
onUpgrade(SQLiteDatabase db)
1)經過Helper , 創建好數據庫表結構 - onCreate , onUpgrade。
2)調用helper實例 , 經過get***Database()獲得DB對象。
3)經過DB對象實例來調用增刪改查 ,insert()。
3.4 創建數據庫,更新數據庫: adb shell 看數據庫
3.5 具體的數據操做:Add,Update,Search,Delete,批量更新和刪除。
3.6 咱們思考一下Sqlite3數據庫引擎在哪兒? external/sqlite
思路:
如你來移植,對開源的項目,你是編譯好類庫放上來仍是直接源碼都放上來呢?
若是源碼放上來,咱們去官網下載源碼 , 打開看看
去搜索一下源碼
找到地址 。
3.7 咱們來思考一下SQlite3鏈接方式實際是什麼? libcore/sqlite-jdbc
3.8 表的主外鍵關係
3.9 表的視圖
3.10 表的觸發器,存儲過程
3.11 Sqlite事務
beginTransaction
setTransactionSuccessful
endTransaction