【发布时间】:2020-06-27 01:20:12
【问题描述】:
在 Flutter 中使用资产的最佳方式是什么,例如,如果我有一个用于应用程序配置的文件,我是否应该通过使用 path_provider 插件获取应用程序目录来存储该文件 - 不使用资产 - 并存储它?,或者我应该将文件添加到我的程序文件夹 - 将文件添加到我的资产 - 吗?
如果我有一个小型 Sqlite 数据库,同样的问题。
这些方法中哪个更快,哪个更安全?
【问题讨论】:
在 Flutter 中使用资产的最佳方式是什么,例如,如果我有一个用于应用程序配置的文件,我是否应该通过使用 path_provider 插件获取应用程序目录来存储该文件 - 不使用资产 - 并存储它?,或者我应该将文件添加到我的程序文件夹 - 将文件添加到我的资产 - 吗?
如果我有一个小型 Sqlite 数据库,同样的问题。
这些方法中哪个更快,哪个更安全?
【问题讨论】:
资产是您在开发过程中添加到应用程序中的文件。您可以使用rootBundle.load() 或rootBundle.loadString() 加载它们,但不能修改或删除它们。
在应用程序的目录中,您可以存储应用程序在运行时从互联网下载或生成的任何文件。然后可以打开、删除、修改这些文件等。要访问您的应用程序目录,您需要包path_provider,它会告诉您应用程序文件夹的路径。
一个 sqlite 数据库通常存储在 app 目录中。一个示例包将在这里sqflite。
为了速度和安全性,我无能为力。应用程序目录被设计为只有应用程序才能访问它。资产是应用程序的一部分,理论上任何人都可以解压应用程序文件。因此,我至少不会在资产中存储秘密的东西。
【讨论】:
好吧,如果应用配置是指用户的设置,则可以使用 Sqlite、SharedPreferences 或 Hive(Hive 显示的基准表明它比 SharedPreferences 更快)。
我认为 assets 文件夹用于存储应用程序的一些常用文件,如图像、图标、字体等。我认为不建议存储带有某种配置文件的文件,主要是关键信息关于应用配置。
【讨论】: