使用android BitmapFactory.decodeByteArray垃圾收集解码MJPEG流

时间:2014-10-17 09:24:47

标签: java android garbage-collection

我正在一次解码多个MJPEG流,并且由于Android设备上的解码工作方式,BitmapFactory.decodeByteArray每次调用时都会分配内存,这意味着垃圾收集必须加班。我希望能够做的是手动控制内存,以便可以重用相同的块并减少垃圾收集器运行的时间,因为它会对性能产生重大影响。

有没有人有这方面的经验?

我目前正在使用此电话。

newBitmap = BitmapFactory.decodeByteArray(frameBuffer, 0, frameSize);

任何帮助将不胜感激!

由于

1 个答案:

答案 0 :(得分:2)

BitmapFactory.decodeByteArray()可以使用额外的BitmapFactory.Options参数。如果将inBitmap字段设置为现有位图,则可以重用位图对象。这可以大大减少垃圾收集。

有关详细信息,请参阅此页面的“使用现有位图”部分:http://developer.android.com/training/displaying-bitmaps/manage-memory.html