В настоящее время я пишу приложение для Android, которому нужно будет делать такие вещи, как:
- Получение данных датчиков, таких как ActivityRecognition, скажем каждые 20-30 секунд
- Получение данных GPS время от времени (например, когда распознавание активности отправляет, что пользователь использует свой велосипед или автомобиль), поэтому я бы сказал, что для среднего пользователя максимум несколько раз в день. Частота получения данных GPS может составлять, например, каждые 5-10 секунд.
Конечно, эти данные должны где-то храниться, чтобы позже их могло проанализировать мое приложение. Часть анализа здесь не является проблемой, так как мне не нужны какие-либо вычисления в реальном времени, поэтому моя настоящая забота — как эффективно хранить данные.
Итак, если мы рассмотрим среднего пользователя, который будет генерировать около 5000 данных датчиков + 5000 данных GPS:
- Как лучше хранить эти данные? База данных ? 1 файл в день? Я бы назвал базу данных из-за проблем с производительностью и простоты использования, но я не уверен, что это очень хорошая практика - открывать/закрывать соединение с базой данных каждые 10/20 секунд, чтобы добавить только одну строку данных. Кроме того, журналируемый файл (один в день) может быть хорошей идеей, но я думаю, что это довольно плохо с точки зрения производительности, даже при использовании сериализации?
- Будет ли хранение этих 10 000 данных сокращать срок службы батареи намного больше, чем просто получение данных датчиков (ActivityRecognition, GPS) без хранения? Я имею в виду, мне кажется, что это будет немного перерасходовать, но в то же время GPS уже использует так много батареи ...
- Есть ли другой способ сделать это?
Также подумал о хранилище в памяти, после чего каждые несколько минут его можно было бы помещать в жесткое хранилище (SQLite, файлы), но я не уверен, что это хорошая идея с точки зрения безопасного хранения данных...
заранее спасибо