是否可以从 Realm 迁移到 Sqlite?

2024-03-12

由于某些原因(主要是 apk 大小较大,即使有 ABI 分割)我需要完全删除 Realm 并使用 Sqlite 而不会丢失数据。

我找不到办法。看来应用程序必须继续使用 Realm,否则用户将完全丢失数据。

任何想法将不胜感激


我认为我不完全理解你的问题是什么。如果您询问是否有一个工具可以为您自动执行数据迁移,那么没有,没有这样的工具。

否则它就相当简单了:

  1. Handle onCreate, onDowngrade and onUpgrade实施方法SQLiteOpenHelper class.

  2. In your onCreate方法,创建表后,立即从中获取所有数据Realm并插入到 SQLite 表中。

像这样的东西:

Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
                                 .findAll();
for (MyClass instance : all) {
    doInsert(instance);
}

我实际上建议你调查一下如何减小 APK 大小 https://news.realm.io/news/reducing-apk-size-native-libraries/使用 Realm 时,但这取决于你

EDIT 1您必须确保首先迁移数据,然后删除领域文件。虽然让你的 APK 变大的并不是数据文件,而是 Realm 附带的实际库。因此,不幸的是,为此您必须采取两个步骤:首先发布将数据迁移到 SQLite 的更新,经过一段合理的时间(例如一周)后,您可以发布将 Realm 库完全删除的更新。希望这是有道理的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以从 Realm 迁移到 Sqlite? 的相关文章

  • PHP服务器端IAB验证openssl_verify总是返回0

    我使用以下函数 服务器端 php 来验证 IAB v3 事务 我从 Android 应用程序传递过来 Override protected void onActivityResult int requestCode int resultCo
  • “此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。” -反应-原生

    当我尝试运行反应本机应用程序时 我遇到此错误react native run android 我无法安装该应用程序 我正在尝试构建一个相机应用程序 我当前的react native版本 0 62 0 React cli版本 2 0 1 De
  • Android Ble GATT_ERROR 133 经常使用三星设备

    我正在研究 BLE 应用程序 我已经使用 Nexus Moto Samsung LG 等不同设备进行了测试 我仅在三星设备中收到 GATT 错误 133 三星 A5 2016 尝试连接 10 次 但只连接了 2 或 3 次 请帮助我 Non
  • 如何使用gradle这样的格式更改apk名称?

    当我使用 gradle 构建应用程序时 我想将 app release apk 文件名更改为如下所示 format appname of package name V version code yyMMdd R T explain appn
  • Notification.Builder 中 setGroup() 的用途是什么?

    我对目标的理解有些困难setGroup http developer android com reference android app Notification Builder html setGroup java lang String
  • 在 UITableViewController 中重新排序行后 UI 更新不正确

    因此 我对表中的行重新排序 用户界面最终结果不正确 场景如下 表内容原文 a b c d e 如果我移动第 0 行 当前a 到第 4 行 当前e 我看到的最终结果是 c d e a a 一些背景 该表正在读取 Realm 对象的列表 我确认
  • Android Accessibility 执行触摸操作

    我想知道是否可以使用 Android 辅助功能服务在屏幕上的位置执行触摸操作 例如 Bundle arguments new Bundle arguments putInt coord X X value arguments putInt
  • 无法找到/下载 AppCompat-v7:23.1.1

    怎么了 我遇到了很多 找不到 appcompat v7 23 1 1 的问题 许多解决方案都不起作用 经过几个小时的思考和寻找答案 我遇到了一个奇怪的问题 I have gotAndroid 支持库 23 1 1 已安装 所有功能 exce
  • 仅在 Android 应用程序中使用 XHDPI 可绘制对象?

    如果您计划在不久的将来支持 LDPI MDPI HPDI 或许还有 XHDPI 那么是否可以在项目中仅包含 XHDPI 可绘制对象并让设备将其缩放到所需的分辨率 我已经测试过在 Photoshop 中将可绘制对象的大小调整为 MDPI 和
  • 如何将 Google Now 搜索栏添加到我的应用程序中?

    谷歌刚刚将其搜索栏从 Google Now 引入到了 Play 商店应用程序中 如下面的 gif 所示 如何将这个操作栏搜索栏实现到我自己的应用程序中 我想要 style 汉堡动画 从工具栏按钮访问 麦克风按钮 对棒棒糖设备的连锁反应 我已
  • Flutter Spotify Api 身份验证

    我需要在使用 Spotify api 的 Flutter 应用程序中对用户进行身份验证 我使用 flutter web auth 打开 WebView 并让用户在那里登录 我无法返回应用程序 在 Spotify 仪表板中 我将回调 Uri
  • Android 性能:SharedPreferences 的成本

    当我的应用程序启动时 我使用分片首选项中的值填充容器类 这个想法是处理 SharedPreferences 和 PreferenceManager 一次 因为我猜它们很重 这是一个示例 SharedPreferences prefs Pre
  • 使用 DiffUtil 在 RecyclerView 上添加拖放

    我有一个从房间数据库更新的列表 我从 Room 收到更新的数据作为新列表 然后将其传递给列表适配器 https developer android com reference androidx recyclerview widget Lis
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • 以编程方式应用样式资源

    我没有找到一种以编程方式做到这一点的方法 所以我在这里发布这个问题 我也没有找到与此相关的任何问题 我有一个资源样式 在 res values styles xml 中定义 我想做的是使用 java 将这种样式应用到我正在操作的 View
  • 在尝试使用 GPS 之前如何检查 GPS 是否已启用

    我有以下代码 但效果不好 因为有时 GPS 需要很长时间 我该如何执行以下操作 检查GPS是否启用 如果启用了 GPS 请使用 GPS 否则请使用网络提供商 如果 GPS 时间超过 30 秒 请使用网络 我可以使用时间或 Thread sl
  • 在 Android ADT Eclipse 插件中滚动布局编辑器

    有谁知道当布局编辑器的内容溢出一个 屏幕 时如何滚动这些内容 我说的是在设计时使用 ADT 布局编辑器 而不是在物理设备上运行时滚动 效果很好 关闭 Android 布局编辑器中的剪辑 切换剪辑 按钮位于 Android 布局编辑器的右上角
  • 如何在 Android 中保存 Edittext 中的文本而不丢失文本的粗体、斜体等功能

    我想做的就是从 Edittext 中获取文本 该文本具有粗体和斜体等功能 并将其保存在文本文件中 但是当我读回并显示它时 这些功能丢失了 它们不显示 如何通过将文本保存在文本文件或任何文件中来保持丰富的功能 您可以使用Html toHtml
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • SQLiteDatabase.openDatabase 与 SQLiteOpenHelper.getReadableDatabase

    这两种方法有什么区别吗 两者都返回一个打开的 SQLiteDatabase 如果数据库不存在 两者都可以创建数据库 当需要读 写时 SQLiteOpenHelper 还具有 getWriteableDatabase 我应该使用哪种方法以及在

