基于FBReader的andriod电子书模板

FBReader-解压后直接运行版(AndroidStudio)1 由于最大只能上传60M,所以我分了两次上传。 立即下载

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

附上源码地址:http://download.youkuaiyun.com/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 下载

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




fbreader编译版 fbreader编译版,可以直接运行,有做阅读的朋友可以参考一下! 立即下载

相关推荐

FBReader 一个超级好的安卓阅读器

FBReader 一个超级好的安卓阅读器

DBFReader 关于 GB2312 乱码

首先我修改了DBFReader 支持中文了,使用的是: reader.setCharactersetName("GB2312");但是测试的时候发现 一部分文字可以读出来,一部分还是乱码如:陈?立 然后修改"reader.setCharactersetName("GB2312");"为"reader.setCharactersetName("GBK");" 编码正常 这里介绍下GBK

u010359099的博客 2203

FBReader-1.9.6-已编译

已编译好的fbreader功能,用eclipse打开即可。配合文章介绍使用。

FileReader读取文件出现乱码的解决办法

  之前用FileReader读取文件时输出控制台发现出现了中文乱码,考虑到应该是编码格式不一致的问题导致的,这里在本地创建的一个txt文本文件,默认保存的文件编码格式是ANSI,那么FileReader在读取文件的编码格式一定是和文件编码格式不一致导出出现乱码的,首先想到的是指定一下FileReader读取文件的编码格式,但是看了一下FileReader的源码见下图       ...

梦岚如雪 2万+

android版电子书开发模板升级版

看网上有很多都想开发android版电子书,但是又苦于找不到模板,特别是对于初学者更是不知从何下手,本资源中包含了电子书的开发模板,为了方便大家下载,0资源分无偿分享给大家,资源中还有一个成型的APK,希望对你有所帮助,如有疑问,可以通过APK中的反馈功能提交给我!

FBReaderJ_2.0 aplha源代码

FBReaderJ_2.0 aplha源代码,特别好用,简单修改后就可以直接编译

BufferedReader 读取中文乱码

InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\File_sum\\新建文本文档.txt"),"GBK");//使用UTF-8还是乱码 使用GBK中文显示就正常了 BufferedReader br= new BufferedReader(isr); String s = null; StringBuilder sBuilder = new Strin...

alolf的博客 711

FBReader Plugin Framework Demo

演示FBReader插件系统思想的一个简单的demo。

FBReader阅读器各源码作用和知识点分析

