我有一个150 Mb的SQLite数据库,他们希望它在应用程序中,所以第一次用户不会面临从Google Play安装后下载。有人建议用MacBook可以做到这一点:
我使用LZMA2压缩方法,将整个数据库的大小减少到39mb,然后将压缩文件移动到Flutter应用程序的资产文件夹中,然后使用Flutter存档包将其重新编译,然后使用SQLite从未压缩文件安装该数据库。无论你有这个文件现在尝试解压它使用Flutter归档
这样做:
1.用户是否可以从其存储中删除数据库?
1.解压缩是否会在不向用户显示数据库的情况下增加应用程序大小?
1.如果我把它导入到用户的手机存储中,手机的清洁工会删除这个数据库吗?
1.解压缩后可以在运行时使用数据库吗?
我想在我的应用程序中使用这个数据库,而不增加应用程序的大小(我想使其90 Mb)。flutter_archive包失败了。
1条答案
按热度按时间cdmah0mi1#
1.是的,用户可以删除它清除应用程序数据,因为用户拥有手机,所以有这些权利。
1.是的,但你需要编码,数据库不会处理自己。
1.这取决于你存储数据库文件的位置,你应该把它放在
getApplicationDocumentsDirectory()
位置从Path Provider包.保存在那里的数据只能从您的应用访问(如果它们不使用root权限)。不建议将数据库文件保存到公共目录(如下载或文档文件夹)中。1.是的,你可以在运行时使用它,你只需要在尝试访问之前检查文件是否存在。
如何实现它:
1.压缩文件。以zip为例。没有必要使用Mac压缩到zip格式。
1.将压缩数据库复制到项目的assets文件夹。
1.在应用程序的主函数(或数据初始化阶段)检查是否在连接到它之前解压缩。
1.如果找不到数据库文件,请使用archive插件对其进行重命名。