我有一個應用程序需要在任何給定的時刻在一個隊列中存儲3〜1MB的字節數組。似乎什麼結束了發生的事情是,我得到這個消息ByteBuffers是一種在Android中存儲大於1MB數據的好方法嗎?
I/dalvikvm-heap﹕ Grow heap (frag case) to 4.827MB for 1058412-byte allocation
然後我byte[]
分配的大小爲0。
我已經嘗試設置在清單android:LargeHeap="true"
但這仍然出現。
如果我使用ByteBuffers而不是byte[]
是否可以存儲這3 byte[]
對象沒有內存問題?
你在重複使用這些字節數組嗎?或者你讓他們收集垃圾並試圖在晚些時候再分配它們? – CommonsWare 2014-11-05 01:15:42
'字節[]被分配爲0的大小'不能發生,除非您指定大小爲零。它不會因內存不足而發生。 – EJP 2014-11-05 01:54:01
是的,似乎Dalvik虛擬機有能力(至少在模擬器上)刪除一個太大的字節數組。很奇怪。 – benstpierre 2014-11-06 18:57:19