最近我在减少Android源代码中的内存泄漏。
我在android studio上使用分配跟踪工具
我的应用正在录制相机预览应用
如果你看图片
protected int getOutPutBufferIndex() {
IMediaCodec.BufferInfo bufferInfo = new IMediaCodec.BufferInfo(); //here occur memory leak
int outputBufferIndex = mediaCodec.dequeueOutputBuffer(bufferInfo, timeout); //get buffer index
return outputBufferIndex;
}
此方法仅返回缓冲区索引。
我猜使用new
所以我尝试在bufferInfo = null;
return outputBufferIndex;
但bufferInfo = null;
分配给从未使用的消息。
并且发生内存泄漏不变。
那么,如何使用new
创建对象,避免android上的内存泄漏?
感谢。
答案 0 :(得分:0)
尝试使用MediaCodec.BufferInfo和new operator assignment.it应该删除你的错误..