基于FBReader的andriod电子书模板

由于之前写了篇在线生成android应用程序初探(以在线生成EPUB电子书为例)的文章,其中涉及到了生成epub格式的文件以及生成apk阅读器。之前没有对FBReader源码深入研究,每次自动生成都要拷贝200多M的源码,导致生成时间比较长。后来朋友说能不能生成单独的apk电子书文件,而不是阅读器。好吧,作为好兄弟,只好免费做苦力了。后来基于FBReader改了一个电子书的模板,先上截图:

附上源码地址:http://download.csdn.net/detail/peter2000cn/6545297

1. 自定义启动程序图标

2. 图书详细信息,支持图片显示

3. 书籍内容可以选择、拷贝、分享、添加到书签

4. 显示图书章节

5. 全书搜索功能

6. 多种翻页效果

7. 夜间阅读模式

8. 快速翻看功能

9. 屏幕方向设置

10. 丰富的自定义设置


在网上找了些独立的电子书模板,源文件少的可怜,就找到了一个,作者很仗义,见到有人在淘宝上拿这个模板卖钱,果断的把源代码贡献出来了,很是有开源大侠的精神。但是该电子书模板美中不足的是功能略显单薄,比如搜索、动态翻页效果、其他的一些自定义效果等等。

要说功能齐全,还是电子书阅读器最全,网上也有不少的阅读器下载,下载了几个,比如企鹅阅读,还有另外两个阅读器,界面还不错,功能也挺多,但是性能让人堪忧,我用的是Galaxy S4, 图书翻页的时候比较卡,关键是,这阅读器没有源码。

哎,找来找去,不是功能稀少就是性能不好,算了,还是用FBReader改吧,该阅读器功能强大,性能很好,唯一不好的是,代码量有点大,看的费劲。

搭建过程中,最费时的就是要在本地编译一些C++文件了,因为FBReader有些功能(压缩/解压缩,断行,读取电子书内容)是通过这些C++文件来操作的。本来以为源码里面的format plugin都提供的,结果。。。哎!

搭建FBReader环境的文章,上网搜的,挺全活,半个小时搞定。然后看源码,不知不觉两天过去了。。。。。。

源码大概过了一遍,决定开始对FBReader做减肥整形手术。

我的需求很简单,将FBReader改造成单个的电子书文件,以后只用替换书籍文件,就能生成另外一本新的电子书。所以分为下面几个步骤进行:

1. 只用支持一种格式的电子书即可,除去其他格式支持。下表是FBReader所能支持的格式。在众多的格式中,因为需要分章节,列出书籍信息,以及显示图片等, 所以最后选择了支持epub格式。

Format
ePub
ePub 3
fb2
pdf
djvu
html
plain text
Mobipocket
rtf, doc (Microsoft Word)
plucker
chm
.lit

2. 定义epub电子书的位置,放在assets目录下。最开始放在assets目录下读取不出来书本信息,如果在启动的时候把assets信息拷贝到sd卡里的话,读取sd卡的书籍内容就没有问题。无奈,跟踪了一下,发现FBReader读取书籍的方式是采用的多种混合模式。无奈,只好一点点改了。

3. 为FBReader减肥。FBReader提供的源码20多M,编译成apk体积近4M,作为一个单独的电子书,未免有点庞大,需要把不需要的功能都删除掉。最开始没有仔细看源码,纯靠感觉删除,结果导致FBReader罢工了,无奈,在看源码的过程中一点一点删了。除了一些不需要的.java文件外,体积最大的要算是在搭建环境阶段编译的/libs/下的so文件了。由于java源码里面提供了对epub和xhtml格式的读取,所以,稍微修改一些代码,就能把这个文件夹删除了。

减肥之后的FBReader源码体积从下载的20多M直接削减到不到2M,生成的电子书(图书文件200K)体积700k左右,这个大小可以接受,个人感觉还应该还能再减少50k左右。这样一来,自动编译生成一个电子书之需要不到10秒的时间了大笑,看来付出还是有回报的。

下面是利用FBReader做的个简单的电子书,顺便附上这个demo的下载地址:


DEMO APK 下载

晚点再把这个功能加到自动生成的工具里,有需要生成电子书的联系!




主要电子书格式:ePub(包括ePub3的主要功能),PDF,Kindle azw3(mobipocket),fb2(.zip)。其他支持的格式:漫画书(CBR / CBZ),RTF,doc(MS Word),html,plain文本。 升级到这个流行的电子书阅读器的高级版。 此高级版本提供的功能: * Google / Yandex翻译集成 *内置支持PDF和漫画书格式 *缩略图库视图 为了帮助阅读外语,请使用FBReader的字典集成来查找单词或短语。您可以从众多外部词典中进行选择。 在FBReader Premium中,您可以使用集成的Google或Yandex翻译器在不离开应用程序的情况下翻译句子。(警告:此功能的每日使用可能会受到限制。) FBReader支持使用基于Google Drive™的云服务FBReader图书网络(https://books.fbreader.org/)同步您的图书馆和/或阅读位置。默认情况下禁用同步; 要启用和配置它,请使用首选项对话框。 FBReader快速且高度可定制 - 它可以使用外部TrueType / OpenType字体和自定义背景,可以在阅读时调整屏幕亮度(沿着左侧屏幕边缘向上/向下滑动手指),并且可以选择不同的日/夜配色方案。 该阅读器还包括一个浏览器/下载器,用于访问不同的网络电子书目录和商店。包括几个流行的英语,法语,俄语,中文和波兰语库。也支持自定义OPDS目录。 或者,您可以手动下载书籍并将其保存在/ sdcard / Books中的设备上。 此外,该阅读器本地化为34种语言,包括24种语言的连字模式。该应用程序是开源(GPL)。 什么是新的 内置文字转语音模块 文件选择器 新升商店目录 重大内部变化
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值