簡體   English   中英

Android 3.2中的垃圾回收

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM