我是Android的新手,我尝试做一个简单的应用程序,可以将加速度计,陀螺仪和GPS记录到单个csv文件(背景)中,以便稍后分析数据。经过谷歌的一些挖掘后,我得到的所有信息都有点陈旧,有些还没有真正起作用。
所以,问题是:
如果我在这个https://stackoverflow.com/a/4343827/2985850的UI线程中完成所有任务,我想知道每个传感器记录之间是否存在延迟?因为我希望所有传感器以相同的采样率同时运行。
到目前为止,我注意到有两种方法可以实现这一点:使用多线程或服务。但是,(纠正我,如果我错了)该服务也在UI线程上运行,这意味着如果我以服务方式执行,日志记录过程也在单个线程中运行,这可能会导致一些延迟每个传感器之间的记录过程
如果有更好的方法来完成这个或任何好的例子,请随时放弃这里谢谢! :)
答案 0 :(得分:0)
根据我的经验,我会尝试回答你的问题
是的,不同的传感器读数之间存在时间差异,在这种情况下,您有2个选项
a - 您还可以在cvs文件上添加时间戳(可以通过event.timestamp获取)
b - 您可以使用静态频率而不是SensorManager获取传感器读数.SENSOR_DELAY_GAME(您可以在此处给出时间作为ms,例如,如果您编写10而不是SensorManager.SENSOR_DELAY_GAME您的设备每10 ms(100Hz)获取传感器读数))
我也将它用作服务而且没有任何延迟
此外,我想再添加一个小东西,如果你想在很短的时间内获取数据,你可以随时使用System.out.println()并且它比写入文件更快