android realm 简书,Realm简介

本文介绍了一个跨平台移动数据库引擎——Realm,支持iOS、OSX及Android。Realm相较于SQLite性能更优,使用更简单,并且提供了现代数据库特性如JSON流式API、数据变更通知等。文章还详细介绍了Realm的安装配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

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

Realm相较于SQLite:

性能相对其他移动端数据库性能更优。

使用相对于SQLite,用法更加简单。

据说Realm的目标是为了代替 CoreData 和 SQLite 数据库

特性

性能高

bc950b4d0c8d

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

bc950b4d0c8d

android对比

- 简单易用

bc950b4d0c8d

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'

资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值