android - 带有 Kotlin 的 Android 存储自定义类的最佳方式
问题描述
这是我第一次需要永久存储一些数据,所以我想在继续之前提出一些建议。我读过有不同的方法可以在 Android 设备上存储数据:
- 内部存储器
- 共享偏好(但如果我理解只是用于简单的数据,如一个选项)
- 共享存储(但我不需要在其他应用程序之间共享数据)
- 数据库
我不明白在第一个和最后一个之间对我来说最好的选择是什么。
我的情况
我有一个带有标题、副标题、封面图片的书籍列表,每本书都包含一个带有标题、可选图片(如果可能的话是音频)和其他内容的卡片列表。
所以,我必须存储一个自定义类的数组列表,其中包括另一个自定义类的另一个数组列表和一些文本/图像
我应该采取哪种方法?
谢谢
解决方案
坦率地说,案例描述过于有限,无法提供明智的建议(因此应该关闭问题)。
但如果您有疑问,那么安全/默认选择是数据库。在某些情况下,它可能会带来很大的开销(比如将整个数组列表序列化为一个 blob 并存储为单个文件就足够了),但你不太可能把自己画到角落里。
添加(评论后)
使用数据库时,您不直接存储对象(因为 sql 数据库存储的是“关系”,您可以将其视为“行集”,而不是对象)。相反,您有一些代码(自定义或来自库)将对象转换为一行(或多行)以进行存储,还有一些代码以另一种方式转换它。
如果要存储实际对象,那么序列化到文件几乎是唯一的方法。
推荐阅读
- python - 将 2-dim 数组绘制为线图 python
- android - Jitpack:无法安装以下 Android SDK 包,因为某些许可证尚未被接受
- java - 使用 Java 在 Android 设备上合并多个 SQL 文件
- jquery - 选择另一个选项后如何使选择器开关工作?
- c++ - 如何正确调用 Assert::ExpectException?
- javascript - OAuth 登录流程:如何在我自己的后端创建用户?
- python - 多索引数据框 - 使用其他行添加行
- javascript - Javascript - 向数组字符串添加换行符
- c# - 从数据库值动态创建 Chart.JS
- python - 我不明白为什么 digit 不返回,而是“分配前引用的局部变量 'total'”