`
star65225692
  • 浏览: 273294 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类

Android使用Db4o数据库的方法

阅读更多

db4o是一个被广泛欢迎的面向对象数据库,起初它基于Java平台,而后发布了.Net平台的版本,db4o具有双授权(GPLv2和商业授 权),所以在很多开源项目中都可以看到db4o的身影。面向对象数据库的出现是为了更好的适合面向对象方式开发应用程序,因为传统的关系型数据库与OO模 型具有“阻抗不匹配”问题,目前广被接受的方案是使用ORM(对象关系映射)框架来解决。但是Java中的Hibernate、基于标准的JPA、轻量级 iBatis或.Net下的NHibernate都无法解决复杂度问题,且ORM框架中广泛使用的动态增强方式在资源受限环境下的性能开销(Dalvik 不使用堆实现VM的其中一个原因就是性能优化的考虑)很难被接受,所以在Android发布时选择了资源占用小内核简单的SQLite作为数据库引擎,但 这意味着Android平台将默认使用关系模型数据库。db4objects这样评价了这个组合的遗憾之处:

然而,令人惊讶的是Android推出时依然使用了关系型数据库,它是与整个平台的面向对象风格所不和谐的唯一部分。幸运的是,db4objects有相应的解决方案。db4o可以无缝的运行于Android,使简单的实现原生对象存取成为可能。

虽然关系型数据库对于大多数开发者来说都非常熟悉,但是对于喜欢使用一致的OO模型进行持久化的程序员来说这就有些“困扰”了,因为前面所述在这种 环境下选择ORM是不现实的。db4o拥有方便嵌入应用程序中的引擎,适合与应用程序共同分发,而且它具有轻量特性,运行文件只有600k左右。这些特性 与SQLite相呼应,因为SQLite也是以容易嵌入、资源占用小见长的,db4o作为面向对象数据库在这些对应方面不会逊色,可以作为一个 SQLite的很好的面向对象替代方案。db4o的新闻中这样描述了使用了像db4o这类面向对象数据库的好处:

使用像db4o这样的面向对象数据库有很多好处,包括代码更容易维护、可以基于更灵活的数据模型创建各种新颖的应用程序。不同于僵化的,预先定义的 SQL表(table),db4o允许存储灵活、形式自由的数据,这些数据可以随时更改或修正。而且,db4o还允许通过dRS(db4o复制系统)高效 的复制数据,这也是Android中一个缺失的环节。通过dRS,开发者可以编写应用程序让用户的数据备份到后台服务器或者家中的PC上。也就是说,一个 用户可以在电话上开始玩一个游戏,然后暂停,晚上可以在家中继续玩。商业的应用场景包括基于地点的自动配置信息同步(field force automation),RFID的数据采集,和复杂导航系统的本地地理数据缓存。

db4o支持Android平台对于程序员来说就是提供了在移动平台使用面向对象API(创新的数据查询方式,使用原生查询可以语义化、类型安全的 对数据进行查询)进行持久化和查询的工具,也补全了Android平台开发API中唯一不符合面向对象的模块(即SQLite对应的关系型数据库),对于 “开放手机联盟”来说意味着更多的开源厂商开始向开放联盟靠拢。Db4Objects的新闻稿中这样描述了让db4o运行于Android平台的过程和一 些相关的示例项目:

在下载了Android SDK后几分钟,db4objects的工程师就使db4o运行于Android上了。Android上的db4o通过了3,500个单元测试。现在 db4o拥有达到设备级别(device-grade)的软件质量,在关键性场合得到了证明,它被部署于高速列车、飞行器、复印机等设备中,它也可以被部 署于Android开发者的掌上设备中。

现在db4o刚刚宣布支持Android,所以可以参考的程序范例并不多。db4o的社区经理German Viscuso将PasswordSafe移植到db4o,它可能是第一个可以在Android下与db4o协同工作的软件包。而 PasswordSafe的作者Steven Osborn也称赞说:“太棒了,db4o的代码比我的更优雅”。另外一个样例程序是MapMe,它可以在 Android上面显示2D地图,使用了db4o存储和查询Google地图的数据信息。

Ted Neward曾经多次提到过使用db4o带来的好处,InfoQ曾经在“借用对象数据库db4o简化开发过程”中描述过db4o在优化开发过程方面的优 势,它能够更简单的适应持久化模型不断的变化,能够平滑的实现数据模型重构,所以在测试驱动开发中会带来实际的红利。对于db4o与Android都还处 于观望态度的程序员可以借此机会一起尝试一下这个移动开发平台和面向对象数据库带来的新编程模型。

Android相关内容:

分享到:
评论

相关推荐

    Android操作db4o数据库的例子

    最近学习db4o时参考网上的教程做的一个小程序,基于Android 2.2模拟器开发(所以模拟器最低版本也要是2.2). 简介: 1.直接在sd卡上建立数据库,而不是网上那种在data目录下创建,这样在实际应用中更方便移动数据库. 2....

    android开源数据库框架db4o

    db4o既可以作为内存数据库使用,提高数据操作速度,也可以选择持久化到磁盘,确保数据在应用关闭后仍可恢复。 **5. 处理关系** db4o支持对象间的引用,可以处理对象关系,如一对多、多对一、多对多的关系。在存储时...

    android db4o 8.1

    2. **初始化**:在Android应用启动时,初始化DB4O数据库,指定一个本地文件路径作为数据库文件。 3. **对象存储**:通过DB4O的API创建数据库实例,然后使用`store()`方法保存对象。 4. **对象查询**:使用`query()...

    db4o8.0的相关API

    标题中的"db4o8.0的相关API"指的是db4o版本8.0提供的编程接口,这个版本可能包含了对数据库操作的各种方法和类,使得开发者能够方便地与数据库进行交互。这些API可能包括对象的保存、查询、更新和删除等功能,同时也...

    db4o-8.0 相关的jar包,适用java开发,Android开发

    **db4o-8.0** 是一个针对Java和Android平台的开源对象数据库系统,它允许开发者以对象为导向的方式存储和检索数据,无需传统的SQL查询。这个压缩包包含db4o 8.0版本的完整组件,使得Java和Android开发者能够方便地在...

    Android开发-面向对象的数据库Db4o.doc

    在Android开发中,Db4o提供了一种替代传统关系型数据库如SQLite的方式,尤其是在面对面向对象编程时,它解决了对象关系映射(ORM)带来的复杂性和性能问题。 Android是一个基于Linux内核的移动开发平台,由Google...

    直接保存对象到数据库Demo

    3. **初始化db4o数据库**: 在应用启动时,你需要创建一个db4o数据库实例。这通常在Application或Activity的onCreate方法中完成。数据库文件可以保存在外部或内部存储,取决于应用需求。 4. **保存对象**: 使用db4o...

    Android高薪之路:Android程序员面试宝典 李宁

    6 4 面向对象数据库:db4o 第7章 网络与加密 7 1 客户端Socket 7 2 服务端Socket 7 3 非阻塞I O 7 4 WebView控件 7 5 HTTP和HTTPS 7 6 加密技术 第8章 蓝牙与Wi Fi 8 1 蓝牙 8 2 Wi Fi 第9章 电话 短信和联系人 9 1 ...

    基于android的个人记账系统分析与设计本科-学位论文.doc

    - 技术可行性:现有技术如Android平台、Java编程、SSH2框架和db4o数据库等已成熟,可以支持系统的开发。 - 经济可行性:开发成本相对较低,且一旦开发完成,可以通过广告或付费功能等方式获得收益。 - 社会可行性:...

    基于Android的个人记账系统分析与设计本科毕业设计论文.doc

    然后,论文对移动记账应用的特点和现状进行了分析,讨论了面向对象方法、Android移动操作系统、Java程序设计语言、SSH2系统框架和db4o对象型数据库等关键技术的选择和应用。 在第2章系统分析中,论文对个人记账系统...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    Android入门资料

    2. **系统库和运行环境**:包括 OpenGL ES(用于 2D 和 3D 图形)、SQLite(关系型数据库)、db4o(对象数据库)和媒体库等。Google 使用 Apache Harmony 类库,支持全面开源的 Java 开发,同时 Dalvik 虚拟机运行...

    基于Android的个人记账系统分析及设计本科毕业设计论文.doc

    基于Android平台的个人记账系统需要使用多种技术,包括面向对象方法、Android移动操作系统、Java程序设计语言、SSH2系统框架、db4o对象型数据库等。这些技术的应用能够确保系统的可靠性、实时性和安全性。 2. 系统...

    OpenGPX-开源

    这个库可能包含了对db4o数据库的创建、查询、更新和删除等操作的接口和工具,帮助应用高效地管理和操作存储的数据。 readme.txt文件通常是项目中提供的说明文档,可能包含了关于如何安装、配置、使用OpenGPX以及对...

Global site tag (gtag.js) - Google Analytics