Я начал работать над некоторыми приложениями для Android, и у меня возник вопрос о том, как люди обычно справляются с ситуациями, когда у вас есть статический набор данных, и есть приложение, где эти данные нужны в памяти как одна из стандартных коллекций Java или как массив.
В моей текущей конкретной проблеме у меня есть электронная таблица с некоторыми предварительно рассчитанными данными. Он состоит из ~ 100 строк и 3 столбцов. 1 столбец - строка, 1 столбец - число с плавающей запятой, 1 столбец - целое число. Мне нужен доступ к этим данным в виде массива в Java.
Кажется, я мог бы:
1) Кодирование в XML - в моем опыте это было бы очень сложно для декодирования.
2) встроить в базу данных SQLite - кажется, что для статического доступа к данным требуются большие затраты, мне нужен только доступ в стиле массива в оперативной памяти.
3) Создайте двоичный двоичный объект и прочитайте его (никогда не делали этого на Java, я скучаю по void *)
4) Создайте скрипт на python, чтобы взять CSV-версию моих данных, и выложите Java-функцию, которая добавляет значения к моей желаемой структуре с жестко закодированными значениями.
5) Сохранение строкового массива с помощью механизма ресурсов Android и вычисление двух других столбцов при загрузке приложения. В моем случае для вычислений потребовалось бы много обращений к Math.log, Math.pow и Math.floor, что я не хотел бы делать из-за времени загрузки и использования батареи.
В основном я работаю со встроенными приложениями с низким энергопотреблением в C, и поэтому я в таких ситуациях привык к # 4.
Просто кажется, что получить доступ к статическим структурам данных в java / android гораздо проще.
Возможно, я просто слишком сильно разбираюсь в использовании батареи, и в моем единственном случае я думаю, что ответ заключается в том, что это не имеет большого значения, но если бы каждое приложение заняло такую позицию, это могло бы начать иметь значение.
Какие подходы люди обычно используют в этой ситуации? Что-нибудь, что я пропустил?