Android Room ORM:支持 SQLite 的自定义构建

Android Room ORM: Support custom build of SQLite

我需要使用自定义构建的 SQLite(基于 sqlite.org 版本 https://sqlite.org/android/doc/trunk/www/index.wiki),以便我可以使用自定义 FTS 标记器并使用 SEE 来加密我的数据库。

我正在使用以下代码创建 Room 数据库:

val mainDb = Room.databaseBuilder(context, MainDatabase::class.java, "main")
                .openHelperFactory(SqliteOrgSQLiteOpenHelperFactory())
                .build()

我尝试实现自己的 "SupportSQLiteOpenHelper.Factory" (SqliteOrgSQLiteOpenHelperFactory) 并尝试实现所有需要的 类,但是对 "android.database." 和 [=43 的直接依赖太多=].所有这些依赖项似乎都需要包含在 "SupportXXX" 类

示例: SupportSQLiteOpenHelper.Configuration 取决于:

  • android.database.DatabaseErrorHandler
  • android.database.DefaultDatabaseErrorHandler
  • android.database.sqlite.SQLiteDatabase.CursorFactory

SupportSQLiteDatabase 取决于:

  • android.database.sqlite.SQLiteTransactionListener
  • android.database.sqlite.SQLiteDatabase.CursorFactory

我错过了什么吗?我是不是完全错了?

有一个 github 存储库 https://github.com/hannesa2/SafeRoom , based on attached zip from https://issuetracker.google.com/issues/38481640 将 SQLCipher 应用于 Room