Не мисля, че разбирам напълно какъв ти е проблема. Ако питате дали има инструмент, който да автоматизира миграцията на данни вместо вас, тогава не, няма такъв инструмент.
В противен случай е доста просто:
-
Манипулирайте
onCreate
,onDowngrade
иonUpgrade
методи в реализацията на вашияSQLiteOpenHelper
клас. -
Във вашия
onCreate
метод, веднага след като създадете таблици, вземете всичките си данни от Realm и вмъкнете в таблици на SQLite.
Нещо като това:
Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
.findAll();
for (MyClass instance : all) {
doInsert(instance);
}
Всъщност ви предлагам да разгледате как да намалите размера на APK, докато използвате Realm, но зависи от вас
РЕДАКТИРАНЕ 1 Ще трябва да се уверите, че първо мигрирате данните и след това изтривате файловете на Realm. Въпреки че не файловете с данни правят вашия APK голям, а по-скоро действителните библиотеки, които идват с Realm. Така че за това, за съжаление, ще трябва да предприемете две стъпки:първа актуализация на изданието, която мигрира данните към SQLite, и след известно време (като седмица) можете да пуснете актуализация, която премахва напълно библиотеките на Realm. Надявам се, че има смисъл.