Ich glaube ich verstehe nicht ganz was dein Problem ist. Wenn Sie fragen, ob es ein Tool gibt, das die Datenmigration für Sie automatisiert, dann nein, es gibt kein solches Tool.
Ansonsten ist es ziemlich einfach:
-
Behandeln Sie
onCreate
,onDowngrade
undonUpgrade
Methoden in der Implementierung IhresSQLiteOpenHelper
Klasse. -
In Ihrem
onCreate
-Methode erhalten Sie direkt nach dem Erstellen von Tabellen alle Ihre Daten von Realm und in SQLite-Tabellen einfügen.
Etwa so:
Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
.findAll();
for (MyClass instance : all) {
doInsert(instance);
}
Ich schlage eigentlich vor, dass Sie prüfen, wie Sie die APK-Größe reduzieren können, während Sie Realm verwenden, aber es liegt an Ihnen
BEARBEITEN 1 Sie müssten sicherstellen, dass Sie zuerst die Daten migrieren und dann Realm-Dateien löschen. Obwohl es nicht die Datendateien sind, die Ihr APK groß machen, sondern die eigentlichen Bibliotheken, die mit Realm geliefert werden. Dafür müssen Sie leider zwei Schritte unternehmen:Zuerst ein Release-Update, das die Daten nach SQLite migriert, und nach einer angemessenen Zeit (z. B. einer Woche) können Sie ein Update veröffentlichen, das Realm-Bibliotheken vollständig entfernt. Hoffe es macht Sinn.