UPDATE (7. November 2019)
Room unterstützt jetzt die Verwendung einer vorgefertigten Datenbank ab Version 2.2.0
https://developer.android.com/jetpack/androidx/releases/room#2.2.0
Lösung vor Version 2.2.0: Einfache Lösung ohne andere externe Bibliotheken.
Room verwendet den vorhandenen Android-Framework-Code, um eine Datenbank zu erstellen oder zu öffnen. Wenn Sie sich den Quellcode von FrameworkSQLiteOpenHelper(Room's Version von SQLiteOpenHelper) ansehen, werden intern interne SQLiteOpenHelper.getReadableDatabase()Methoden und andere Methoden aufgerufen, wo immer dies erforderlich ist.
Die einfachste Lösung besteht also darin, die DB-Datei einfach aus dem Assets-Verzeichnis zu kopieren, mContext.getDatabasePath("my-database.sqlite")bevor Sie die DB mit Room erstellen.
In Ihrem Fall sieht der Code ungefähr so aus -
private final String DB_NAME = "my-database.sqlite";
private MyDatabase buildDatabase(Context context) {
final File dbFile = context.getDatabasePath(DB_NAME);
if(!dbFile.exists()) {
copyDatabaseFile(dbFile.getAbsolutePath());
}
return Room.databaseBuilder(context.getApplicationContext(),
MyDatabase.class, DB_NAME)
.build();
}
private void copyDatabaseFile(String destinationPath) {
}
Dieser Link enthält den Code, der zum Kopieren des DB- Links mit Code benötigt wird