制作Jar电子书程序evader

By | 2009-04-27

声明:我曾经写过一个制作Jar电子书的程序,所有支持JavaME MIDI2.0的手机都可以安装使用这种格式的电子书。之前在我的blogger上Post了相应的文档,包括一开始的制作文档和之后的更新文档。由于我的博客搬家,所以这里把和evader相关的文章都放在这里,按照时间从后往前的顺序排列。

另:evader是我给这个制作Jar电子书的软件起的名字。

2009年4月27日 星期一

evader 0.1.6版本发布

嗯,正式的版本也该发布了。
evader即eBookGenerator改名之后的软件,eBookGenerator从0.1.6版本起,正式改名为evader。如果需要了解这款软件除了在这里提到的性能以外的详细性能,请参看下面《一个制作Jar格式电子书的小程序》。
在这个版本里,我做了以下的工作:

  1. 改名。将eBookGenerator这个不太贴切的名字改成了evader,这个名字的中文含义是“逃避”,为什么起这个名字呢?是因为我觉得读书的时候,就如同逃离了整个现实世界,从而沉浸在书中的世界一样,这是采用这个名字的一个原因。其次,这个名字是ender,E-Book,maker等单词的排列组合,那个v,是我一时的灵感,具体代表什么,我也不太清楚,只是觉得这个字母很漂亮,这是采用这个名字的第二个原因。
  2. 加入页面滚动选项。按手机的 * 键可以使页面开始自动向下滚动,按 # 键停止滚动,在设置页面里可以设置滚动速度。
  3. 加入长时间背景灯高亮选项。在设置页面里可以打开长时间背景灯高亮功能。这个功能需要手机本身支持NokiaUI,目前市场上所有的Nokia手机和大部分的Song Ericsson手机都支持。其他的手机需要根据具体的使用情况来判断。当然,不支持的手机不会有任何的Bug,完全正常使用。这里需要再做一点说明,在设置了长时间背景灯高亮选项之后,会立即生效。在取消掉长时间背景灯高亮选项之后,需要先关闭手机软件,然后再打开,这样才会生效。
  4. 增加设置密码选项。在设置页面里可以设置看书的密码。
  5. 支持多国语言。根据手机的语言来判断软件使用的语言。目前仅支持简体中文和英文。
  6. 关于(About)里面增加了一些显示信息。
  7. 增加了帮助和版权信息。
  8. 改进了搜索功能。支持搜索时搜索下一处的连续搜索功能。
  9. 支持不同的书生成不同的图标。每个图标上有书名的前两个字。
  10. 完善了Readme,虽然同样是只有中文的Readme。
  11. 加入了License。我本人保留对这款软件所有的权利。如果你需要重新分发这款软件,必须附带上我的license文件。
  12. 提升了MIDP支持的版本。目前最低支持MIDP 2.0和CLDC 1.0。之后有空我会发一个支持MIDP 1.0 和 CLDC 1.0的版本。等之后再说吧。

这些功能使整个软件更加完善,也更加便于使用。
不足之处:

  1. 没有给软件想出一个好听的中文名字。我也不打算再想了,就叫evader好了。
  2. 搜索速度没有改进。这是因为搜索速度的改进和看书上下翻页的速度(特别是向上翻页的速度)是矛盾的,是非常矛盾的,而且我也不太想改进了,目前能够准确的搜索到需要的字符串,而且有很方便的搜索下一处功能,搜索这个东西本身在手机上就没有优势,只要能搜索到需要的字符串就可以了,我经过测试,在我的Nokia 6500s上,一百二十万字的小说,搜索最后一个字需要的时间大约是20秒左右。这对我来说,是可以忍受的。

新的软件可以在这里下载。版本号是0.1.6。zip文件里有一个jar文件,一个Readme文件,一个license文件,jar文件的名字叫做evaderGenerator.rj.ip.jar。运行时在命令行下输入:
java -jar evaderGenerator.rj.ip.jar [config file name]
使用说明可以参看Readme文件或者参看下面《一个制作Jar格式电子书的小程序》。

 

2009年4月13日 星期一

eBookGenerator改进计划

【2009 4 13】计划将eBookGenerator改进至0.1.6版本。

