Android:频繁存储传感器/GPS 数据会降低电池电量吗?

标签 android performance gps android-sensors battery

我目前正在编写一个 Android 应用程序,需要执行以下操作:

  • 检索传感器数据,例如 ActivityRecognition数据,例如每 20-30 秒一次
  • 不时检索 GPS 数据(例如,当 Activity 识别发送用户正在使用其自行车或汽车时),因此我认为普通用户每天最多检索几次。例如,GPS 数据检索的频率可以是每 5-10 秒一次。

当然,这些数据应该存储在某个地方,以便稍后由我的应用程序进行分析。分析部分不是这里的问题,因为我不需要任何类型的实时计算,所以我实际关心的是如何有效地存储数据

因此,如果我们考虑一个普通用户将生成大约 5000 个传感器数据 + 5000 个 GPS 数据:

  • 如何最好地存储这些数据?数据库 ?每天 1 个文件 ?我会说数据库是为了性能问题和使用简单性,但我不确定每 10/20 秒打开/关闭数据库连接以仅添加一行数据是否是一个很好的做法。另外,日志文件(每天一个)可能是一个好主意,但我认为从性能角度来看这非常糟糕,即使使用序列化也是如此?
  • 存储这 10000 个数据是否会降低电池生命周期,而不仅仅是检索传感器(ActivityRecognition、GPS)数据而不进行存储?我的意思是,在我看来,这会有点过度消耗,但同时 GPS 已经消耗了很多电池......
  • 另一种方法可以做到这一点吗?

还想到了内存存储,然后每隔几分钟就可以将其放入硬盘存储(SQLite、文件)中,但我不确定这对于安全保存数据来说是一个好主意...

提前致谢

最佳答案

与GPS电池消耗相比,数据库的读写几乎不消耗任何资源(毕竟是闪存),所以不用担心。在我看来,数据库是存储这些数据的最佳选择,并且我认为每 10 或 20 秒创建一个条目没有问题。

关于Android:频繁存储传感器/GPS 数据会降低电池电量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271304/

相关文章:

android - Android 中的 float 视频播放器(如 youtube 播放器)

Android OrmLite 预填充数据库

java - 如何确保线程不会在 Java 中延迟?

android - GPS 位置记录电池生命周期

android - FusedLocationProvider - 精确定位和 wifi

android - 小部件上的方向更改按钮没有响应后

javascript - 开发离线 MathJax Android 移动应用程序

javascript - Javascript 中的 JSONPath 太长了——比经典循环长大约 3000 倍

c# - 公共(public)领域可以吗?

Android LocationListener 在手机处于 sleep 状态时保持开启状态