使用外部数据库文件(来自资产)和使用SQLiteOpenHelper创建新数据库有什么区别?性能明智哪一个会很快?将从资产访问数据库减慢我的应用程序。在Android中使用外部数据库
1
A
回答
2
资产文件夹是只读的,所以如果您需要编辑数据库,那么它将不适用于yourapp。如果您有预填充的数据库,则可以选择一种方法,即将资产文件夹复制到首次访问应用程序时可写入的某个位置,然后继续使用可写入的版本。
0
假设您的数据库已正确配置,没有性能差异。看到这一点:
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
我使用这个程序后,我不得不经常做的相当复杂的和实质性的查询了〜500MB的数据库,这是我的邮政编码为分布和解压上,由于第一次运行大小,这完美无瑕。
4
使用外部数据库文件(来自资产)和使用SQLiteOpenHelper创建新数据库有什么区别?
您不能直接使用预先打包在应用程序中的数据库作为资产。 SQLite需要一个文件;资产不是文件,而是构成APK的ZIP文件中的条目。
使用something like SQLiteAssetHelper
,您可以将预打包数据库作为用户的起点,方法是将资产数据库从资产复制到应用程序的内部存储中。
将从资产访问数据库减慢我的应用程序。
这取决于您将其与之进行比较,即使这样,差异也只会是您第一次尝试使用数据库。
使用数据库打包为资产的方法,数据库需要在资产使用前从资产中复制。这需要时间。它不应该比创建一个空数据库并执行SQL语句来填充它慢得多。事实上,我预计在很多情况下它会更快。但是,它会比从空的数据库开始慢。
一旦数据库中创建和设置 - 无论是通过你自己的CREATE TABLE
陈述或通过复制资产初始数据库 - 性能将是相同的,因为数据库本身是相同的。
相关问题
- 1. 在android中使用外部数据库
- 2. 在外部数据库中使用CMS
- 3. Android与外部数据库
- 4. 在android编程中使用外部数据库和eclipse
- 5. 在Xamarin Android中使用外部库。
- 6. 在View中引用外部数据库?
- 7. 使用外部数据库数据在Wordpress中登录
- 8. 使用外部用户数据库
- 9. Oracle数据库 - 使用外部Java
- 10. 使用apache访问外部数据库
- 11. Drupal使用外部数据库
- 12. 使用外部MySQL数据库
- 13. Android中的外部数据
- 14. Android查询外部MySQL数据库
- 15. Android:连接到外部数据库
- 16. Android Mediastore和外部数据库
- 17. Android应用程序的内部数据库和外部数据库
- 18. 在Android应用程序中使用外部sqlite数据库的问题
- 19. 在android中使用外部应用访问谷歌sql数据库
- 20. Android-使用Android Studio导入外部库
- 21. 使用Android访问外部SQLite数据库?
- 22. 从Android应用程序传输数据到外部数据库
- 23. MediaWiki:存储在外部数据库中
- 24. 解析JSON在Android中使用了使用任何外部库
- 25. 如何在Magento中使用外部数据库连接?
- 26. 在SWIFT中使用FMDB访问外部数据库
- 27. 在GitLab中运行管道时使用外部数据库
- 28. 如何在extbase/fluid中使用外部数据库
- 29. 如何将用户数据存储在外部数据库中
- 30. 用Android将信息插入到外部数据库中
来自该博客文章的代码是旧的,讨厌的和有缺陷的。 'SQLiteAssetHelper'将是新的发展更好的选择:https://github.com/jgilfelt/android-sqlite-asset-helper – CommonsWare
你能否具体讲破绽?我很欣赏链接... –
它硬编码数据库文件的路径,在某些情况下会出错(例如,Android 4.2+平板电脑上的辅助帐户)。使用'getDatabasePath()'。由于Android为了压缩目的而将文件处理的方式存在一些奇怪之处,所以它会遇到大型数据库的问题,这就是为什么'SQLiteAssetHelper'需要一个ZIP文件。它不会同步()磁盘写入。并且它从SQLiteOpenHelper继承,但没有正确支持'SQLiteOpenHelper'(例如,多余的'openDataBase()',而不是使用'getReadableDatabase()'和kin)。可能还有更多,但这些都是首发。 – CommonsWare