关于 FBReader
FBReader 是很优秀的跨平台电子书阅读器,它原为 Sharp Zaurus 而开发,后来可在 Nokia 770/N800、Motorola EZX系列、Maemo、Linux、Windows 、android等上面运行(iOS上也有移植,但是部分代码还没放出貌似)。FBReader 支持 fb2、HTML、CHM、plucker、Palmdoc、zTxt、TCR、RTF、OEB、OpenReader、Non-DRM’ed mobipocket、Plain text 等广泛的格式。
FBReader插件系统
FBReader之所以能在各平台工作,是因为它为这些平台提供了各自的ui插件,比如linux桌面下可以用gtk或qt,embeded linux下用qt,mac下用cocoa等。 FBReader的核心是ZLibrary,ZLibrary又由core, text, ui三部分组成。core提供了一些和平台无关的接口,从基本的文件系统、xml、network到gui等。当然也有些平台相关的代码比如加载插件的方法等。ui则根据不同的平台实现了core中的一些接口,主要是gui部分。text没仔细看,应该是和文档处理相关的。FBReader的上层代码在fbreader/src,也没仔细看,应该就是具体功能的实现。
笔者按照FBReader的结构写了一个demo,在这里与大家分享下,一起学习插件系统思想。附件中是源代码,因为demo提供了一个基于qt的gui插件,为了方便编译,采用qmake来编译。代