Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Realm Java 官方教程翻译 (一):Getting Started

Realm Java 官方教程翻译 (一):Getting Started

作者头像
青蛙要fly
发布于 2024-02-18 00:11:08
发布于 2024-02-18 00:11:08
33500
代码可运行
举报
运行总次数:0
代码可运行

因为准备暂时的抛弃Sqlite而转成Realm。所以在Realm官网上看相关的教程。看见官网有相应的Java-Realm方面的使用教程,于是准备写Realm相关的知识。但是是全英文的,所以按照官网的教程的步骤,准备分篇来进行翻译。当然希望大家如果发现哪里有问题,可以提出来,(不要打我脸)。

按照下面的图片所示来分篇翻译:

学习步骤

然后这篇文章的知识点是如下图所示:

该篇翻译的知识点

原文链接:Realm Java2.2.1Latest

Realm Java 能让你安全、持续、快速的方式来写你的App中的model层。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//定义你的model类,并且继承自RealmObject
public class Dog extends RealmObject {
    private String name;
    private int age;

    //...生成相应属性的getters 和 setters方法...
}

public class Person extends RealmObject {
    @PrimaryKey
    private long id;
    private String name;
    private RealmList dogs; // 声明一对多的关系  
    //...生成相应属性的getters 和 setters方法...
}

//像使用标准的java对象一样使用它们
Dog dog = new Dog();
dog.setName("Rex");
dog.setAge(1);

//初始化 Realm
Realm.init(context);

//在该线程中获取一个Realm实例
Realm realm = Realm.getDefaultInstance();

//在Realm中查询所有的大于2岁的狗
final RealmResults puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
puppies.size(); //小狗数量结果为0,因为现在Realm中还没有添加狗



// 在事务中存留你的数据
realm.beginTransaction();
final Dog managedDog = realm.copyToRealm(dog); // Persist unmanaged objects
Person person = realm.createObject(Person.class); // Create managed objects directly
person.getDogs().add(managedDog);
realm.commitTransaction();

//当数据改变的时候,Listener将会被调用
puppies.addChangeListener(new RealmChangeListener>() {
    @Override
    public void onChange(RealmResults results) {
         //查询到的小狗的数量结果也会在同一时间被更新掉
        puppies.size(); // 小狗数量为1
    }
});

//在后台进程中异步更新对象
realm.executeTransactionAsync(new Realm.Transaction() {
    @Override
    public void execute(Realm bgRealm) {
        Dog dog = bgRealm.where(Dog.class).equalTo("age", 1).findFirst();
        dog.setAge(3);
    }
}, new Realm.Transaction.OnSuccess() {
    @Override
    public void onSuccess() {
         //原始查询和Realm对象会被自动更新
        puppies.size(); // 小狗的数量为0,因为没有比2岁更年轻的小狗了
        managedDog.getAge();   // 小狗的年龄已经被更新为3了
    }
});

开始

下载Android使用的 Realm 或者查看reaml-java 的源码 realm-java on GitHub.

首先要准备的

我们当前只支持在安卓中使用的Java版本Realm。 Android Studio 版本大于等于 1.5.1 最新版本的Android SDK JDK 版本要大于等于 7 我们支持所有API为9及以上的安卓版本(Android 2.3及2.3以上版本)

安装

Realm是作为一个Gradle插件来进行安装的。 安装分为二步: 第一步: 在project目录下的build.gradle中添加下面所示的class路径

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.realm:realm-gradle-plugin:2.2.1"
    }
}

project目录下的 build.gradle 文件如下图所示位置:

build.gradle

第二步: 在应用目录下的build.gradle文件的内容上方处的使用realm-android插件。 apply plugin: 'realm-android'

应用目录下的build.gradle的位置如下所示:

build.gradle

一旦这二步你都已经写好了。就可以简单的刷新下你的gradle依赖。如果你通过v0.88以前的版本来更新,你需要去清理下你的gradle项目(./gradlew clean) 来移除之前存在的安装。

关于二个所要修改的build.gradle文件的例子里面如下面显示查看: Project level build.gradle Application level build.gradle

