本書(shū)以Android Studio為開(kāi)發(fā)環(huán)境,從移動(dòng)網(wǎng)絡(luò)編程應(yīng)用需求出發(fā),由淺入深、循序漸進(jìn)地介紹了Android基礎(chǔ)編程和網(wǎng)絡(luò)編程,涵蓋了Android移動(dòng)網(wǎng)絡(luò)程序開(kāi)發(fā)的理論、實(shí)驗(yàn)和課程設(shè)計(jì)。全書(shū)包含四大部分: 第1部分是Android程序開(kāi)發(fā)基礎(chǔ),包括開(kāi)發(fā)環(huán)境搭建、移動(dòng)程序創(chuàng)建、用戶(hù)界面設(shè)計(jì)、組件通信、數(shù)據(jù)存儲(chǔ)與訪問(wèn)、廣播與后臺(tái)服務(wù); 第2部分是Android網(wǎng)絡(luò)編程,包括WiFi操作、TCP、UDP、HTTP、藍(lán)牙和百度地圖應(yīng)用編程; 第3部分是Android移動(dòng)應(yīng)用編程實(shí)踐,包括Android開(kāi)發(fā)環(huán)境搭建、移動(dòng)程序結(jié)構(gòu)、用戶(hù)界面、組件通信、數(shù)據(jù)存儲(chǔ)與訪問(wèn)、后臺(tái)服務(wù)、WiFi管理、Socket、HTTP、藍(lán)牙及百度應(yīng)用開(kāi)發(fā)實(shí)驗(yàn); 第4部分是Android移動(dòng)網(wǎng)絡(luò)應(yīng)用編程課程設(shè)計(jì),包括設(shè)計(jì)目的、題目及要求等。
全書(shū)采用案例教學(xué)和項(xiàng)目引導(dǎo)驅(qū)動(dòng)相結(jié)合的方式,除了對(duì)每章的重要知識(shí)點(diǎn)輔以范例講解外,還以“移動(dòng)點(diǎn)餐系統(tǒng)”項(xiàng)目為線索,在將各章節(jié)知識(shí)點(diǎn)串起來(lái)的過(guò)程中重點(diǎn)揭示如何將所學(xué)技能進(jìn)行實(shí)戰(zhàn),從而領(lǐng)悟到更多的工程技巧。通過(guò)本書(shū)的學(xué)習(xí)能讓讀者快速掌握移動(dòng)網(wǎng)絡(luò)應(yīng)用程序的開(kāi)發(fā)流程和編程技能,并獲得較好的工程實(shí)踐體驗(yàn)。
使用目前流行的Android Studio開(kāi)發(fā)環(huán)境,講解了Studio環(huán)境中開(kāi)發(fā)Android應(yīng)用程序的步驟和方法。
通過(guò)引進(jìn)工程案例,采用項(xiàng)目引導(dǎo)與驅(qū)動(dòng)的方法,改變以往程序設(shè)計(jì)類(lèi)課程的單純知識(shí)講解及簡(jiǎn)單例子模擬的教學(xué)方式,使學(xué)生在掌握移動(dòng)網(wǎng)絡(luò)編程技能的同時(shí),獲得更好的工程實(shí)踐體驗(yàn)。
內(nèi)容及案例遵循由淺入深、逐步深入的原則。在知識(shí)的講解上力爭(zhēng)做到深入淺出,重難點(diǎn)突出。
第
5
章Android數(shù)據(jù)存儲(chǔ)與訪問(wèn)
5.1簡(jiǎn) 單 存 儲(chǔ)
5.1.1SharedPreferences
SharedPreferences是Android中最容易理解的數(shù)據(jù)存儲(chǔ)技術(shù),常用來(lái)存儲(chǔ)一些輕量級(jí)的數(shù)據(jù),采用keyvalue(鍵值對(duì))的方式保存數(shù)據(jù),類(lèi)似于Web程序的Cookie,通常用來(lái)保存一些配置文件數(shù)據(jù)、用戶(hù)名及密碼等。
SharedPreferences不僅能夠保存數(shù)據(jù),還能實(shí)現(xiàn)不同應(yīng)用程序間的數(shù)據(jù)共享,支持三種訪問(wèn)模式: 私有(MODE_PRIVATE)、全局讀(MODE_WORLD_READABLE)、全局寫(xiě)(MODE_WORLD_WRITEABLE)。其中MODE_PRIVATE是默認(rèn)模式,該模式下的配置文件只允許本程序和享有本程序ID的程序訪問(wèn); MODE_WORLD_READABLE模式允許其他應(yīng)用程序讀文件; MODE_WORLD_WRITEABLE模式允許其他應(yīng)用程序?qū)懳募。如果既要全局讀又要全局寫(xiě),可將訪問(wèn)模式設(shè)置為MODE_WORLD_READABLE +MODE_WORLD_WRITEABLE。
除了定義SharedPreferences的訪問(wèn)模式,還要定義SharedPreferences的名稱(chēng),該名稱(chēng)是SharedPreferences在Android文件系統(tǒng)中保存的文件名稱(chēng),一般聲明為常量字符串,以方便在代碼中多次使用,如:
SharedPreferences sharedPreferences = getSharedPreferences("filename", MODE_PRIVATE);
其中,getSharedPreferences()為Android系統(tǒng)函數(shù),通過(guò)它可獲得SharedPreferences實(shí)例。
獲取SharedPreferences實(shí)例后,通過(guò)SharedPreferences.Editor類(lèi)對(duì)SharedPreferences實(shí)例進(jìn)行修改,完成數(shù)據(jù)設(shè)置,最后調(diào)用commit()函數(shù)保存數(shù)據(jù)。SharedPreferences廣泛支持各種基本數(shù)據(jù)類(lèi)型,包括整型、布爾型、浮點(diǎn)型和長(zhǎng)整形等,如:
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("Name", "Tom");
editor.putFloat("Height", 1.78f);
editor.commit();
如果需要從已保存的SharedPreferences中讀取數(shù)據(jù),同樣調(diào)用getSharedPreferences()函數(shù),并在函數(shù)的第1個(gè)參數(shù)中指明需要訪問(wèn)的SharedPreferences名稱(chēng),然后通過(guò)get()函數(shù)獲取保存在SharedPreferences中的鍵值對(duì),如:
SharedPreferences mySdPferences = getSharedPreferences("filename", MODE_PRIVATE);
String name = mySdPferences.getString("Name", "Default Name");
float height = mySdPferences.getFloat("Height", 1.70f);
其中,get()函數(shù)的第1個(gè)參數(shù)是鍵值對(duì)的鍵名,第2個(gè)參數(shù)是無(wú)法獲取鍵值時(shí)的默認(rèn)值。
Android系統(tǒng)為每個(gè)應(yīng)用程序建立了與包同名的目錄,用來(lái)保存應(yīng)用程序產(chǎn)生的數(shù)據(jù)文件,包括普通文件、SharedPreferences文件和數(shù)據(jù)庫(kù)文件等。SharedPreferences產(chǎn)生的文件就保存在/data/data//shared_prefs目錄下。
……