Android:字节分配超过字节最大堆大小

时间:2013-02-25 12:34:49

标签: android byte out-of-memory allocation

我正在开发使用AES加密对媒体(图片,视频等)进行加密的Android应用程序,当我读取大文件(例如超过90 MB)时,我有java.lang.OutOfMemoryError:< / p>

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileToEncrypt));
ByteBuffer bb = ByteBuffer.allocate((int) fileToEncrypt.length());
bis.read(bb.array());
bis.close();

根据thisthis主题或其他人,我在AndroidManifest.xml中使用android:largeHeap="true"选项,但我不确定是最佳方案。是吗 ?如果没有,操作大文件最好的是什么?

1 个答案:

答案 0 :(得分:1)

android:largeHeap旗帜有潜在危险,我不会向任何人推荐它。当你想尝试一些东西时它很好,但你不能依赖更大的堆作为最终解决方案。启用大堆可能会因物理内存不足而导致意外崩溃,而不仅仅是针对此特定应用程序的低dalvik内存。

对我来说有两种解决方案: