詳細說明Android設計平臺原理
Android設計平臺的免費軟件能夠把利用手機上的照相機把手機變成一個移動條碼閱讀器,通過與全球各地的手機制造商和移動運營商結成合作伙伴,開發(fā)既有用又有吸引力的移動服務,并推廣這些產(chǎn)品。
目前我了解到的一個是SQLite,一個就是db4o。SQLite 是Android設計平臺內(nèi)置的精簡型關系型數(shù)據(jù)庫,能實現(xiàn)標準關系型數(shù)據(jù)庫的大部分功能。db4o是對象數(shù)據(jù)庫,在編程上更為簡單。個人比較看好對象數(shù)據(jù)庫在手機上的使用。因為在手機上所要處理的數(shù)據(jù)畢竟是少量的。
對性能要求不象數(shù)據(jù)庫服務器那么高。這時對象數(shù)據(jù)庫編程簡單、可靈活適應未來變化的優(yōu)點就顯現(xiàn)出來了。但因為db4o不是Android內(nèi)置支持的,目前還做不到和Android特有的一些編程部件的無縫結合。 Android內(nèi)嵌了SQLite數(shù)據(jù)庫,這是一個輕量級的關系型數(shù)據(jù)庫。與J2SE不同,Android上定義了一套新的數(shù)據(jù)庫操作API,而不是使用JDBC。
db4objects宣布了其旗艦產(chǎn)品db4o可以無縫的運行在Android平臺。db4o是一款面向?qū)ο蟮脑?native)數(shù)據(jù)庫。我個人不是很喜歡Android內(nèi)置的這套數(shù)據(jù)庫API,因為它并不遵循JDBC規(guī)范。在我的理解,Android的一大亮點就是擁抱現(xiàn)有的技術,贏得了java開發(fā)人員的喜歡。
而新的查詢API意味著原有的基于JDBC的數(shù)據(jù)庫相關的程序不能直接運行于Android。從這個角度來講,db4o在所有的API方面保持了高度一致,無需做任何修改,因為db4o是完全基于java的原生數(shù)據(jù)庫。
開發(fā)人員可能更習慣使用面向關系型數(shù)據(jù)庫,但是db4o在API設計方面非常適合移動設備的開發(fā),非常簡潔。拿Android平臺內(nèi)置的聯(lián)系人數(shù)據(jù)結構來講,存儲,讀取聯(lián)系人,如果使用db4o,只需10行只有的代碼,如果使用SQLite的話,則需要上百行代碼。
db4o直接面對對象,無需把對象轉(zhuǎn)化為表結構字段,因為編程更不容易出錯。和服務端不同,手機上的數(shù)據(jù)庫更要求自適應管理,而無需數(shù)據(jù)庫管理員,這也是db4o的設計目標之一。 db4o在Android設計平臺上的部署不需要任何配置或改動,就當作一個普通的library就可以流暢運行了。由于市場上還沒有Android手機出售所以無法給出確切的性能比較。
但是在模擬器上的比較證明db4o的綜合性能絲毫不遜于SQLite, 在一些情況下甚至有數(shù)量級的優(yōu)勢,比如已知數(shù)據(jù)的id來進行刪/改/查等,對于手機應用這是非常普遍的使用場景。
Android設計平臺上目前沒有成熟的O/R Mapping框架,對于大多數(shù)習慣了Hibernate,JDO,iBatis等各種框架的開發(fā)人員來說,面向?qū)ο髷?shù)據(jù)庫更符合他們的使用習慣。而且面向?qū)ο髷?shù)據(jù)庫直接避免了O/R Mapping的問題,重構代碼完全不用考慮重構數(shù)據(jù)庫或者配置,更不用修改SQL,因此更加敏捷。
【編輯推薦】