【发布时间】:2013-05-26 17:34:57
【问题描述】:
在 Android 中记录快速更新数据的最佳方式是什么?
在我的具体示例中,我试图在(加速)onSensorChanged 触发时记录各种数据花絮,这很常见。一些快速处理和显示很好,但更多(绘图或记录数据)会使它变得相当慢。值得注意的是,我将其存储在变量中而不是归档。
建议您在 onSensorChanged 中尽可能少做,所以我尝试了以下方法:
- 在
IntentService中:获取您要记录的其余数据并将其全部存储在一个变量中。 结果:即使意图服务在其自己的线程中执行,但一次只能运行一个。因此,数据进入的速度似乎比它可以处理的要快,并且最终会出现一长串要处理的数据,从而产生一个长而恒定的 GC_FOR_ALLOC 流。最终使它成为一个糟糕的选择 - 在
AsyncTask中获取要记录的额外数据,然后启动IntentService以将其记录到变量中。 结果:和上面差不多。
总体而言,这两种方法的性能实际上比仅在 onChanged 中进行额外的数据获取和记录要差得多,而且消耗的功率也大大增加。我还没有找到任何关于快速数据存储的具体建议。缓冲区或缓存可能更有效吗?
【问题讨论】: