我正在编写一个 Android 应用程序,其中包括
- 后台服务 1,它定期读取传感器值(例如,程序每五分钟读取一次传感器值 30 秒,在测量期间每秒读取两次值),
- 后台服务 2,它分析传感器值并从中计算一些指标,
- 后台服务 3,每 3-7 天运行一次,并从数据库中删除旧数据(传感器值和指标)和
- 如果用户打开应用程序并按下某个按钮,则显示一些传感器值和/或指标的 GUI 活动。
将有 2 张桌子 -SensorData
和Metrics
. 后台服务 1 将写入SensorData
. 后台服务 2 将读取SensorData
和写入Metrics
. 后台服务 3 将从两个表中删除行。GUI 活动将从两个表中读取。
我正在考虑如何为传感器值和指标实现线程安全存储。
一个明显的解决方案是使用内置的 SQLite 数据库。
我有以下问题:
- 在这种情况下使用安全吗?
- Android 的 SQLite 会每秒处理两次写入两个数值 (
long
和) 吗?double
- 它是否支持并发访问(当 GUI 活动发出查询
SensorData
并且后台服务 1 尝试同时写入同一个表时会发生什么情况)?