内容简介:项目官网:fbreader.org/androidFBReader是一个开源电子书阅读器,如今已经支持很多设备。不仅有PC版,支持的操作系统有GNU/Linux,MicrosoftWindows,也支持移动终端设备,比如NokiaInternetTablets。早在2008年4月13日,就已经有Android版本,即大家熟知的FBReaderJ。具有以下特性:
项目官网:fbreader.org/android
FBReader是一个开源电子书阅读器,如今已经支持很多设备。不仅有PC版,支持的操作系统有GNU/Linux,MicrosoftWindows,也支持移动终端设备,比如NokiaInternetTablets。早在2008年4月13日,就已经有Android版本,即大家熟知的FBReaderJ。
具有以下特性:
- 支持电子书格式:ePub、kindle (mobipocket)、fb2、rtf、html、microsoft doc、纯文本、PDF(需要PDF插件)、DJVU(需要DjVU插件)、CBR和CBZ漫画(需要comic插件)
- 可拓展性:提供纲领性的API,可以通过第三方插件获得一些额外的特性。例如比较受欢迎的插件Text-to-Speech
- 支持直接阅读zip文件
- 提供直接访问许多网络电子书图书馆和商店
- 支持自定义OPDS目录的添加
- 与一些流行的字典如ColorDict, SlovoEd, Fora等整合
- 可以使用外部TrueType/OpenType字体
- 29种语言的本地化
- 包含16种语言的断字模式
- 按标题、作者、系列等组织用户图书库
- 书收集、阅读位置、书签等可同步在基于Google Drive™的FBReader云服务
一、导入项目并运行
项目地址
导入
改项目是eclipse编写的,所以第一步,把这个项目变成AS项目并导入AS 创建aidl目录,将FBReader项目中使用的aidl文件放于此 在此一定切记不要修改项目包名,否则将是一场灾难!!!
运行
编译项目so文件 如果将FB作为依赖的话,还需要修改FBReaderIntents中包名常量DEFAULT_PACKAGE为自己应用的包名
二、项目源码结构
源码大体结构
FBReader的源码文件结构大致如下:
文件夹 | 说明 |
---|---|
src | JAVA源代码 |
asset | 这里有默认的那本书,还有背景图片等 |
docs | 里面有一PDF,介绍如何安装Cygwin |
icons | 一些图标,比如menu,文字搜索的小图标 |
jni | c/c++实现的库文件,内容比较多 |
libs | 生成的so文件在这里 |
ojb | .a文件 |
obsolete | 废弃 |
res | 资源 |
scripts | 用处不明 |
third-party | 三方引用 |
AndroidManiffest.xml | 清单文件 |
针对于源代码各包功能浅析
包名 | 说明 |
---|---|
com/paragon/dictionary/fbreader | 字典查询 |
org.amse.ys.zip | 这个包是解压用,epub本身就是一个压缩文件,所以要解压缩 |
org.fbreader.util | 比较排序 |
org.geometerplus | 核心代码包 |
org.vimgadgets.linebreak | 断出一个字,例如“你好,再见!”,断字结果为“你”“好”“再”“见” |
核心代码包功能之org.geometerplus.android
包名 | 说明 |
---|---|
org.geometerplus.android.fbreader.api | 这个包是FBReader通过AIDL实现的API接口,用于安装插件等 |
org.geometerplus.android.fbreader.bookmark | FB自带书签页和编辑页及编辑 工具 类 |
org.geometerplus.android.fbreader.config | 各种FB相关配置,并定义了对应service和SQLite |
org.geometerplus.android.fbreader.convers | 图书封面相关缓存 |
org.geometerplus.android.fbreader.crash | 图书目录相关的修复 |
org.geometerplus.android.fbreader.dict | 词典相关工具,包含打开词典Activity的定义 |
org.geometerplus.android.fbreader.error | 图书阅读中出错时打开的Activity |
org.geometerplus.android.fbreader.formatPlugin | 根据特定插件,生成相关Intent,可用于安装插件 |
org.geometerplus.android.fbreader.httpd | 定义了dataservice和DataServer(提供获取封面和video服务) |
org.geometerplus.android.fbreader.image | 只有一个ImageViewActivity,长按显示图片 |
org.geometerplus.android.fbreader.library | 主要是初始化数据库books.db,还有图书信息的activity |
org.geometerplus.android.fbreader.libraryService | 定义了libraryservice服务,进行书籍相关管理以及根据文件路径或特定id等获取、查询到真实的book |
org.geometerplus.android.fbreader.network | 这里是FBReader网络连接相关的,比如下载书籍,书仓授权,OPDS相关 |
org.geometerplus.android.fbreader.preferences | 配置信息相关的,比如背景,文字大小,翻页动画速度,以及颜色等 |
org.geometerplus.android.fbreader.sync | 书签等的同步相关,定义了SyncService |
org.geometerplus.android.fbreader.sync | TipsActivity |
org.geometerplus.android.fbreader.tree | TreeActivity和TreeAdapter,定义树形结构Activity、Adapter的基类 |
org.geometerplus.android.fbreader.util | 图片同步和简单dialog的activity |
org.geometerplus.android.util | 包工具类,数据库,还有更新UI、文件工具等 |
该包中的FBReader即为程序的主Actitiy,也是阅读的activity。其他类,诸如已Action为结尾的是各种FBReader操作对应的执行类,其核心在于run方法内部定义的操作行为。还有一些类似popup、notifier等也都是具体的一些操作对应。
核心代码包功能之org.geometerplus.fbreader
包名 | 说明 |
---|---|
org.geometerplus.fbreader.book | 书籍、书签等相关model,数据库,工具类 |
org.geometerplus.fbreader.bookmodel | FBReader数据,会生成BookModel,里面有 Java 的Model和本地返回的Model |
org.geometerplus.fbreader.fbreader | 主要是图书显示的FBView,还有一些选择文字的Action,翻页的Action |
org.geometerplus.fbreader.formats | 插件入口,FBReader把epub解析,txt解析等当做一个个插件 |
org.geometerplus.fbreader.library | 此包中有图书的作者类,图书信息类,文件类,以及路径生成的树结构 |
org.geometerplus.fbreader.network | 网络相关 |
org.geometerplus.fbreader.sort | 排序 |
org.geometerplus.fbreader.tips | 网络相关行为提示 |
org.geometerplus.fbreader.tree | 自定义的书结构,FBTree |
org.geometerplus.fbreader.util | 根据传入的起始位置,获取文字片段 |
该包中另包含一个Paths类,其内容是整个FBReader项目的路径相关。
核心代码包功能之org.geometerplus.zlibrary.core
包名 | 说明 |
---|---|
org.geometerplus.zlibrary.core.application | 并不是Android里的Application,而是作者自定义的管理应用 |
org.geometerplus.zlibrary.core.constants | 各种命名空间,其实就是各种url链接 |
org.geometerplus.zlibrary.core.drm | 加密相关 |
org.geometerplus.zlibrary.core.encodings | 用于读取encoding/Encodings.xml内的编码 |
org.geometerplus.zlibrary.core.filesystem | 里有各种File类,比如压缩File,资源File,本地File等 |
org.geometerplus.zlibrary.core.filetypes | 文件类型 |
org.geometerplus.zlibrary.core.fonts | 字体信息 |
org.geometerplus.zlibrary.core.image | 图片加载,图片处理相关的包 |
org.geometerplus.zlibrary.core.language | 编码检测包 |
org.geometerplus.zlibrary.core.library | ZLibrary获取FBReader版本,系统信息,DPI,调节屏幕亮度等 |
org.geometerplus.zlibrary.core.money | Money model和exception |
org.geometerplus.zlibrary.core.network | Cookie数据库建立,网络请求,网络管理相关的包 |
org.geometerplus.zlibrary.core.options | FBReader自定义的数据类型,比如ZLBoolean3Option,ZLColorOption |
org.geometerplus.zlibrary.core.resources | 本地资源文件 |
org.geometerplus.zlibrary.core.tree | ZLTree树结构数据基类,图书目录数据为此类子类 |
org.geometerplus.zlibrary.core.util | 各种工具类 |
org.geometerplus.zlibrary.core.view | 自定义的view类,是阅读界面显示的最高抽象类,以及事件监听,处理 |
org.geometerplus.zlibrary.core.xml | 解析xml |
核心代码包功能之org.geometerplus.zlibrary.text
包名 | 说明 |
---|---|
org.geometerplus.zlibrary.text.hyphenation | 根据断字来判断是哪种语言 |
org.geometerplus.zlibrary.text.model | 一个抽象类包,有对文字的处理,以及对段落的处理,保存文字到缓存 |
org.geometerplus.zlibrary.text.view | 文字被结构化,文字块,一行文字,文字段,一页,都在此包下处理,以及显示的view |
以上所述就是小编给大家介绍的《开源电子书项目FBReader初探(一)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 开源电子书项目FBReader初探(二)
- 开源电子书项目FBReader初探(三)
- 开源电子书项目FBReader初探(四)
- 开源电子书项目FBReader初探(五)
- 开源电子书项目FBReader初探(六)
- 初探 Google 开源的 Python 命令行库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
你不知道的JavaScript(上卷)
[美] Kyle Simpson / 赵望野、梁杰 / 人民邮电出版社 / 2015-4 / 49.00元
JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发者无需理解语言内部的原理,就能编写出功能全面的程序;就像收音机一样,你无需理解里面的管子和线圈都是做什么用的,只要会操作收音机上的按键,就可以收听你喜欢的节目。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发者,如果没有认真学习也无......一起来看看 《你不知道的JavaScript(上卷)》 这本书的介绍吧!