DBFlow 学习笔记(一)

来源:互联网 发布:怎么判别淘宝托管被骗 编辑:程序博客网 时间:2024/06/05 14:15

  走进 DBFLOW : 高性能的 Android ORM DB 库

      有许多流行的 ORM DB 库(如:Active Android,Sprinkles,GreedDAO,SugarORM),并且似乎每个库都是采用反射来实现核心的数据库交互。 然而 DBFlow 一个更高效和强大的 Android ORM DB 库。

   反射带来了的风险

       在 Java 虚拟机中,反射被广泛用于需要在应用运行时能够检查并修改的场景。简而言之,它允许我们在运行时通过检索指定的内容,获得对应对象的属性和数据。了解这些之后,举个例子,我们能通过数据库指定的表中的一列匹配一个Model对象的一个字段。
       在一个应用中选择数据密集的后端,性能是一个主要的考虑因素。根据 Java 官方文档,反射是不能被编译器优化的,因此选择反射代替“本地执行”带来了不可忽视的性能缺陷。

    注解处理:一个更为高效的选择

       在 Java 中,注解处理是一个编译器运行之前的步骤,它收集一个项目中所有定义的注解并预理执行了一些操作。编写注释处理不是一个简单的任务,他有两个不可忽视的障碍:学习曲线和编写可读性代码。学习曲线是非常陡的,因为注解预理的 API 相比反射的 API , 它包含了一系列不同的类名。其次,我们是需要编写生成代码的代码。由此,编写注解处理代码是要反复试验,直到这些代码能正确的编译并运行得到预期结果。

       DBFlow 使用这个功能在编译时来生成各种类和数据库的交互代码。它使得这个库的本地执行速度能和自行编写的代码同样快捷。当然生成的代码是透明的——即我们也能在应用运行时看到这些代码并且能在编译时捕捉到错误。而反射确是很难调试的,因为我们只能在运行时捕捉错误。


原文地址:http://www.raizlabs.com/dev/2015/02/go-dbflow-fastest-android-orm-database-library

0 1
原创粉丝点击