2014-08-28 51 views
1

我有一個應用程序,它使用SurfaceView儘可能快地繪製動畫。除了時不時的短暫動畫,它幾乎是完美的。這個短時間持續大約10毫秒,這並不是很多,但是足夠大以便被用戶注意到。Android應用程序中的堆空間

我看到這些凍結是由垃圾收集器觸發的堆空間變化引起的。在應用程序的清單中添加android:largeHeap="true"尚未解決問題。

有誰知道我該如何擺脫這個煩人的問題?

回答

1

這就是垃圾收集器試圖釋放一些資源的應用程序標記。你需要看到logcat - 它會在那裏看到。我建議優化內存使用(降低位圖大小,或者修改加載方案),或者(如果可能的話)找到一些間隔,在這個間隔內沒有任何動畫被強化,並且在那一點做System.gc(),隱藏來自用戶的凍結。

+0

我已經知道凍結的原因,因爲我已經看到了log cat中的相關消息。正如你所建議的,我會嘗試在我自己的系統上調用'System.gc()'... – VD63 2014-08-28 14:07:54

0

看起來Android並不足以增加應用程序的堆空間。

嘗試在Manifest文件中使用largeHeap設置。通過這個設置,Android每次增長堆時都會留下更多的可用內存,從而最大限度地降低了達到當前限制的可能性。

你只需要設置largeHeap="true"您的AndroidManifest.xml

+0

正如我的問題所示,我已經嘗試使用'largeHeap =「true」',但沒有成功...... – VD63 2014-08-28 18:51:35

相關問題