「Android」GreenDao

版本:greenDAO 3.2.2

官网:http://greenrobot.org/greendao/

GitHub:https://github.com/greenrobot/greenDAO

写在前面:

这个库极大的优化了我们使用SQLite数据库,但对SQLite数据库及其语法的掌握依旧是我们需要做的,不建议新手在没使用过Android原生的数据库API的情况下就使用这个。

简介:

greenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite   数据库中,我们操作数据库的时候,不在需要编写复杂的 SQL语句, 在性能方面,greenDAO 针对 Android 进行了高度优化,   最小的内存开销 、依赖体积小 同时还是支持数据库加密。

摘自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2017/0703/8144.html

何为ORM?

对象关联映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。

摘自:维基百科https://zh.wikipedia.org/zh-sg/%E5%AF%B9%E8%B1%A1%E5%85%B3%E7%B3%BB%E6%98%A0%E5%B0%84

它的特征:

  • 最高性能(可能是最快的Android ORM),我们也是开源的
  • 容易使用
  • 最小的内存消耗
  • 库很小(<100KB)可以让你构建花费的时间变低并且可以避免65k方法的限制
  • 数据库加密:greenDAO支持SQLCipher来保证您的用户数据安全
  • 强大的社区:超过5000的GitHub stars证明了这是一个强大并活跃的社区

何为SQLCipher?

Android SQLite是不支持数据加密的,这样对于用户的数据来说是不安全的(很多手机都是Root过的,其可以直接进入到/data/data/<package_name>/databases目录下面),所以,我们需要对其进行加密,一种是对内容进行加密(但数据库的结构还是能一览无余,同时这样加密后搜索会是一个问题),一种是直接对SQLite数据库进行加密,直接对数据库文件进行加密就会用到SQLCipher,它是加密工具中的一种,它是免费的,其它的多为收费。

SQLCipher,完全开源,托管在GitHub(https://github.com/sqlcipher/sqlcipher)上。

参考:http://foggry.com/blog/2014/05/19/jia-mi-ni-de-sqlite/

学习使用文章推荐:http://blog.csdn.net/guolin_blog/article/details/11952409

谁在用greenDAO?

很多顶级的Android应用依赖于greenDAO,这些APP中有一些已经有超过1000万的安装量,我们认为,这在业界证明了它的可靠性。你可以在AppBrain中查看当前的统计数据。

AppBrain:http://www.appbrain.com/stats/libraries/details/greendao/greendao

让我们开始使用它吧

先配置Gradle

// In your root build.gradle file:
buildscript {
    repositories {
    jcenter()
    mavenCentral() // add repository
}
dependencies {
    classpath ‘com.android.tools.build:gradle:2.3.3‘
    classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2‘ // add plugin
}
}
// In your app projects build.gradle file:
apply plugin: ‘com.android.application‘
apply plugin: ‘org.greenrobot.greendao‘ // apply plugin
dependencies {
    compile ‘org.greenrobot:greendao:3.2.2‘ // add library
}

或许,你也可以先看下官方的例子:

DaoExample: https://github.com/greenrobot/greenDAO/tree/master/examples/DaoExample

RxDaoExample(异步): https://github.com/greenrobot/greenDAO/tree/master/examples/RxDaoExample

下一篇:

中文翻译,这是链接

原文地址:https://www.cnblogs.com/duan-xue-bin/p/9388940.html

时间: 2024-11-17 00:52:27

「Android」GreenDao的相关文章

「android」Ubuntu下android studio 编译报错A problem occurred starting process &#39;command &#39;/Android/Sdk/build-tools/21.1.2/aapt&#39;&#39;(转)

转自”http://www.cnblogs.com/jonzone/p/5246531.html“ 此问题在stack  over flow 上找到答案. 原链接地址:http://stackoverflow.com/questions/27589844/android-studio-1-0-2-not-building-appmergedebugresources-error 解决方法: //在终端分别运行下面两条指令,安装lib32stdc++6 和lib32z1 sudo apt-get

「android」gomobile argument unused during compilation: &#39;-stdlib=libc++&#39;

[问题] android基于go的NDK开发中配置gomobile参考官方WIKI:https://github.com/golang/go/wiki/Mobile,大致步骤: 1.下载gomobile:$ go get golang.org/x/mobile/cmd/gomobile 2.初始化 $ gomobile init但是使用gomobile编译官方例子($ gomobile build -target=android golang.org/x/mobile/example/basic

「android」as过滤svn文件

环境 ubuntu android studio 2.2 「问题现象」 使用as的svn插件,本地与SVN的差异文件过多,其中包括了大量的临时文件,很不利于排查实际差异文件,需要临时文件排除. 备注:该问题查了好久才摸索出. 「问题解决」 VCS-->Commit Changes-->右击选中项,选择Move to Another ChangeList,移到自建的列表中,这样就不会影响到实际文件的差异比较.

「Android」 Surface分析

本篇针对Surface模块进行分析,从Java层的Activity创建开始,到ViewRoot.WindowsManagerService,再到JNI层和Native层. 首先推荐一个Android源码查看的网站:http://androidxref.com/ Surface的创建涉及三个部分: App 进程App需要将自己的内容显示在屏幕上,所以App负责发起Surface创建请求,创建好Surface后, 就可以直接可以在canvas上画图等,最终都会保存到Surface里的buffer里,

「android」查看应用占用cpu和内存消耗情况

查看CPU 消耗 1.进入adb shell 2.输入top -m 10 -s cpu 可查看占用cpu最高的前10个程序(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量) 查看内存消耗 1.进入adb shell ; 2.输入dumpsys meminfo

「android」ubuntu下使用svn(转)

转自”https://yq.aliyun.com/articles/33259“ 查看系统版本: uname -a (Linux查看版本当前操作系统内核信息) cat /proc/version (Linux查看当前操作系统版本信息) 1.首先需要安装Ubuntu SVN.Ubuntu下的SVN安装十分简单,sudo apt-get install subversion,然后根据提示一步一步,就完成了Ubuntu SVN的安装: 2.检出文件(checkout). 使用命令:svn co htt

「Unity」与iOS、Android平台的整合:3、导出的Android-Studio工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

「Unity」与iOS、Android平台的整合:2、导出的Android-Eclipse工程

本文属于「Unity与iOS.Android平台的整合」系列文章之一,转载请注明出处. Unity默认导出的是Android-Eclipse工程,毕竟Eclipse for Android开发在近一两年才开始没落,用户量还是非常巨大的. 个人认为AndroidStudio非常好用,能轻易解决很多Eclipse解决不了或者很难解决的问题. 所以我将Unity导出的Andoid工程分为Eclipse和AndroidStudio两部分. 不过我之后的相关内容都会使用AndroidStudio,希望依然

XE7 Android 文字显示有「锯齿」效果

说明:让 Android 文字显示有「锯齿」效果. 适用:Delphi XE7 修改:找出 FMX.FontGlyphs.Android.pas 档案,并复制到自己的 Project 路径里,找到 TAndroidFontGlyphManager.LoadResource 函数,修改成如下: 找到:FPaint.setAntiAlias(True); 改成:FPaint.setAntiAlias(False); 注意:此方法需要修改到 Delphi 源码,需自行承担可能的风险,如:与第三方控件不