大家好,我在我的项目中使用MuPdf库来查看文档。问题是,在平板电脑的11英寸屏幕上打开3-7个文档时,会出现内存溢出的情况。当您加载新文档时,所有对先前文档的引用都会被销毁,但文档的图像不会从内存中删除。内存中的图像对象大小为10-12兆字节。在7英寸平板电脑上不会出现这个问题。
也许有人遇到过这个问题?
大家好,我在我的项目中使用MuPdf库来查看文档。问题是,在平板电脑的11英寸屏幕上打开3-7个文档时,会出现内存溢出的情况。当您加载新文档时,所有对先前文档的引用都会被销毁,但文档的图像不会从内存中删除。内存中的图像对象大小为10-12兆字节。在7英寸平板电脑上不会出现这个问题。
也许有人遇到过这个问题?
public void releaseBitmaps() {
reinit();
mEntireBm.recycle();
mPatchBm.recycle();
mEntireBm = null;
mPatchBm = null;
}
if (mEntireBm == null || mEntireBm.getWidth() != newSize.x
|| mEntireBm.getHeight() != newSize.y) {
mEntireBm = Bitmap.createBitmap(mSize.x, mSize.y, Bitmap.Config.ARGB_8888);
System.gc();//Added
Runtime.getRuntime().gc();//Added
}
编辑:打开文件几次后它会崩溃。
更改: /* 为低内存设备提供128MB的存储空间。根据需要进行调整。 */ glo->ctx = ctx = fz_new_context(NULL, NULL, 128 << 20); 为 /* 为低内存设备提供32MB的存储空间。根据需要进行调整。 */ glo->ctx = ctx = fz_new_context(NULL, NULL, 32 << 20);
就这样。 最大堆内存量约为50MB。