Aby użyć innej implementacji bazy danych z Room, musisz znaleźć (lub utworzyć) SupportSQLiteOpenHelper.Factory
implementację i dostarcz ją do swojego RoomDatabase.Builder
przez openHelperFactory()
:
val builder = Room.databaseBuilder(context, SomeDatabase.class, DB_NAME)
.openHelperFactory(factory)
.build()
Najprostszym sposobem na to jest użycie samodzielnej biblioteki SQLite Requery. Możesz użyć RequerySQLiteOpenHelperFactory
jako implementacja SupportSQLiteOpenHelper.Factory
, i użyje spakowanej kopii programu SQLite z Requery zamiast wersji frameworka.
Jeśli z jakiegoś powodu nie chcesz korzystać z biblioteki Requery, musisz znaleźć odpowiednik, który ci się podoba, lub musisz zaimplementować SupportSQLite*
Interfejsy API samodzielnie. Zrobiłem to dwa razy dla SQLCipher dla Androida i jest to uciążliwe, ale z pewnością jest to wykonalne.