我正在一次解码多个MJPEG流,并且由于Android设备上的解码工作方式,BitmapFactory.decodeByteArray每次调用时都会分配内存,这意味着垃圾收集必须加班。我希望能够做的是手动控制内存,以便可以重用相同的块并减少垃圾收集器运行的时间,因为它会对性能产生重大影响。
有没有人有这方面的经验?
我目前正在使用此电话。
newBitmap = BitmapFactory.decodeByteArray(frameBuffer, 0, frameSize);
任何帮助将不胜感激!
由于
答案 0 :(得分:2)
BitmapFactory.decodeByteArray()可以使用额外的BitmapFactory.Options参数。如果将inBitmap字段设置为现有位图,则可以重用位图对象。这可以大大减少垃圾收集。
有关详细信息,请参阅此页面的“使用现有位图”部分:http://developer.android.com/training/displaying-bitmaps/manage-memory.html