随机推荐

  • 以一种形式以编程方式发送多个文件输入字段

    我正在尝试使用blueimp jQuery 文件上传 https github com blueimp jQuery File Upload插件以编程方式通过同一表单发送多个文件输入字段 当用户选择表单文件时 它只是将它们附加到 JS 变量
  • 熊猫爆炸 - 无法从重复轴重新索引

    假设我有一个数据框df C1 C2 C3 C4 C5 0 A 1 s1 123 t1 1 A 1 s2 321 t2 2 A B 1 2 s3 777 111 t3 3 B 2 s4 145 t4 4 B 2 s5 990 t5 5 A B
  • C# 中的 switch 语句和“需要一个常量值”

    为什么编译器对第一种情况说 需要一个常量值 第二种情况工作正常 switch definingGroup case Properties Settings Default OU HomeOffice do something break c
  • Matplotlib:如何加载和显示 PDF 图像

    我的问题很简单 我有一个 PDF 图形 我想与一些数据分析的结果一起显示 然而 即使是广泛的 Google 搜索也没有找到一种在图中加载和显示 PDF 的方法 我只找到了 JPG 或 PNG 等光栅图像的标准结果 提前致谢 我不认为 Mat
  • WordPress 插件:如何添加自定义 URL 处理程序

    我正在尝试编写一个 Wordpress 插件 但似乎无法弄清楚如何修改 URL 的处理方式 例如 任何请求
  • 无法中断 for 循环:非语法中断

    我想要break a for loop当满足某个条件时 Object keys s map uk gt Object keys s uk map ik gt for let i 1 i lt data length i if s uk ik
  • 尝试获取文件夹的子级时出现 MS Graph API 未知错误

    当尝试使用 Microsoft Graph API 相对路径访问共享点站点驱动器中的特定文件夹时 出现未知错误 这个完全相同的请求在一周前工作正常 但本周再次使用时停止工作 测试结果是我网站驱动器上的一个文件夹 根据OneDrive 开发文
  • Active Admin - 用户和管理员的模型相同

    我希望让 Active Admin 为网站做后端 不过 我真的不想为用户和管理员用户建立单独的模型 如果用户模型中有 is admin 标志 我可以只让管理员用户登录到 Active Admin 吗 如果用户不是管理员 他们应该只能登录网站
  • 当包含某些列时,MySQL ORDER BY AVG() DESC 不起作用

    我正在执行一个查询以返回 table1 中的所有行以及 table2 中的平均评分 SELECT table1 description AVG table2 rating AS avg rating FROM table1 LEFT JOI
  • 在 Jenkins 的节点/标签限制中放置通配符/正则表达式

    在作业配置中 有一个复选框 限制该项目可以运行的位置 如果选择它 则会有一个关于标签表达式的输入字段 有没有办法在那里插入正则表达式 而不是确切的名称 如果是 您能提供一个例子吗 这背后的整个概念是 我想将限制作业分配给自动创建的具有相似名
  • 每天在设定时间用 Swift 发出通知? [复制]

    这个问题在这里已经有答案了 如果有人感到困惑并认为这是我昨天的问题的重复 那么事实并非如此 那里我问的是如何每天调用一个函数 这里我问的是如何在每天的特定时间调用通知 我正在寻找一种每天早上 7 点重复本地通知的方法 我目前有这个代码设置来
  • REST Datasnap 覆盖 URI 映射

    我用 delphi XE2 中的 REST datasnap 编写了一个小型 REST 服务器 HTTP 方法 POST PUT 等 和 delphi 中定义的函数之间有一个默认映射 这是由 delphi 组件完成的 这个维基条目 http
  • 如何在ARMv8-a上启用Aarch32指令集?

    Raspberry Pi 3 使用具有 ARMv8 A53 内核的 Broadcom SoC https www raspberrypi org magpi raspberry pi 3 specs benchmarks 它还使用基于 De
  • 如何启动声纳库?

    为了我的学习 我需要在 ubuntu 服务器上安装 sonarqube 我按照本教程安装了它 http www naturalborncoder com methodology 2015 05 27 sonarqube on ubuntu
  • 如何减少WorkManager中Periodic WorkManager的时间

    In PeriodicTimeRequest最短周期时间为 15 分钟 我想将其从 15 分钟减少到 15 分钟以内 我该怎么做 我们有一个技巧可以减少 15 分钟的定期运行时间 但您不能使用PeriodicWorkRequest 创建具有
  • 在散点图中为每个类别绘制不同的聚类标记

    我有一个散点图 其中绘制了 14 个簇 但每 2 个簇属于同一类 它们都使用相同的标记 每 50 行是一个簇 每 100 行是同一类的两个簇 我想要做的是更改每 2 个簇或 100 行的标记 数据框链接 http www mediafire
  • 如何让文字逆时针方向书写

    如何使文字逆时针书写 function drawTextAlongArc context str centerX centerY radius angle context save context translate centerX cen
  • 在JavaFX中后台执行任务

    我想在 TilePane 中加载最多九个面板 对于每个窗格 我必须首先运行内容计算 大约 300 毫秒 然后必须构建面板 大约 500 毫秒 我想要的是 有九个 ProgressIndicators 在计算后与每个面板进行交换 我尝试过Pl
  • 未找到 GLIBCXX_3.4.15、GLIBC_2.15 和 GLIBC_2.14 - Centos 6.5

    我正在尝试运行一个应用程序 但我得到 usr lib64 libstdc so 6 VERSION GLIBCXX 3 4 15 not found lib64 libc so 6 VERSION GLIBC 2 15 not found
  • 是否可以从 Realm 迁移到 Sqlite?

    由于某些原因 主要是 apk 大小较大 即使有 ABI 分割 我需要完全删除 Realm 并使用 Sqlite 而不会丢失数据 我找不到办法 看来应用程序必须继续使用 Realm 否则用户将完全丢失数据 任何想法将不胜感激 我认为我不完全理