1

好吧,我想在我的应用程序上添加一些功能。我想要的是在那里放一个搜索按钮,我知道为了做到这一点,我必须将我的文本放在数据库中以使用 sql 进行查询。但是,在 android 上使用 sqlite 有缺点吗?例如,如果我必须在其中存储大文件?或者如果一个用户删除了我创建的应用程序,数据库会保留在他们的手机中吗?还有我可以在 android 上的 sqlite 上使用的最大尺寸是多少?除了使用数据库之外,还有其他替代方法吗?谢谢..

4

4 回答 4

2

好吧,我不确定数据库,但通常外部存储数据永远不会被删除,除非用户自己删除它。尽管在旧版本的 android 中,数据曾经在应用程序卸载时被删除。

我不确定缺点,但除了 SQLite,Android 中还有 3 个数据存储选项。一种是共享偏好,但它只满足原始数据类型,并在应用卸载时被删除。其次是内部存储器上的文件存储,在应用程序卸载时也会被删除。第三是外部存储器上的文件存储,它不会在应用程序卸载时删除,但如果存储安装在计算机上,则可以由任何其他应用程序或计算机访问。

SQLite 数据对应用程序来说是安全和私有的,我相信这是一种很好的存储方法。它的大小限制是 SQLite 的标准,请在此处查看 SQLite 限制

于 2012-08-04T07:45:34.720 回答
1

SQLite 似乎对您来说是一个很好的解决方案。如果您打算在 DB 中搜索文本,您可以使用FTS功能。我认为它支持大文件的能力超过了现代硬件上限:)。Sqlite 数据库是简单文件,因此您可以控制是否将其保存在用户设备上(将 db 文件放在 sdcard 上左右(强烈不推荐))或不保存(将 db 文件放入应用程序本地存储)。

如果您描述更多您的应用程序,我可以建议一些替代方案。

于 2012-08-04T07:23:22.230 回答
1

我认为在您的应用程序中使用 sqlite 并没有什么缺点。但是有人认为您不会忘记您必须仅在后台线程中执行所有数据库操作。如果您在主线程中运行,则 UI 将在处理大数据时冻结。

如果您使用方法创建文件,也可以从 SDCard 中删除您的应用程序数据。请getExternalStorageDirectory()参阅下面的链接以使用该方法创建文件

Android 如何使用 Environment.getExternalStorageDirectory()

于 2012-08-04T07:24:11.053 回答
0

实际上,我相信这是 Sqlite 的优点之一。Sqlite 是数据库的 1 文件解决方案,可让您轻松克隆和部署。至于卸载和大小限制的删除,我无法想象为什么它会与任何其他文件不同(因为它只是一个文件)

于 2012-08-04T07:34:56.417 回答