簡(jiǎn)介 本項(xiàng)目基于Davanum Srinivas開發(fā)的BrowseMap,BrowseMap是一個(gè)為Android開發(fā)的Google Maps瀏覽器,能提供:在Android上瀏覽Google Maps 地圖的放大和縮小 跟隨鼠標(biāo)移動(dòng)(在真實(shí)設(shè)備上應(yīng)該是觸摸屏) 交通和衛(wèi)星視圖之間轉(zhuǎn)換 定位(這樣的地圖應(yīng)用程序基礎(chǔ)功能實(shí)際上已經(jīng)在Android上實(shí)現(xiàn)了)但是MapMe在這些基礎(chǔ)功能之上提供了不少新特性,這都得感謝db4o對(duì)象持久引擎:
屏幕截圖 想看應(yīng)用程序是如何運(yùn)作的,你可以觀看在YouTube上的MapMe視頻、從一個(gè)外部服務(wù)器下載高分辨率視頻(30 Mb)或下面的屏幕截圖:db4o總部(衛(wèi)星+交通視圖)MapMe主菜單:建立書簽/導(dǎo)航點(diǎn)(navpoint):保存的書簽/導(dǎo)航點(diǎn)(navpoint)列表:MapMe是如何運(yùn)用db4o的如果你查看源代碼(下面有下載),你會(huì)發(fā)現(xiàn)DB helper類處理了所有的持久化操作(開啟、存儲(chǔ)、查詢、計(jì)數(shù)數(shù)據(jù)庫(kù)),而這一切都不超過80行代碼!這一切都很簡(jiǎn)單,而且不會(huì)喪失性能。讓我們來看一些項(xiàng)目中用到的持久化方法。
開啟數(shù)據(jù)庫(kù) 開啟數(shù)據(jù)庫(kù)的確簡(jiǎn)單,并且在必要的時(shí)候還能自動(dòng)生成數(shù)據(jù)庫(kù)文件。一旦打開,db4o將鎖定數(shù)據(jù)庫(kù)文件。
注意,為MapBookmark對(duì)象建立的索引字段是“name”,并設(shè)置激活和更新級(jí)別。保存書簽
在這里我們調(diào)用一系列的操作,無論對(duì)象是否存在于數(shù)據(jù)庫(kù),對(duì)象都會(huì)被更新或插入。
在保存到數(shù)據(jù)庫(kù)之前,我們?cè)O(shè)置好所有字段。
根據(jù)名字查詢書簽我們通過Query by Example(QBE)傳入一個(gè)原型來取回以名字為條件的書簽。
QBE利用反射來檢查原型對(duì)象的字段。查詢所有書簽
這里我們把SODA查詢結(jié)果拷貝到ArrayList中。但要注意,當(dāng)使用Native Queries時(shí)你不必這樣做(在這種情況下將直接返回List<MapBookmark>)。
刪除書簽
如果你的對(duì)象在db4o參考系統(tǒng)中存在,你可以輕松的調(diào)用delete()操作從數(shù)據(jù)庫(kù)中刪除它。書簽計(jì)數(shù)
要通過查詢來進(jìn)行對(duì)象計(jì)數(shù),你只要詢問查詢結(jié)果的大小即可。待完成
下載MapMe.ZipYouTube上的MapMe視頻高分辨率視頻(30 Mb)請(qǐng)注意!引用、轉(zhuǎn)貼本文應(yīng)注明原譯者:RosenJiang 以及出處:http://www.tkk7.com/rosen
Powered by: BlogJava Copyright © Rosen