Chcete-li použít jinou implementaci databáze s Room, musíte najít (nebo vytvořit) SupportSQLiteOpenHelper.Factory
implementaci a dodejte ji do vašeho RoomDatabase.Builder
přes openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Nejjednodušší způsob, jak toho dosáhnout, je použít samostatnou knihovnu SQLite od Requery. Použili byste RequerySQLiteOpenHelperFactory
jako implementace SupportSQLiteOpenHelper.Factory
a bude používat zabalenou kopii SQLite od Requery namísto rámcové.
Pokud z nějakého důvodu nechcete používat knihovnu Requery, budete muset najít ekvivalent, který se vám líbí, nebo budete muset implementovat SupportSQLite*
API sami. Udělal jsem to dvakrát pro SQLCipher pro Android a je to utrpení, ale určitě je to proveditelné.