За да използвате различна реализация на база данни с Room, трябва да намерите (или създадете) SupportSQLiteOpenHelper.Factory
реализация и я предадете на вашия RoomDatabase.Builder
чрез openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Най-простият начин да направите това е да използвате самостоятелната библиотека SQLite на Requery. Ще използвате RequerySQLiteOpenHelperFactory
като реализация на SupportSQLiteOpenHelper.Factory
, и ще използва пакетираното копие на SQLite на Requery вместо рамковата.
Ако по някаква причина не желаете да използвате библиотеката на Requery, ще трябва да намерите еквивалент, който харесвате, или ще трябва да внедрите SupportSQLite*
API сами. Направих това два пъти за SQLCipher за Android и е мъка, но със сигурност е изпълнимо.