ZLLibrary包下的core子包提供了要使用的各个抽象类,如ZLApplication。 ZLAndroidApplication 本应用的Application 其实例化了三个类,分别做数据库,图片,library的操作,这些类并未使用,但我们可以使用它们。 数据库,首先创建或读取数据库,如果是新建则根据版本进行版本兼容,初始化增删改查的语句以供使用。(此处是通过构造方法的方式进行初始

u010733663的专栏 6174

FBReader_AS,1、安卓工作室FBReader2.5.10;2、FBReader发布:.zip

FBReader_AS,1、安卓工作室FBReader2.5.10;2、FBReader发布:.zip

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1740

Andriod电子书打包(APK)后,签名冲突的解决办法

之前写的两篇关于电子书自动生成的博客,基于FBReader的andriod电子书模板和在线生成android应用程序初探(以在线生成EPUB电子书为例),在打包过程中出现重复签名的问题,只需要将Manifest文件中的package设置成不同的包名即可,例如com.puma.ebook.book123abc。最后的包名称要以字母开头,用数字开头的话,会出现编译错误,记录在此,供查阅。<manife

老汪的技术人生 1057

ROS2与Gazebo协同实现多机器人避障仿真

本文详细介绍了如何利用ROS2与Gazebo协同搭建多机器人避障仿真环境。通过创建SDF机器人模型、编写多机器人启动文件以及集成基础避障算法,构建了一个低成本、高效率的虚拟测试平台,为AGV编队、机器人集群等项目的算法验证与迭代提供了完整解决方案。

weixin_29065659的博客 295

FBReader源码解析(开源项目目录包名解释)

FBReader源码解析(一) 项目包名解释 项目地址 : https://github.com/geometer/FBReaderJ -

u012814480的博客 1189

UWB定位进阶:如何利用DW1000的CIR数据做NLOS信号识别?

本文深入探讨了如何利用DW1000芯片的信道脉冲响应(CIR)数据进行非视距(NLOS)信号识别,以提升UWB定位精度。通过分析CIR数据的核心价值、预处理方法、特征提取技术以及机器学习模型构建,为研究人员和工程师提供了实用的解决方案,帮助克服室内定位中的NLOS挑战。

weixin_28729205的博客 474

使用trae自动生成前后端分离的web应用程序

使用ai自动生成前后端分离的web应用程序

一介书生 2527

FBReader中翻页方式相关源码分析

FBReader是一个电子书开源项目,关于它之前有人发过5篇pdf叙述项目框架,这里主要讲讲FBReaderJ的翻页方式。 翻页方式的配置在ScrollingPreferences中 public final ZLEnumOption AnimationOption = new ZLEnumOption("Scrolling", "Animation", ZLView.Animation

陆业聪 3081

【大二组培训】2017年电子设计大赛H题总结(软件部分)

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt im

HAIBARA的博客 3023

Android FBReader基础资料文档

前言   看了网上资料阅读器这块资料相对来说是比较少的,开源的阅读器更加不用说了,比较有名的当然是FBReader了,但是这个开源项目还是比较大的,用到的知识也比较多,比较旧,一个有四五年工作经验的人单枪匹马撸这个项目也会呕心沥血吧,更别说一两年的了。 FBReader资料 1、官网:https://github.com/geometer/FBReaderJ(需要自己打so包和整理); ...

u014769864的博客 7461

Autosar进阶专栏索引

Autosar进阶专栏索引

赞的博客 3540

uniapp - 详细实现移动端公众号 H5 网页授权登录流程及示例代码,申请测试公众号全流程及本地调试无需部署上线服务器就能直接调起微信登陆授权页面,手机移动端h5公众号页面利用微登录拿到用户数据!

uni-app,微信公众号,h5网页,uniapp网页端,手机端H5公众号页面,微信网页登陆,uniApp详细实现公众号的登录,微信授权第三方网站登录,流程及逻辑详细教程,OAuth2.0,公众号网页授权,微信网页授权通过code换取网页授权,redirect_url,参数错误,解决,报错,无法调起,如何申请测试公众号,微信公众平台测试号的申请与使用,获取用户openid手机号昵称头像,利用测试号实现本地调试微信登录授权,本地无法调试怎么办,测试公众号,在开发环境下怎么测试,用项目本地ip地址,微信公众号平

🏆 前端领域优质创作者 5063

FBReader打开txt优化方案,加入本地格式好后得数据写入和读取

///------------- 下面代码用于获取缓存的内容,就不用去本地文件获取内容了 ----by nil----------------- public boolean getTxtFromCache() { String md5Path=MD5Util.md5(tempModel.Book.File.getPath()+"/"+tempModel.Book.Fil

了悟生死大事 2109

飞牛fnNAS文件的超快检索

本文介绍了如何在NAS系统中部署fsearch文件搜索工具,以解决海量文件检索效率低下的问题。通过Docker容器部署ayound/file-search镜像,建立缓存和数据目录后,用户可通过8012端口访问fsearch界面。该工具支持快速关键字检索,速度媲美PC端的Everything,但需等待索引完成才能获得完整结果。虽然文件预览功能有待完善,但其高效的搜索性能值得推荐。文章还提及可通过zerotier实现远程访问,并提供了相关技术博客的参考链接。

dgnankai的专栏 1150

FBReader源码详细分析 序言

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34326429的博客 250

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

开源电子书项目FBReader初探(一)

FBReader简介和包功能浅析 简介 项目官网:fbreader.org/android FBReader是一个开源电子书阅读器,如今已经支持很多设备。不仅有PC版,支持的操作系统有GNU/Linux,MicrosoftWindows,也支持移动终端设备,比如NokiaInternetTablets。早在2008年4月13日,就已经有Android版本,即大家熟知的FBReaderJ。 具有以下...

weixin_34013044的博客 3434

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: android onNewIntent
下一篇: Andriod电子书打包(APK)后,签名冲突的解决办法
老汪
博客等级 码龄24年 20粉丝 16原创
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值