10、Android資料存放區

來源:互聯網
上載者:User

標籤:android   style   http   color   io   os   使用   java   ar   

課程目標:

掌握Android中資料存放區的幾種方式

熟練使用PreferenceActivity&PreferenceScreen做專業的Setting功能

熟練使用SQLite3來儲存資料

深入研究SQLite3資料庫特性,並且比對與大型資料庫的包括預存程序,主外部索引鍵關聯等特性 

瞭解檔案儲存體的內外儲存分別  瞭解網路儲存C/S結構原理 。 

重點痛點:SQLiteOpenHelper類的使用   SQLIte資料庫的特性掌握

考核目標:

說出Android資料存放區的幾種形式 ?

Sqlite3能支援預存程序麼,支援主外部索引鍵關聯麼 ?

如何讓自己的Setting程式與系統的Setting程式融合

 

 

一、Android資料存放區初探

XML              Share Preference

Binary File     File  <使用內部儲存,使用擴充儲存>

關係型資料庫   SQLite3

網路訪問         Network <Socket , Http,Https>

 

二、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

 

三、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

 

10、Android資料存放區

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.