Android設計平台的免費軟體能夠把利用手機上的照相機把手機變成一個移動條碼閱讀器,通過與全球各地的手機製造商和行動電信業者結成夥伴,開發既有用又有吸引力的行動服務,並推廣這些產品。
目前我瞭解到的一個是SQLite,一個就是db4o。SQLite 是Android設計平台內建的精簡型關係型資料庫,能實現標準關係型資料庫的大部分功能。db4o是對象資料庫,在編程上更為簡單。個人比較看好對象資料庫在手機上的使用。因為在手機上所要處理的資料畢竟是少量的。
對效能要求不象資料庫伺服器那麼高。這時對象資料庫編程簡單、可靈活適應未來變化的優點就顯現出來了。但因為db4o不是Android內建支援的,目前還做不到和Android特有的一些編程組件的無縫結合。 Android內嵌了SQLite資料庫,這是一個輕量級的關係型資料庫。與J2SE不同,Android上定義了一套新的資料庫操作API,而不是使用JDBC。
db4objects宣布了其旗艦產品db4o可以無縫的運行在Android平台。db4o是一款物件導向的原生(native)資料庫。我個人不是很喜歡Android內建的這套資料庫API,因為它並不遵循JDBC規範。在我的理解,Android的一大亮點就是擁抱現有的技術,贏得了java開發人員的喜歡。
而新的查詢API意味著原有的基於JDBC的資料庫相關的程式不能直接運行於Android。從這個角度來講,db4o在所有的API方面保持了高度一致,無需做任何修改,因為db4o是完全基於java的原生資料庫。
開發人員可能更習慣使用面向關係型資料庫,但是db4o在API設計方面非常適合行動裝置的開發,非常簡潔。拿Android平台內建的連絡人資料結構來講,儲存,讀取連絡人,如果使用db4o,只需10行只有的代碼,如果使用SQLite的話,則需要上百行代碼。
db4o直接面對對象,無需把對象轉化為表結構欄位,因為編程更不容易出錯。和服務端不同,手機上的資料庫更要求自適應管理,而無需資料庫管理員,這也是db4o的設計目標之一。 db4o在Android設計平台上的部署不需要任何配置或改動,就當作一個普通的library就可以流暢運行了。由於市場上還沒有Android手機出售所以無法給出確切的效能比較。
但是在模擬器上的比較證明db4o的綜合效能絲毫不遜於SQLite, 在一些情況下甚至有數量級的優勢,比如已知資料的id來進行刪/改/查等,對於手機應用這是非常普遍的使用情境。
Android設計平台上目前沒有成熟的O/R Mapping架構,對於大多數習慣了Hibernate,JDO,iBatis等各種架構的開發人員來說,物件導向資料庫更符合他們的使用習慣。而且物件導向資料庫直接避免了O/R Mapping的問題,重構代碼完全不用考慮重構資料庫或者配置,更不用修改SQL,因此更加敏捷。