Android Studio集成greenDAO 3.0基础教程

greenDAO 3是一款当前Android开发较流行的SQLite框架,该框架在集成、使用方面和其他框架有所不同,本文将从以下几方面帮助初学者了解greenDAO 3:1、快速集成greenDAO 3,2、初步体验greenDAO 3对数据增、删、改、查的便捷,3、深入理解Gradle Plugin插件,4、深入理解注解的基础知识,5、greenDAO 3源码分析

一、快速集成greenDAO 3

  • 01

    与以往集成框架不同的是,greenDAO 3除了需要在build.gradle文件的dependencies标签添加依赖包greendao:3.2.2外,还需要下载并添加一个Gradle插件,该插件叫:greendao-gradle-plugin:3.2.2,使用Android Studio插件module后,打开build.gradle文件

  • 02

    第一步:添加greenDAO依赖包,如下图:

  • 03

    第二步:下载并添加greenDAO 3构建插件,如下图:

  • 04

    细心的读者会发现,greenDAO 3插件的代码和apply plugin: 'com.android.application'的代码有几分相似,后者的代码在每一个新建的Application Module中都会出现,如果新建的是一个Library Module,上述代码变成apply plugin: 'com.android.library',现在我们先不讨论,后面会深入理解Gradle Plugin。

  • 05

    第三步:同步buid.gradle文件,配置如下图

  • 06

    在项目中展开External Libraries,可以看到greendao-3.2.2和greendao-api-3.2.2两个类库,后面会分析这两个类库的源码,从源码中学习它们的使用,如下图:

  • 07

    这个时候,我们已经完成Android Studio集成greenDAO 3的任务,接下来greenDAO怎么使用。

二、初步体会greenDAO 3增、删、改、查数据的便捷

  • 01

    greenDAO 3相比greenDAO 2有了重大的改变(本文介绍的是greenDAO 3的用法),greenDAO 3使用了注解的方式定义Java实体和SQLite表之间的关系,实体和表之间处于一种关联的关系,当实体中的属性发生改变,调用update方法更新表中的内容;当需要往表添加内容,调用insert方法插入数据,减少开发者编写重复、繁琐的SQL代码,体会greenDAO 3带来数据操作的便捷

  • 02

    现在,需要创建一张学生表,用于保存学生的基本信息:姓名、年龄、成绩,使用greenDAO 3框架就会显得很方便,代码如下:

  • 03

    新建一个Student类,并添加greenDAO相关的注解,注解包括:@Entity定义SQLite表相关内容,@Id定义表的主键,@NotNull定义表的列不为空,还有其他注解的标签,TeachCourse将在后面进行介绍。

  • 04

    前面我们不清楚为什么需要添加一个Gradle Plugin,现在我们在新建Student类后,点击菜单Build——>Make Project或Make Module xxx,然后等待构建完成,需要注意:原来的Student类自动添加了一些额外的代码,如下:

  • 05

    这是使用greenDAO 3其中一个便捷的地方,减少我们编写额外的代码(关于会自动生成哪些代码,学习greenDAO注解的时候会说到)。 如果你没有在build.gradle文件的greendao标签中定义属性:daoPackage,默认生成表的相关Java代码位于如下路径:

  • 06

    我们展开上述路径,看到如下图:

  • 07

    除了生成生成表的相关Java代码外,还多创建了两个类DaoMaster和DaoSession,这两个类用于操作表的增、删、改、查,同时这两个类在第一次构建生成后,以后不再重新生成。简单地说,如果我们还想要创建一张课程表Course,代码如下:

  • 08

    点击菜单Build——>Make Project或Make Module xxx,然后等待构建完成,生成新的CourseDao类,而不会重新生成DaoMaster和DaoSession,如下图:

  • 09

    打开StudentDao类,发现里面自动生成了一些创建表的SQL语句以及一些操作表的方法;DaoSession类是greenDAO框架其中一个重要的接口,为开发者提供访问实体的操作和DAOs的一系列操作,基本用法如下:

  • 10

    每创建一个新的session,需要分配对应的内存空间,最好的做法:在application的onCreate()方法初始化,对外提供访问session的方法,减少内存的消耗,如下图:

  • 11

    2.1 插入数据

  • 12

    2.2 删除数据

  • 13

    2.3 更新数据

  • 14

    2.4 查询数据

  • 15

    到此,我们已经体会到greenDAO对数据增、删、改、查的便捷,接下来将进行高级教程的学习。

