Um eine andere Datenbankimplementierung mit Room zu verwenden, müssen Sie eine SupportSQLiteOpenHelper.Factory
finden (oder erstellen). Implementierung und stellen Sie es Ihrem RoomDatabase.Builder
zur Verfügung über openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Der einfachste Weg, dies zu tun, ist die Verwendung der eigenständigen SQLite-Bibliothek von Requery. Sie würden RequerySQLiteOpenHelperFactory
verwenden als Implementierung der SupportSQLiteOpenHelper.Factory
, und es wird die gepackte Kopie von Requery von SQLite anstelle der Framework-Kopie verwendet.
Wenn Sie die Bibliothek von Requery aus irgendeinem Grund nicht verwenden möchten, müssen Sie ein Äquivalent finden, das Ihnen gefällt, oder Sie müssen SupportSQLite*
implementieren APIs selbst. Ich habe das zweimal für SQLCipher für Android gemacht, und es ist mühsam, aber es ist sicherlich machbar.