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