在Android上使用Room时如何安装最新版本的Sqliteaar

我正在调查我当前应用程序中的 Android Room 数据库。

我正在尝试通过使用最新版本来安装最新版本的 Sqlite aar

我曾尝试放置aar在我的数据库模块libs文件夹和引用,在我的gradle这个文件但SQLite的版本显示的总是3.22.0
aar3.34.0

我需要遵循哪些步骤来覆盖默认提供的 Sqlite 版本并使用我下载的 aar 文件?

或者

这不可能吗?

sqlite.org 网站有这个

可以通过三种方式将 SQLite Android 绑定添加到应用程序:

通过将预构建的 aar 文件添加到应用程序 Android Studio 项目中。通过构建 aar 文件,然后将其添加到应用程序 Android Studio 项目中,如 (1) 所示。通过将 SQLite Android 绑定源代码添加到其他应用程序代码并将其与其他应用程序代码一起构建。默认情况下,SQLite Android 绑定支持 Android API 级别 16 及更高级别(Android 4.1 及更高版本)。还有一个单独的版本支持 Android API 级别 9 及更高级别(Android 2.3 及更高版本)。如果您希望使用与 API 级别 9 兼容的版本,请注意获取代码所涉及的额外步骤。

  1. 使用预先构建的 aar 文件 这是最直接的选项。“aar”文件类似于 jar 文件,不同之处在于它可能包含已编译的 Java 类和本机代码。此页面提供了可用于 API 级别 16 及更高级别的最新 SQLite 版本的 aar 文件。

将 aar 文件添加到 Android Studio 项目涉及两个步骤:

导入模块。在 Android Studio 2.1 中,这是通过选择“文件”->“新建”->“新建模块...”菜单,然后选择“导入 JAR/AAR 包”来完成的。将新模块的依赖项添加到主应用程序模块(或将使用 SQLite Android 绑定的所有模块)。在 Android Studio 2.1 中,可以使用项目结构对话框(选择“文件”->“项目结构...”)或通过将类似于以下的代码添加到应用程序模块 build.gradle 文件中来创建依赖项:dependencies { //把“sqlite-android-3130000”改成新模块的名字!编译项目(':sqlite-android-3130000')}

我已经尝试过这种方法,room 仍然报告原始版本。我相信有一种方法可以替换 Android 默认提供的捆绑 sqlite

回答

要在 Room 中使用不同的数据库实现,您需要找到(或创建)一个SupportSQLiteOpenHelper.Factory实现并将其提供给您的RoomDatabase.Builder viaopenHelperFactory()

val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
  .openHelperFactory(factory)
  .build()

最简单的方法是使用Requery 的独立 SQLite 库。您将RequerySQLiteOpenHelperFactory用作 的实现,SupportSQLiteOpenHelper.Factory它将使用 Requery 的 SQLite 打包副本而不是框架副本。

如果出于某种原因,您不想使用 Requery 的库,则需要找到您喜欢的等效库,或者您需要自己实现SupportSQLite*API。我为 Android 的 SQLCipher 做了两次,这很痛苦,但它肯定是可行的。


以上是在Android上使用Room时如何安装最新版本的Sqliteaar的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>