记录快速更新数据的最佳方式(Android)



在Android中记录快速更新数据的最佳方式是什么?

在我的具体例子中,我试图记录各种数据花絮每当(加速)onSensorChanged火灾,这是经常。对于一些快速的处理和显示来说,它很好,但是其他的(绘图或记录数据)会使它变得相当慢。值得注意的是,我将它存储在一个变量中,而不是文件中。

建议您在onSensorChanged中尽可能少地执行操作,因此我尝试了以下操作:

  • IntentService中:获取您想要记录的其余数据并将其全部存储在变量中。Result:即使一个intent服务在它自己的线程中执行,一次也只能运行一个。因此,数据进入的速度似乎比处理速度快,最终会有一长串数据等待处理,从而产生一个长而恒定的GC_FOR_ALLOC流。最终使它成为一个糟糕的选择
  • AsyncTask中获取您想要记录的额外数据,然后启动IntentService以将其记录到变量。结果:几乎和上面一样。
总的来说,这两种方法实际上比在onChanged中进行额外的数据获取和记录要差得多,而且消耗的能量也多得多。我还没有找到任何关于快速数据存储的具体建议。缓冲区或缓存是否会更有效?

经过一些调试和尝试使用不同的数据结构来存储快速更新的数据后,结果表明使用IntentService工作得相当好。将用于添加新元素的带有O(n)的ArrayList更改为仅将新值附加到末尾带有O(1)的自定义LinkedList会产生巨大差异。由于LL能够更快地处理数据,因此需要记录大量待处理值的问题基本上消失了。

最新更新