在用户能够在我的应用程序中执行任何操作之前,我有大量数据要插入到 sqlite 数据库中。现在我将所有数据存储在 CSV 文件中,然后我解析这些文件并使用DatabaseUtils.InsertHelper进行批量插入,但这需要很长时间才能完成。
前段时间我偶然发现了本教程,我想知道:分发预生成的 sqlite 文件是否安全?由于不同设备上的 SQLite 版本不同,我会遇到问题吗?
我计划支持 Android 2.1 及更高版本。
在用户能够在我的应用程序中执行任何操作之前,我有大量数据要插入到 sqlite 数据库中。现在我将所有数据存储在 CSV 文件中,然后我解析这些文件并使用DatabaseUtils.InsertHelper进行批量插入,但这需要很长时间才能完成。
前段时间我偶然发现了本教程,我想知道:分发预生成的 sqlite 文件是否安全?由于不同设备上的 SQLite 版本不同,我会遇到问题吗?
我计划支持 Android 2.1 及更高版本。
我想这取决于您对安全的定义。只要数据库符合 Android 期望的元数据表规范,这当然是可能的,这就是您偶然发现的教程向您展示的内容。您不必担心与 SQLite 的版本冲突,因为这是一个内置于核心平台的包,不是 OEM 添加或在其上实现任何东西的东西。
但是,如果安全是指“受保护”,则需要采取特殊步骤来确保您的数据库在外部不可读(如果这是一个问题)。如果您只是将预先构建的 DB 放入assets/
并复制过来,任何可以正确解构 APK 文件的人都可以查看您的数据库数据。这对您来说可能是也可能不是问题。
最好的方法是将这些数据填充到数据库中,将数据库保存在资产中,然后将其复制到设备中……您可以在此处遵循此完整示例代码。