Я пишу Android приложение, которое будет состоять изМожно ли использовать встроенное хранилище SQLite для одновременного хранения данных?
- фона службы 1, который считывает значение датчиков через регулярные промежутки времени (например, каждые пять минут программа считывает показание датчика в течение 30 секунд, в течение периода измерения значений считываются два раза в секунду),
- справочная служба 2, которая анализирует значения датчиков и вычисляет некоторые показатели из них,
- фоновое обслуживание 3, которое выполняется один раз в 3-7 дней и удаляет старые данные из базы данных (оба значения датчиков и показатели) и
- Деятельность GUI, которая ws некоторые из значений датчика и/или показателей, если пользователь открывает приложение и нажимает кнопку.
Будет 2 стола - SensorData
и Metrics
. Фоновая служба 1 будет писать до SensorData
. Фоновая служба 2 будет читать с SensorData
и писать до Metrics
. Фоновая служба 3 удалит строки из обеих таблиц. Активность GUI будет считываться из обеих таблиц.
Я думал о том, как реализовать поточное хранилище для значений датчиков и показателей.
Очевидным решением является использование встроенной базы данных SQLite.
я следующие вопросы:
- Безопасно ли использовать в этой ситуации?
- Будет ли SQLite дескриптора Android записывать два числовых значения (
long
иdouble
) два раза в секунду? - Поддерживает ли он параллельный доступ (что происходит, когда действие GUI выдает запрос на
SensorData
, а фоновая служба 1 пытается записать в ту же таблицу одновременно)?