Я изучал альтернативные методы сохранения данных моей игры между ходами и спрашивал себя, может ли кто-нибудь указать мне правильное направление.
У меня есть приблизительно 32 КБ данных, которые должны быть сохранены во время onPause.Я исключил предпочтения из-за огромного количества данных.Я провел несколько дней, играя с SQLite, но не смог сохранить данные менее чем за две секунды (хотя время, конечно, не было потрачено впустую).
Я решил, что буду использоватьбаза данных для загрузки постоянных данных в начале игры.Это, безусловно, облегчит настройку различных параметров и значений по умолчанию в игре.Но это все еще заставляет меня искать идеальный метод записи данных.
Данные, которые необходимо сохранить, - это в основном девять экземпляров класса A и девять экземпляров класса B. У меня интенсивный месяц обученияКривая Android (и нюансы Java, происходящие из фона C ++) и гуглили как сумасшедшие.Это принесло две возможности:
1) Сериализация (ObjectOutputStream)
Я думал, что это было бы идеальным решением, но, прочитав несколько других постов по этой теме, понял, что это не так.Настоятельно рекомендуется на платформе Android из-за скорости и выделения памяти, вызывающих сборщик мусора в потенциальную ярость.
2) Класс DataOutputStream
Моя текущая мысль - добавить функции Load и Save в оба классаи использовать в них вызовы DataOutputStream и DataInputStream для записи и чтения данных соответственно.
Данные в классах являются примитивами (в основном, строками и целочисленными значениями) и массивами примитивов, поэтому в них нет ничего слишком сложного, чтобы разбитьвниз.Будет ли это второе решение хорошим, жизнеспособным?Или есть другие решения, о которых я пока не знаю?