其他的编译系统 Maven 和 Ant 编译系统并不支持。如果你希望能看到支持这些编译系统,请表达你对下面问题的兴趣,然后我们也可以评估。 Maven support Ant support 你们的意见将让我们做决定是否及何时来实现Ant 和 Maven插件。

从 v1.0.0开始,Eclipse将不再支持。我们建议转移到 Android Studio.

ProGuard

ProGuard配置已经被Realm library所提供,这意味着你并不需要在你的ProGuard配置去添加其他的Realm的特殊的规则。

Realm Browser

我们提供了独立的名叫Realm Browser Mac app 去读取和编辑.realm的数据库

Realm Browser

API Reference

你可以查看我们的全部API文档 ,包括所有的classes, methods 及更多。

例子

看下我们的examples,来看Realm是如何在app中被使用的。 看这里 来知道关于怎么运行这些例子的更多详情。

introExample:包括了简单的例子,让你知道怎么去使用当前的API.

gridViewExample :一个简单的app,来展示怎么通过Realm来支持GridView的存储。同时它还呈现了如何构建一个JSON(使用GSON)的数据库,及如何使用ABI splits来减少最终的APK的大小。

threadExample :一个简单的应用来知道如何在多线程环境中使用Realm。

adapterExample :如何通过使用RealmBaseAdapter和RealmRecyclerViewAdapter来使Realm以优雅的方式来作用于 Android ListView and RecyclerView

jsonExample :呈现如何使用一种新的Realm JSON 工具

encryptionExample :如何使用加密Realms

rxJavaExamples :如何搭配RxJava来使用Realm