改进功能:

  1. 能够根据不同的电子书生成不同的图标。(目前打算在这个图标的基础上进行修改,修改之后的图标采用LGPL协议发布)。
  2. 在“关于”里加入版本号,文本字符数信息(总字符数,已读字符数)。
  3. 给自己的软件规定使用协议。
  4. 完善Readme。
  5. 给软件起一个好听容易记住的中文名字。
  6. 加入长时间高亮的设置选项,用户可以选择是否长时间高亮。
  7. 增加设置密码选项,用户可以设置阅读电子书时是否需要密码。
  8. 支持多国语言,目前先实现支持中文和英文,如果需要支持其他语言,编写相应的local文件加入程序jar包里即可。定义local文件格式并发布。
  9. 加入自动翻页选项,用户可以设置是否自动翻页,以及自动翻页的时间间隔。
  10. 希望能改进搜索,缩短搜索时间(因为这个功能与支持大文件和灵活翻页冲突,所以不一定能够实现)。

完成的优先级根据编号从小到大而逐渐降低,后两项不一定能够实现。这并不是因为技术原因,而是因为我的设计宗旨是,可以不需要的功能就不需要。

预计2周后发布eBookGenerator 0.1.6版本。

 

2009年3月25日 星期三

一个制作Jar格式电子书的小程序

[版本更新至0.1.6,增加了很多新的实用功能,2009 04 27]
具体更新说明参看上面《evader 0.1.6版本发布》,本文已经加上了新的版本下载地址。
[
修改了一个愚蠢的错误,所有人都必须重新下载 2009 03 29]
因为自己比较喜欢看书,所以我经常会下载一些电子书放在手机上来看。从网上下载的电子书,大多是txt、html、chm等格式的,而我比较偏好于txt格式,因为它能够方便的制作成手机上的电子书。
比较让我遗憾的是,目前Jar格式的手机电子书制作软件我觉得都不合自己胃口,首先,这类制作软件的大部分对txt文件大小有限制,如果txt文件过大,放在手机上就有可能有OutOfMemory的错误,也就是手机的堆栈不够用;其次,在阅读的时候,大部分软件有向下翻页还比较迅速,但向上翻页的时候就非常慢,甚至出错死机的情况;再次,这类软件大部分都是windows下运行的程序,而我需要一个简单的,夸平台的程序就可以了,命令行的最好。因为上面的原因,我就花了一点时间,自己写了一个制作电子书的小软件。
这个软件为了达到夸平台的目的,是用java写成的,而且是命令行格式的,软件是用txt文件制作能够在手机上读取的Jar格式的电子书软件,这个软件主要为了解决上面提出的三个问题:

  1. 可以支持足够大的txt文件,只要手机能够存放下的文件,那么就能够读取这么大的文件,而且性能上不会有任何损失。
  2. 能够快速的定位到txt文件的任何位置,无论是向上翻页,向下翻页,还是跳转,都是非常灵活自如的。
  3. 跨平台支持,简单易用的命令行格式。

针对这三个要求,我用了3天左右完成了这个软件,修改Bug又花了2天时间,我把它和说明文件上传到了我的大米盘里,但是大米盘貌似被盾了,所以我选用了91box,新的0.1.6版在2009年4月27日发布了,这里是下载文件,新版本的改进参看上面《evader 0.1.6版本发布》。
我给这个软件起了个很土的名字,叫做eBookGenerator,不知道有没有人已经用了这个名字,如果没有人用,那么就叫这个了,别人再写的程序也不要再叫这个了啊,虽然我不准备为它付版权费。。。
在这里,我说明一下这个软件的使用方法:
首先要求你的系统里安装有java,可以从这里下载:http://www.java.com ,安装。
程序的使用:
windows用户在 命令提示符(cmd) 下输入,其他系统用户在各自的终端下输入:
java -jar eBookGenerator.rj.p.jar [ConfigFile]
一个命令行的小程序,有且只有一个参数,那就是配置文件。
所以,讲解如何使用这个程序,其实是讲解配置文件的格式。
配置文件的格式:
配置文件使用换行回车来作为分隔符,采用GBK编码方式,大家主意了,这个是很重要的,绝对不能有任何问题。
每一行代表一个参数,下面是参数的列表,括号里面是对它们的解释:

  1. 书籍名称(也就是你想要看的txt的名称)
  2. 作者(txt的作者)
  3. 创建者(应该就是你了)
  4. 联系方式(如果你想让看书的人联系谁,那么就写在这里,一般是Email啦)
  5. 说明(如果你有任何想说的话,都可以写在这,注意,不能有换行哦)
  6. 书籍章节数目(我把一个txt文件定义为一个章节,因为大部分书有很多章节,这些章节在不同的txt文件里,所以,你需要几个txt文件,就写几个,接下来是章节列表)
  7. 章节 1 的名称
  8. 章节 1 在硬盘上的位置(比如说C:\\我的小书第一章.txt)
  9. 章节 2 的名称
  10. 章节 2 在硬盘上的位置
  11. ……
  12. 依次类推……
  13. ……
  14. txt文件的编码方式(注意,所有txt文件都要统一编码哦,比如说GBK编码,如果是windows系统,用记事本打开没有问题的话,一般都是GBK啦)
  15. 希望在电子书上的编码方式(不同的编码方式,占用的存储空间不同,中文书用GBK最省空间,英文书当然是ISO-8858-1啦,也就是我们常说的Latin-1编码。中文书的话,这里一般都用GBK吧,繁体用Big5啦。)
  16. 一个比较重要的数(这个数是一个和看书的性能相关的数,必须大于0,一般来说,差一点的手机用128,一般的用256,好一点的用512,我不推荐大于512以上的数,越小的数,在手机上读起来越快,但是生成电子书的时候会越慢,所以,这其实是一个综合考虑的数。大家看着用啦,我的Nokia 6500s 上用256就飕飕的快,呵呵。)

