我工作的一個應用程序從互聯網流媒體音樂...我的應用程序做很多事情,它在結構是這樣的:我有一個標籤視圖,每個視圖在每次內存中,以便分配我瀏覽標籤我再次發現以前的狀態(每個標籤也可以打開一個webview來查找有關歌曲,新聞等在互聯網上的信息)..所有這些增長的內存佔用,但使應用程序非常用戶友好......在注意後爲了避免遵循Android指南發生內存泄漏,我試圖查看堆佔用情況,並且發現我的應用程序分配了最大3.5MB的內存,並且分配的堆大小爲4.5 - 4.6 MB ...我正在模擬器上工作。他們都沒有這麼多,我想,但有時我的應用程序是在重新啓動logcat中成立像Android的成長堆斷枝情況下
Grow heap (frag case) to 3.373 for 19764-byte allocation
一個奇怪的消息
這是什麼?一個模擬器的問題?或者是其他東西?我是否使用太多內存?
預先感謝您的幫助:)
哦謝謝你的回答^^爲什麼它不是壞事?我的應用在這種情況發生時退出......我認爲這很糟糕......我的錯?我收到另一條消息:heapworker是楔形的:在Landroid/media/MediaPlayer中花費了13129ms; .finalize()V ...你知道這是什麼嗎? – Erenwoid
是的,如果你的應用正在退出,那很糟糕。我的意思是在多個網頁中使用只有〜4MB的堆也不錯。 我不太瞭解'HeapWorker'問題。通常它會跟蹤分配的內存,並在未使用的對象上運行垃圾回收器。我的猜測是你的一個線程正在使用所有的CPU,並且'MediaPlayer'沒有時間運行'finalize()',這是一個絕對不需要13秒的函數。 –