android - 在 Android 中使用外部数据库

标签 android sqlite

使用外部数据库文件(来自 Assets )和使用 SQLiteOpenHelper 创建新数据库有什么区别?性能方面哪一个会很快?从 Assets 访问数据库会减慢我的应用程序。

最佳答案

What is the difference between using external db file(from assets) and creating a new db using SQLiteOpenHelper?

您不能直接使用预先打包在应用中的数据库作为 Assets 。 SQLite 需要一个文件; Assets 不是文件,而是构成 APK 的 ZIP 文件中的条目。

使用 something like SQLiteAssetHelper ,您可以将预打包的数据库作为用户的起点,方法是将数据库从 Assets 复制到应用程序的内部存储中。

will accessing db from assets slow down my application.

这取决于您将它与什么进行比较,即便如此,差异也只会出现在您第一次尝试使用数据库时。

使用数据库打包为 Assets 的方法,需要先从 Assets 中复制数据库,然后才能使用它。这需要时间。它不应该比创建一个空数据库并执行 SQL 语句来填充它慢得多。事实上,我希望它在很多情况下会更快。但是,它会比从 数据库开始要慢。

一旦创建并设置了数据库——无论是通过您自己的 CREATE TABLE 语句还是通过从 Assets 中复制起始数据库——性能都将是相同的,因为数据库本身是相同的。

关于android - 在 Android 中使用外部数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21463131/

相关文章:

java - 使用 PhoneNumberUtils.compare() 检查联系人中是否存在号码

java - 处理任何错误时如何防止我的应用崩溃?

c# - 为什么 Visual Studio 在选择设备时尝试部署到模拟器

java - SQLite 无法在 OnCreate 方法中创建数据库。 E/SQLiteLog : (1)

sql - 批量SQL插入

shell - sqlite3 shell 命令 '.backup' 和事务

android - 如何处理android手机中的串口?

java - 使用 RecyclerView 和 GridLayoutManager 向布局添加动态按钮

sqlite - phonegap sqlite数据库的最大大小?

jquery - 在循环中使用 jQuery 延迟并完成异步 SQLite 数据库查询