Android epublib で OutOfMemoryError

Android で、電子書籍epub ファイルを読込むプログラムを実験しようと、
http://www.siegmann.nl/epublib/android
を試してみた。

28Mbyte の大きさのファイルを読もうとすると見事に、OutOfMemoryError が発生する。

上のライブラリ、WebView で表示させようとする悪くないコンセプトなのに、残念だ。

小さいサイズの epub ファイルは読めるのに、大きいサイズだと、、
以下のように読み出し時に、OutOfMemoryError になってしまう。

Book book = (new EpubReader()).readEpub(new ZipInputStream(new FileInputStream(path)));

---
E/AndroidRuntime(17785): FATAL EXCEPTION: main
E/AndroidRuntime(17785): java.lang.OutOfMemoryError
E/AndroidRuntime(17785): at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
E/AndroidRuntime(17785): at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
E/AndroidRuntime(17785): at nl.siegmann.epublib.util.IOUtil.copy(IOUtil.java:79)
E/AndroidRuntime(17785): at nl.siegmann.epublib.util.IOUtil.toByteArray(IOUtil.java:43)
E/AndroidRuntime(17785): at nl.siegmann.epublib.domain.Resource.<init>(Resource.java:114)
E/AndroidRuntime(17785): at nl.siegmann.epublib.util.ResourceUtil.createResource(ResourceUtil.java:64)
E/AndroidRuntime(17785): at nl.siegmann.epublib.epub.EpubReader.readResources(EpubReader.java:188)
E/AndroidRuntime(17785): at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:94)
E/AndroidRuntime(17785): at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:53)
E/AndroidRuntime(17785): at nl.siegmann.epublib.epub.EpubReader.readEpub(EpubReader.java:37)