[英]Garbage collection in Android 3.2
我有一個Android應用程序正在處理設備攝像頭。 在代碼中,onPreviewFrame函數將永遠循環並在每個信號循環中創建YuvImage的新實例。 最終,在循環中將該實例設置為null,因此系統垃圾回收器可以釋放分配的內存。
這在Android 4.1中完美運行,但在3.2中則無效。 在Android 3.2操作系統中,此應用程序分配越來越多的內存,最終耗盡內存。
怎么了?
oPreview.oCamera.setPreviewCallbackWithBuffer( new Camera.PreviewCallback()
{
public synchronized void onPreviewFrame( byte[] bData, Camera oCamera)
{
...
YuvImage oYuv_image = new YuvImage( bData, iFormat, iW, iH, null);
...
oYuv_image = null;
}
}
有一個名為“ Memory Analizer”的Eclipse插件。 它可以顯示內存“泄漏”的確切位置以及正在填充應用程序的內容,直到內存用完為止。
這是一個教程: http : //www.vogella.com/articles/EclipseMemoryAnalyzer/article.html
我過去使用過它,該插件對我有很大幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.