美文网首页Android开发经验谈Android开发Android技术知识
大家好,给大家介绍一下,我的新移动端数据库Realm

大家好,给大家介绍一下,我的新移动端数据库Realm

作者: 卡路fly | 来源:发表于2017-11-14 11:32 被阅读140次

    概述

    是一个跨平台移动数据库引擎,支持iOS、OS X(Objective‑C和Swift)以及Android。
    Realm相较于SQLite:

    1. 性能相对其他移动端数据库性能更优。
    2. 使用相对于SQLite,用法更加简单。
    3. 据说Realm的目标是为了代替 CoreData 和 SQLite 数据库

    特性

    - 性能高

    一秒钟查询遍历20万条数据的次数 android对比

    - 简单易用

    Realm数据直接暴露成类对象,通过对象查询,避免了ORM映射的维护和性能问题。另外,Realm努力保持API只包括4个基础类(Object, Array, Results and Realms)和一个工具类(Migrations),用户可以凭直觉使用,学习数小时就能在您的App中使用realm
    而SQLite,自2000年发布第一个版本,至今已17年。以当今的角度来看,它的编程抽象程度非常低。

    - Zero-Copy & LazyLoad

    通常数据库查询,先建立连接,然后查询数据库,将查询结果反序列化成实际的对象。而Realm跳过了整个拷贝数据到内存的过程,称之为zero-copy。做到这点是因为文件始终是内存映射的,无论文件是或否在内存当中,访问的都是Realm对象,无需执行任何反序列化操作。
    这样就带来了一个问题,难道数据全加载到内存里了?所以这里懒加载应运而生,比如在查询到一组数据后,只有当你真正访问对象的时候才真正加载进来。

    - 现代数据库的特性

    • 支持json
    • 流式API
    • 支持关联、泛型、向量化
    • 支持数据变更通知,自动数据同步,简单身份验证,访问控制,事件处理

    配置

    • 在项目的 build.gradle 文件中添加如下 class path 依赖。
    buildscript {
     repositories {
         jcenter()
     }
     dependencies {
         classpath "io.realm:realm-gradle-plugin:2.1.1"
     }
    }
    
    • 在 app 的 build.gradle 文件中应用 realm-android 插件
    apply plugin: 'realm-android'
    

    资料

    1. realm官网
    2. Android之Realm

    相关文章

      网友评论

        本文标题:大家好,给大家介绍一下,我的新移动端数据库Realm

        本文链接:https://www.haomeiwen.com/subject/aospyxtx.html