通过 Assets 访问 SQLite 数据库

Accessing SQLite Database Through Assets

我正在尝试将 ionic 与 SQLite 插件一起使用 (https://github.com/brodysoft/Cordova-SQLitePlugin),并且我能够创建和使用数据库,但在我的应用程序中我需要一个预填充的数据库。

我看到了实现这一点的方法,方法是将数据库放在离子项目的 platforms/android/assets 文件夹中,然后在第一个 android 运行 上将其复制到 "correct location".

我的问题是,为什么需要将它复制到另一个位置?为什么我不能从应用程序创建的资产文件夹访问它?如果它是一个图像,我也不需要更改它的位置,我会从资产中使用它,那么为什么不也使用数据库呢?

您在 assets 文件夹中的数据库文件以导出的文件格式存储(需要最小存储 space,但不用于交互使用)。 Android SQLite 数据库需要导入此文件。这意味着以新格式读取和存储它以便更好地 searching/reading 和写入。

所以这不是一个简单的复制过程,而是一个交互过程,导入后您的数据库不再从您的资产文件夹中读取数据。因此,替换资产文件夹中的数据库不会更新导入的数据库。

您可以使用此项目在 android 中导入您的数据库:https://github.com/jgilfelt/android-sqlite-asset-helper