好了,参数就这么多,大家应该很明白了,把你所要看书的参数写在一个文件里,用记事本就可以编辑,然后保存成GBK编码,windows用记事本的话,在编码那里选择ANSI就对啦。

下面是一个配置文件的例子,每一个配置项占一行,文件使用GBK编码,文件名叫config.txt。
生成电子书使用:
java -jar eBookGenerator.rj.p.jar config.txt
就会在当前文件夹下生成 一个.jar和一个.jad文件,.jad文件是描述程序用的。具体如何安装,就要看你的手机型号了,像我的就是把.jar文件发送到手机上就可以了。
config.txt文件:

极品家丁
禹岩
Ender
thelastender@gmail.com
架空历史小说。
3
极品家丁 第一部分
/Users/ender/JavaME/极品家丁.0.txt
极品家丁 第二部分
/Users/ender/JavaME/极品家丁.1.txt
极品家丁 第三部分
/Users/ender/JavaME/极品家丁.2.txt
GBK
GBK
256
那么我再来介绍一下这个软件吧,它有如下特性:

  1. 支持绝大多数手机(应该是手机支持Java,它就支持这部手机)。
  2. 快速阅读,无论如何翻页,跳转,都能够以很快的速度读取所要的文字。
  3. 支持跳转功能。
  4. 退出保存上次阅读章节和位置,并且每一章的阅读位置都会被保存,方便再次读取。
  5. 支持书签功能,可以加入书签,修改书签,跳转到书签所在位置。
  6. 支持文字搜索功能,可以搜索指定区间内的文字,支持跳转到搜索结果处。
  7. 很好的文本格式控制,能够正确的显示空格,回车,换行,提升阅读体验。
  8. 可以设置字体大小,颜色,背景色等等。
  9. 进度条实时指示文章阅读位置。
  10. 当然,最重要的,它完全的解决了上面我提出的3个问题,特别是支持大文件哦。

当然,很多人可能会说它怎么如此简单,但是我需要的恰恰是这样一个简单的软件,太复杂的功能,我不需要而且我觉得没有必要。
下面的非常重要哦:
因为是刚刚写成的软件,测试还很不充分,所以我希望每一个喜欢这个软件的人,能够提出自己的意见,特别是那些发现了bug的人,我很需要很需要你们的支持,请务必告诉我你所发现的bug,能帮我把它改进的更好。大家可以发邮件给我thelastender@gmail.com,标题里注明和eBookGenerator相关就可以了: ) 。
那么,下面上几张图吧:)

打开软件:

jar_evader_1

点击阅读,进入章节列表:

jar_evader_2

点击阅读,开始读书:

jar_evader_3

进度条和选项菜单:

jar_evader_4

关于:

jar_evader_5

具体的其他功能就需要各位使用着自己去体会了:)
哦,对了,这里需要说明一下,这个程序的图标是我从网上找的,不知道是谁做的,如果做的人看到了,我在这里想要说一声,不好意思,你的图标做很好看(虽然极有可能他看不懂这行文字。。。。),或者,有哪位能给这个软件做个图标呢?谢谢啦:)
我会在博客上更新和eBookGenerator相关的信息,希望关注的人有空看看就可以了。
注:大家如果不懂txt是什么,我在这里说明一下:txt就是纯文本文件格式,其他的我也不知道了。。。。。

发表评论

电子邮件地址不会被公开。 必填项已用*标注