Para usar una implementación de base de datos diferente con Room, debe encontrar (o crear) un SupportSQLiteOpenHelper.Factory
implementación y suminístrela a su RoomDatabase.Builder
a través de openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
La forma más sencilla de hacerlo es usar la biblioteca SQLite independiente de Requery. Usarías RequerySQLiteOpenHelperFactory
como la implementación de SupportSQLiteOpenHelper.Factory
, y utilizará la copia empaquetada de SQLite de Requery en lugar de la del marco.
Si, por alguna razón, no desea utilizar la biblioteca de Requery, deberá encontrar un equivalente que le guste, o deberá implementar SupportSQLite*
API usted mismo. Hice eso dos veces para SQLCipher para Android, y es una molestia, pero ciertamente es factible.