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

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

我目前正在使用此通话。

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


任何帮助,将不胜感激!

谢谢

最佳答案

BitmapFactory.decodeByteArray()可以使用其他BitmapFactory.Options参数。如果将inBitmap字段设置为现有位图,则它可能会重用该位图对象。这样可以大大减少垃圾收集。

有关更多信息,请参见本页的“使用现有位图”部分:http://developer.android.com/training/displaying-bitmaps/manage-memory.html

关于java - 使用android BitmapFactory.decodeByteArray垃圾收集解码MJPEG流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26421911/

10-09 06:05