unitTestExample :教你在使用Realm的时候如何编写单元测试

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
NTIRE2021 图像去模糊竞赛各大方案简介
NTIRE的各大竞赛已经落下帷幕,冠亚军排名也相继确定,笔者近期会逐步将相关领域的竞赛结果进行一下简单总结,同时也将对这其中的冠军军及优秀方案进行一番解读,感兴趣的朋友可以关注一波...
AIWalker
2021/05/24
1.7K0
NTIRE2021 图像去模糊竞赛各大方案简介
网易互娱AI Lab视频动捕技术iCap被CVPR 2022接收!
动作捕捉技术在影视和游戏行业已得到广泛的应用,其中最常用的技术方案是光学动作捕捉。光学动捕需要演员穿着紧身动捕服,并且在身上粘贴光学标记点,在配置好光学动捕设备的场地进行表演和动作录制。光学动捕设备通常价格不菲,同时还需要固定的室内场地,使用成本和门槛较高,很多小型动画工作室只能望而却步。如果可以从手机拍摄的视频中高精度地捕捉人物动作,那将是动画师的福音。
Amusi
2022/04/18
1.4K0
网易互娱AI Lab视频动捕技术iCap被CVPR 2022接收!
一文解读CVPR等9个顶会挑战赛冠军团队方案,助你参悟AI算法设计之道
想成为下一个刷爆挑战赛榜单的冠军?这份复习材料涵盖 CVPR、ICCV 等顶会挑战赛的优胜算法方案,无论你是挑战赛老司机,还是新晋小白,相信对你参悟竞赛道路都会有所帮助。 本篇是机器之心「虎卷er行动 · 春卷er」的第三卷,为老伙计们汇总解读 9 个刷爆 AI 顶会挑战赛榜单的优胜算法方案。 1、CVPR 2021 NTIRE 2021 挑战赛多帧 HDR 成像冠军方案:使用新型的双分支网络结构 ADNet(旷视科技团队) NTIRE 2021 挑战赛 作为图像视频修复和增强领域极具影响力的国际竞赛
机器之心
2022/03/21
1.3K0
NTIRE2022视频增强冠军方案是怎样炼成的?
NTIRE 挑战赛全称 New Trends in Image Restoration and Enhancement workshop and challenges on image and video processing,是 CVPR 一系列 Workshop 中较为著名的一个(CVPRW 2022 一共收录了约 71 个 Workshop)。NTIRE 是 Radu Timofte 主办的赛事,第一次在 ACCV 2016 举办,之后成为了 CVPRW 的常客。
AIWalker
2022/04/27
1K0
NTIRE2022视频增强冠军方案是怎样炼成的?
NTIRE2021 压缩视频增强竞赛各大方案简介
NTIRE的各大竞赛已经落下帷幕,冠亚军排名也相继确定,笔者近期会逐步将相关领域的竞赛结果进行一下简单总结,同时也将对这其中的冠军军及优秀方案进行一番解读,感兴趣的朋友可以关注一波...
AIWalker
2021/05/24
1.4K0
NTIRE2021 压缩视频增强竞赛各大方案简介
NTIRE2021图像去模糊竞赛冠军方案: EDPN
学术界的图像去模糊往往采用了最简单的单一假设,而真实场景的模糊往往与其他退化并存,比如压缩、下采样。
AIWalker
2021/05/24
7990
NTIRE2021图像去模糊竞赛冠军方案: EDPN
【竞赛小汇】NTIRE2021 视频超分竞赛
NTIRE2021的视频超分竞赛仍然延续NTIRE2020以及AIM2019/20采用了REDS数据集,它的训练集、测试集以及验证机分别包含24000,3000,3000高清(
AIWalker
2021/05/24
1.2K0
【竞赛小汇】NTIRE2021 视频超分竞赛
NTIRE2022-ESR 冠军方案RLFN解析
近年来,Efficient Super-Resolution(ESR)的研究主要聚焦于参数量与FLOPs的降低,这些方案往往通过复杂的层连接策略进行特征聚合(比如IMDN与RFDN中的特征蒸馏与聚合)。但是,这种复杂的结构不利于高推理速度需求,进而导致这些方案难以部署到资源有限的设备上。
AIWalker
2022/06/24
3.5K0
NTIRE2022-ESR 冠军方案RLFN解析
HDRUNet | 深圳先进院董超团队提出带降噪与反量化功能的单帧HDR重建算法
Paper: https://arxiv.org/pdf/2105.13084.pdf
AIWalker
2023/09/09
8530
HDRUNet | 深圳先进院董超团队提出带降噪与反量化功能的单帧HDR重建算法
新视频超分算法来了:CVPR 2021 & NTIRE 2021 冠军
今天给大家带来的干货是新鲜出炉的 CVPR 2021,该文斩获 NTIRE 比赛冠军。目前代码已经 Merge 到 MMEditing 中,欢迎大家尝鲜。
AI科技评论
2021/04/29
1.5K0
再夺全球顶级竞赛CVPR NTIRE冠军,打造更好用户体验,淘宝拥有哪些内容技术?
不知不觉间,内容电商似乎已经成为人们生活中不可或缺的存在:在闲暇时间,我们已经习惯于拿出手机,从电商平台的直播间随手下单自己心仪的商品。
机器之心
2023/08/07
2520
再夺全球顶级竞赛CVPR NTIRE冠军,打造更好用户体验,淘宝拥有哪些内容技术?
NTIRE2022 冠军方案:中科院深圳先进技术研究院多媒体中心提出轻量级单图超分方案-BSRN
本文介绍我们近期的工作Blueprint Separable Residual Network(BSRN),该方法已被CVPRW 2022接受,并在NTIRE 2022 Efficient Super-Resolution Challenge:Sub-Track 1 - Model Complexity Track中取得第一名。 图1 BSRN与SOTA 方法的对比图。横轴表示参数量,纵轴为性能,圆半径代表计算量。注:其中BSRN-S为参赛模型。 BSRN与SOTA方法对比如图1所示,横轴表示参数量,纵
AI科技评论
2022/05/27
1.1K0
NTIRE2022 冠军方案:中科院深圳先进技术研究院多媒体中心提出轻量级单图超分方案-BSRN
全球首个落地的舞蹈动画合成系统,网易互娱AI Lab新技术入选SIGGRAPH 2021
近日,网易互娱 AI Lab 在 SIGGRAPH 2021 官方精选预告片上展现了其首个符合实际生产环境应用要求的舞蹈动画合成系统 ChoreoMaster。该系统可依据音乐风格生成爵士、二次元、街舞等不同类型的舞蹈动画,目前已为网易旗下的多款游戏项目产出了数个小时的高质量舞蹈动作资源,先来看段精彩的 demo 吧。
机器之心
2021/06/08
1.4K0
AI 赋能游戏工业化,网易互娱AI Lab动捕去噪新方法入选 SIGGRAPH 2021
当游戏行业仍在聚焦探讨如何让 AI 真正落地、协助游戏的工业化制作时,网易互娱 AI Lab 已基于游戏研发制作中的痛点交出了一份令人惊艳的答卷。
AI科技评论
2021/08/25
8490
AI 赋能游戏工业化,网易互娱AI Lab动捕去噪新方法入选 SIGGRAPH 2021
​CVPR 2022 | 用魔法打败魔法,网易互娱AI Lab图像鉴伪新方法破解伪造人脸
近日,网易互娱AI Lab在国际计算机与模式识别会议CVPR 2022图像鉴伪挑战赛(IFDC)中一举斩获冠军,分别以高达99.386%和98.928% 的识别准确率包揽初赛和复赛两阶段的第一名,力压国际、国内共674支参赛队伍,在人脸伪造图像的鉴别方面真正秀了一把实力。 1 背景介绍 近年来,深度伪造技术用于合成内容制作已十分普遍,此类技术在带来便利性的同时也带来了隐私和安全的隐患,其中deepfake等人脸图像篡改技术的恶意应用存在极大危险性。为了应对这一挑战,IFDC挑战赛主要聚焦与人脸图像的伪造检测
AI科技评论
2022/06/24
6410
​CVPR 2022 | 用魔法打败魔法,网易互娱AI Lab图像鉴伪新方法破解伪造人脸
CVPR 2022:字节跳动多项竞赛夺冠,发力无障碍技术创新
---- 新智元报道   编辑:好困 【新智元导读】在今年的CVPR上,字节跳动斩获了多项竞赛冠军。 作为一年一度AI计算机视觉领域的顶级盛会,CVPR 2022已经落下帷幕。 字节跳动旗下的极光-多模态技术团队、智能创作团队、火山引擎多媒体实验室团队斩获了多项竞赛冠军,覆盖「视觉问答」、「图像实例分割」、「长视频内容理解」、「图片恢复」,以及「图片视频压缩技术」等场景。 其中,两项研究成果有助于视障人群克服日常生活中的视觉挑战、提升残障人士出行的安全性,助力打造无障碍环境。 ‍帮助视障人士精准「识图
新智元
2022/07/07
1.6K0
CVPR 2022:字节跳动多项竞赛夺冠,发力无障碍技术创新
NeurIPS 2022 | 最强斗地主AI!网易互娱AI Lab提出基于完美信息蒸馏的方法
机器之心专栏 作者:网易互娱 AI Lab 网易互娱 AI Lab 联合上海交通大学和 CMU 提出了基于完美信息蒸馏的斗地主 AI--PerfectDou,击败了一众 AI 模型,成为目前的最强斗地主 AI。 近几年随着强化学习技术的发展,游戏 AI 技术已经成功应用在了围棋、德州扑克、星际争霸等不同种类的游戏中。斗地主是非常流行的一种纸牌游戏,它的玩法存在非完美信息 (地主和农民双方均不能看到对方的手牌) 以及策略合作(2 名农民玩家需要通过配合来击败手牌多 3 张的地主),被认为是非常具有挑战性的研究
机器之心
2022/10/08
1.3K0
NeurIPS 2022 | 最强斗地主AI!网易互娱AI Lab提出基于完美信息蒸馏的方法
ECCV2022 | 网易互娱AI Lab提出首个基于单幅图片的实时高分辨率人脸重演算法
机器之心专栏 作者:网易互娱AI Lab 网易互娱 AI Lab 提出了一种基于单幅图片的实时高分辨率人脸重演算法,分别在台式机 GPU 和手机端 CPU 上支持以实时帧率生成 1440x1440 和 256×256 分辨率的人脸重演图像。 近年来,面部重演 (Face Reenactment) 技术因其在媒体、娱乐、虚拟现实等方面的应用前景而备受关注,其最直接的帮助就是能够帮助提升音视频的制作效率。 面部重演算法是一类以源人脸图像作为输入,可以将驱动人脸的面部表情和头部姿态迁移到源图像中,同时保证在迁移
机器之心
2022/07/26
8430
ECCV2022 | 网易互娱AI Lab提出首个基于单幅图片的实时高分辨率人脸重演算法
一举打败16个同类模型,视频超分比赛冠军算法入选CVPR 2022,来自商汤&南洋理工大学
点击上方↑↑↑“OpenCV学堂”关注我来源:公众号 量子位 授权 如何让模糊的老片变高清? AI的答案是超分辨率算法: 现在,在视频超分领域,有一个强大的算法拿下了超分比赛NTIRE 2021三冠一亚的优异成绩,登上了CVPR 2022。 它的名字叫做BasicVSR++,是对视频超分SOTA模型BasicVSR的进一步改进。 BasicVSR也曾拿下NTIRE冠军,入选CVPR 2021。 现在,这个BasicVSR+++在基本相同的参数量下,不仅性能大幅超过前辈,PSNR(峰值信噪比,图像质量评估指
OpenCV学堂
2022/03/10
6340
一举打败16个同类模型,视频超分比赛冠军算法入选CVPR 2022,来自商汤&南洋理工大学
丰色 发自 凹非寺 量子位 | 公众号 QbitAI 如何让模糊的老片变高清? AI的答案是超分辨率算法: 现在,在视频超分领域,有一个强大的算法拿下了超分比赛NTIRE 2021三冠一亚的优异成绩,登上了CVPR 2022。 它的名字叫做BasicVSR++,是对视频超分SOTA模型BasicVSR的进一步改进。 BasicVSR也曾拿下NTIRE冠军,入选CVPR 2021。 现在,这个BasicVSR+++在基本相同的参数量下,不仅性能大幅超过前辈,PSNR(峰值信噪比,图像质量评估指标)提高了0.8
量子位
2022/03/08
5590
推荐阅读
NTIRE2021 图像去模糊竞赛各大方案简介
1.7K0
网易互娱AI Lab视频动捕技术iCap被CVPR 2022接收!
1.4K0
一文解读CVPR等9个顶会挑战赛冠军团队方案,助你参悟AI算法设计之道
1.3K0
NTIRE2022视频增强冠军方案是怎样炼成的?
1K0
NTIRE2021 压缩视频增强竞赛各大方案简介
1.4K0
NTIRE2021图像去模糊竞赛冠军方案: EDPN
7990
【竞赛小汇】NTIRE2021 视频超分竞赛
1.2K0
NTIRE2022-ESR 冠军方案RLFN解析
3.5K0
HDRUNet | 深圳先进院董超团队提出带降噪与反量化功能的单帧HDR重建算法
8530
新视频超分算法来了:CVPR 2021 & NTIRE 2021 冠军
1.5K0
再夺全球顶级竞赛CVPR NTIRE冠军,打造更好用户体验,淘宝拥有哪些内容技术?
2520
NTIRE2022 冠军方案:中科院深圳先进技术研究院多媒体中心提出轻量级单图超分方案-BSRN
1.1K0
全球首个落地的舞蹈动画合成系统,网易互娱AI Lab新技术入选SIGGRAPH 2021
1.4K0
AI 赋能游戏工业化,网易互娱AI Lab动捕去噪新方法入选 SIGGRAPH 2021
8490
​CVPR 2022 | 用魔法打败魔法,网易互娱AI Lab图像鉴伪新方法破解伪造人脸
6410
CVPR 2022:字节跳动多项竞赛夺冠,发力无障碍技术创新
1.6K0
NeurIPS 2022 | 最强斗地主AI!网易互娱AI Lab提出基于完美信息蒸馏的方法
1.3K0
ECCV2022 | 网易互娱AI Lab提出首个基于单幅图片的实时高分辨率人脸重演算法
8430
一举打败16个同类模型,视频超分比赛冠军算法入选CVPR 2022,来自商汤&南洋理工大学
6340
一举打败16个同类模型,视频超分比赛冠军算法入选CVPR 2022,来自商汤&南洋理工大学
5590
相关推荐
NTIRE2021 图像去模糊竞赛各大方案简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验