内容简介:项目官网: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 命令行库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Coding the Matrix
Philip N. Klein / Newtonian Press / 2013-7-26 / $35.00
An engaging introduction to vectors and matrices and the algorithms that operate on them, intended for the student who knows how to program. Mathematical concepts and computational problems are motiva......一起来看看 《Coding the Matrix》 这本书的介绍吧!