Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android與db4o的完美結合:Password Manager

Android與db4o的完美結合:Password Manager

編輯: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中,我們不得不進行人工的對象關系映射:

  1. 上一頁:
  2. No
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved