View Full Version : IMP eBook Reader for Android

06-30-2010, 12:24 PM
I have started a project on CodePlex to read IMP files from the SD Card. The source code is free and will be posted today. I would like to ask for help on the Decompression algorithm in Java because in this first version the opening of the IMP book is really slow.


Finished Version 1.5 is now available for download at codeplex the APK install file for the Android and source code are found there. The Web View is now in place for a better display of the book content.

I have added the compiled installer for the Android 1.5 also to the codeplex site. The IMP book files currently need to reside on the root of the SD Card. I plan in the future to change this to start looking recursively under a directory called IMP on the SD Card so you can organize your files the way you want. I will post with version 2.0 in the next week with this change.


06-30-2010, 12:59 PM
Wow, that's an accomplishment!

I don't tend to get too excited about smartphones (still don't use one) but my daughter has an LG Eve that I play with sometimes. I'll be sure to try it out unless it needs Android 1.6 or later since the LG Eve is stuck at 1.5 until (hopefully) Fall 2010!

I don't know anything about programming for Android, but I am willing to explore it a bit...


06-30-2010, 05:23 PM
I would like to ask for help on the Decompression algorithm in Java because in this first version the opening of the IMP book is really slow.

More information on LZSS encoding may be found at this link ( to the LZSS source code (it is the basis of my deimp.exe (!

It was written by Michael Dipperstein ( ( and his LZSS source code ( has been successfully adapted to decompress the text within a .imp file using a highly efficient bitstream library. His earlier versions of the source code did not use bit manipulations at perhaps a speed hit so perhaps the same holds true with your implementation.

:smack: Where's a java guru when you need them... :rubs lamp: :snicker:

07-02-2010, 04:06 PM
Sounds like a good use of the NDK?

To recap, the NDK is a companion to the SDK that provides tools to generate and embed native ARM machine code within your application packages. This native code has the same restrictions as the VM code, but can execute certain operations much more rapidly. This is useful if you're doing heavy computations, digital processing, or even porting existing code bases written in C or C++.

07-06-2010, 02:54 AM
Thank you shakey,

I will look into it this week and post a new release on codeplex. I did speed up the open book process to only read the book properties onces and save it to a catalog file so when trying to open another book on the sdcard it will not re-parse the books it has already listed.


07-10-2010, 04:47 PM
With the suggestion of using the NDK for android on the file. I have produced a new version for download. Please check out the for the new download.

I plan to add to the program with opening the last book and last page viewed on startup. I also plan to make small changes to the book text and gestures.