編輯:Android開發實例
本文示例源代碼或素材下載
項目簡介
這裡提供的Password Manager項目是Steven Osborn編寫的PasswordSafe(在Apache License下發行)的改寫版,目前已經實現了在Android平台下的基本密碼管理功能。項目源代碼中使用db4o代替了SQLite,這樣不但使持久化處理更為直觀,而且使開發過程更快速、整個應用更加高效。
在這個項目中,你可以獲得以下資源:
◆db4o與SQLite之間在基本持久化操作上的比較
◆完整的Android示例應用代碼
◆應用運行時的視頻演示
基本功能
本應用基本功能是安全地保存網站登錄信息,例如URL、用戶名、密碼,它使用128位AES加密算法。使用者必需提供正確的密碼才能訪問應用,而密碼被用於加密/解密應用數據。
這裡提供了采用db4o技術的Password Manager在Android模擬器下運行的在線視頻:
http://www.youtube.com/watch?v=UFSD44AcBwM
如果你下載了源代碼(請見本頁末尾的詳細說明),那麼你會看到原來PasswordSafe中的DBHepler類(實現SQLite下的持久化)已經被替換為Db4oHelper類(實現db4o的持久化)。現在,就讓我為你展示db4o和SQLite在持久化處理上的不同之處吧!
SQL初始化開銷
這是你需要在SQLite下初始化密碼管理器SQL代碼(表名、表創建命令等):
而下面是等價的db4o代碼:
正如你所看到的,在db4o中無需預定義schema(你可以將db4o對象模式當作schema使用,並且在這種對象模型下進行重構是非常優雅的,甚至在一些簡單的情況下是自動化的)。
數據庫打開和創建機制
在SQLite中,你需要調用兩種不同的方法,一種是創建數據庫,另一種是打開數據庫:
而在db4o中,你只需要調用openFile(),它將根據數據庫是否存在來創建或者打開數據庫:
也許這裡的差別看起來無關緊要,但更簡短的代碼才是更清晰的代碼!
更新和插入數據
使用關系數據庫SQLite時,你需要根據具體情況傳送插入或更新命令(完全正確地構造反射數據表字段的SQL字符串確並非易事):
這裡是等價的db4o代碼:
你是否發現了不同?db4o實際上是一種單行代碼(one-line-of-code)的存儲數據庫。db4o自動檢查對象是新的還是已存在的,並根據對象狀態進行更新或者插入(我們只需要調用set操作)。值得注意的是,在上面的代碼中我們手工提供了對象的新id,而db4o是可以將其配置為自增字段的。
查詢所有記錄
在SQLite中,我們不得不進行人工的對象關系映射:
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
可以輕松地控制鈴聲音量和鈴聲配置文件,即:(無聲,震動,響亮等)在Android中。 Android提供了訪問這些控件AudioManager類。
前面文章介紹了如何使用JAVA的反射機制來調用藍牙的隱藏API,本文繼續來練習JAVA的反射機制,探秘TelephonyManager在Framework裡包含卻
概述 有圖有真相,所以先上圖: 上圖是從Android官網截下的Activity的生命周期流程圖,結構非常清晰,它描述了Activity在其生命周期中所有可能發