sqlite - Dart/Flutter - 保存大量图像文件的正确方法

标签 sqlite dart flutter

我即将开始开发一个类似百科全书的应用程序,我希望我的对象 Item 包含主要图像以及用于画廊目的的其他图像列表。

我已经对如何在 Flutter 中存储图像进行了一些研究,但我很困惑 - 一些已回答的问题包括:

  1. Assets - 但访问、过滤、搜索等并不容易
  2. SQLite(Base64 编码/解码)- 加载和解码/编码图像对象列表时的性能问题
  3. 将文件保存在磁盘上 - 加载时间更长

所以问题是 - 在这种情况下最好的方法是什么?

非常感谢任何提示/技巧! :)

最佳答案

  1. 如果您将它们静态地与您的应用程序一起发布, Assets 将运行良好。过滤、搜索等应该不会太难。

  2. 是的,所有内容都将存储在一个文件中,这会产生一些开销,这会导致一些性能问题。

  3. “将文件保存在磁盘上”以各种方式将文件保存在磁盘上,加载时间是不可避免的。您可能能够在后台加载图像,以便在用户导航到应显示图像的 View 时将它们保存在内存中。

如果它们是静态的,我会将它们存储为 Assets (在应用程序发布后不更改,或者仅在应用程序更新时更改)

您可以使用 SQLite 并维护一个包含图像元信息的表和一个包含图像文件名(以及路径,如果需要)的字段,以受益于 SQL 数据库的查询功能和最佳性能。

需要更多详细信息。

关于sqlite - Dart/Flutter - 保存大量图像文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54825670/

相关文章:

flutter - 比较 flutter 中带有 & 符号的字符串

ms-word - 是否有 dart 包可以解码 ms word 文档并在 flutter 应用程序中进行编辑?

flutter - 移除 Flutter TabBar 底部边框

flutter - 我怎么知道页面是否被推送到导航堆栈中?

Flutter ScrollController 在 NestedScrollView 中的位置

sql - 查找所有用户共有的项目

sql - 多列选择语句

android - 调用 Android 的 Sqlite 数据库的 close() 后会发生什么?

python - 缓慢保存到 Django 数据库

node.js - 如何在 Flutter 中使用 WebSockets 和 Socket.IO?