三、深入理解Gradle Plugin插件

  • 01

    Gradle是一种新一代的自动化构建工具,类似于Apache ant和Apache Maven,既继承了后两者自动化工具的优点,又添加新的特性,它的特性是:使用Groovy而不是xml编写配置文件,大大降低构建脚本的大小而且更易读。

  • 02

    Groovy虽说是一门新的语言,但因其源自于Java运行在Java Virtual Machine,所以和Java语言有很多相似的地方,更加简单、轻量级,比如:

  • 03

    3.1 Java和Groovy定义类的区别

  • 04

    3.2 Java和Groovy定义变量的区别

  • 05

    3.3 Java和Groovy定义方法的区别

  • 06

    3.4 Java和Groovy调用方法的区别

  • 07

    3.5 Java和Groovy其他方面的区别

  • 08

    3.6 自定义Gradle Plugin

  • 09

    在当前的例子中,greendao-gradle-plugin是一个使用Groovy语法编写的自定义插件,上传到开源的仓库,只需要在build.gradle添加如下代码,即可在项目中集成使用:

  • 10

    现在,我们需要定义自己的一个插件,自定义的插件上传本地仓库,只需要在build.gradle文件添加如下代码,即可使用:

  • 11

    在本地创建一个Groovy项目,项目名称为app-groovy,项目结构如下图:

  • 12

    app-groovy项目的根目录包括build.gradle和settings.gradle两个文件,如下图:

  • 13

    groovy和resources属于两个固定名称的文件夹,前者用于存储Groovy语言编写的代码,后者用于存放当前插件的属性文件,如下图:

  • 14

    3.7 详细了解上述各个文件代码

  • 15

    build.gradle文件添加了两个插件groovy和maven,uploadArchives是添加插件提供的一个task,作用是将当前插件上传本地,代码如下:

  • 16

    settings.gradle文件定义当前插件的名字,只有一句代码,如下:

  • 17

    groovy文件夹内添加对应的包名,然后新建一个以.groovy后缀的文件,实现Plugin<Project>接口,重写apply()方法,该方法会在应用插件的时候回调,代码如下:

  • 18

    resources文件夹包含子文件夹:META-INF——>gradle-plugins,然后新建以.properties为后缀的属性文件,文件名与apply plugin ''的插件名称一致,文件内部添加实现类的目录位置,代码如下:

  • 19

    到此完成了自定义插件的app-groovy的开发

  • 20

    3.8 Gradle工具自动化构建app-groovy

  • 21

    Android Studio默认下载了Gradle自动化构建工具到本地,在AS的安装目录Android Studio\gradle找到,配置一下gradle的环境变量,即可在cmd命令行使用,可以参考《Android开发之深入理解Android Studio构建文件build.gradle配置》

  • 22

    Gradle具体构建过程步骤如下:

  • 23

    1、gradle -v,检查环境变量是否配置成功

  • 24

    2、gradle task_name,执行指定的task_name,这里执行uploadArchives,在项目同级目录创建仓库repo,如下图:

  • 25

    3、gradle -q tasks --all,如果你不清楚项目包含哪些可执行的tasks,使用上述命令可检查项目包含可执行的task(切换到当前项目根目录),如下图:

  • 26

    到此,TeachCourse完成了app-groovy项目的构建,这个过程和使用AS构建Android项目是一样

  • 27

    3.9 如何引用自定义的Gradle Plugin?

  • 28

    在app-groovy项目的同级目录下新建文件夹sample,然后里面新建文件build.gradle,代码如下:

  • 29

    1、gradle build,检查当前build.gradle文件应用的插件,如下图:

  • 30

    2、gradle myTask,执行指定的task,如下图:

  • 31

    3、到此,TeachCourse完成了build.gradle文件应用Gradle Plugin

  • 32

    PS:由于篇幅的原因,剩下的内容:,,下一篇文章介绍

(0)

相关推荐

  • android studio升级到3.0之后的一个运行错误

    android studio升级到3.0之后,编译时报的错误都处理完毕了,但是运行时还是报错,具体错误:Caused by: java.lang.ClassNotFoundException: Did ...

  • Android studio录制代码宏的详细教程

    显示的很多的工具中都有一个功能未录制宏的功能,在例如excel的功能也会有自己的功能,在Android studio的开发的代码的过程中,那么就会用到的是录制宏的功能,对代码的中能进行对代码快速的进行 ...

  • Android Studio下载安装及配置图文教程

    操作方法 01 AndroidStudio下载地址:https://developer.android.com/sdk/installing/studio.html#download 如果你没有翻墙或 ...

  • 最全面的Android Studio使用教程(图文)

    Android Studio是一套面世时间还不长的IDE(即集成开发环境),目前已经免费向谷歌及Android的开发人员发放.Android Studio以IntelliJ IDEA为基础,后者同样是 ...

  • 最全面的Android Studio使用教程

    Android Studio是一套面世时间还不长的IDE(即集成开发环境),目前已经免费向谷歌及Android的开发人员发放.Android Studio以IntelliJ IDEA为基础,后者同样是 ...

  • Android studio使用教程

    Android Studio是一款面向Android开发者的IDE,支持Windows.Mac.Linux等操作系统,基于流行的Java语言集成开发环境IntelliJ搭建而成.该IDE在2013年5 ...

  • Android Studio怎么用?Android Studio使用教程图文详解

    Android Studio 1.0正式版终于发布了!谷歌表示Android Studio 1.0 能让开发者“更快更有生产力”,并认为它可以代替 Eclipse,同时为Eclipse 用户提供迁移步 ...

  • Android studio从Github克隆下载源代码并导入的教程

    自从Android studio给开发代码的工具绑定了很多的插件,也集成了github的功能可以通过这个github直接下载到自己仓库中的源代码,然后直接加载到Android studio的开发界面中 ...

  • Android studio使用git代码追溯到上个文件的教程?

    在Android studio中集成了相当多的工具用于管理代码,应该现在经常使用的git的方式来管理管理,用于上传代码或者进行下载代码库中,而在git中进行管理的话,那么就可以进行历史的记录信息,如果 ...