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