Chyba nie rozumiem w pełni, na czym polega twój problem. Jeśli pytasz, czy istnieje narzędzie, które zautomatyzuje migrację danych, to nie, nie ma takiego narzędzia.
W przeciwnym razie jest to raczej proste:
-
Obsługa
onCreate
,onDowngrade
ionUpgrade
metody w implementacji twojegoSQLiteOpenHelper
klasa. -
W swoim
onCreate
metody, zaraz po utworzeniu tabel pobierz wszystkie dane z Realm i wstawiaj do tabel SQLite.
Coś takiego:
Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
.findAll();
for (MyClass instance : all) {
doInsert(instance);
}
Właściwie sugeruję, abyś zastanowił się, jak zmniejszyć rozmiar APK podczas korzystania z Realm, ale to zależy od Ciebie
EDYTUJ 1 Musisz najpierw przeprowadzić migrację danych, a następnie usunąć pliki Realm. Chociaż to nie pliki danych sprawiają, że Twój APK jest duży, ale raczej rzeczywiste biblioteki dostarczane z Realm. W tym celu będziesz niestety musiał wykonać dwa kroki:najpierw wydać aktualizację, która migruje dane do SQLite, a po pewnym rozsądnym czasie (np. tygodniu) możesz wydać aktualizację, która całkowicie usuwa biblioteki Realm. Mam nadzieję, że to ma sens.