有关FBReader源码的分析,网络上已经有一位叫作“谋哥”的大神写过(你们能够到这个地址里面去下载相关的PDF文件)。个人这篇分析是在“谋哥”分析的基础上,以FBReader的启动流程为主线,对源码的细节处进行了更加详细的分析html
按照个人设想,把我以为把FBReader源码中有必要详细分析的部分所有都写完的话,大约会有二十章左右,仍是一个挺大的工程。我会不断更新序言的部分,把已经完成的章节的概要都在这里列出来,以便你们在阅读每一个章节以前能够对整个分析的流程有一个大体的了解。数组
本章介绍了程序如何在创建了一个负责在后台读取epub文件的子线程后,再用主线程控制一个进度条(ProgressBar)在屏幕上显示与消失。
本章涉及的核心类是UIUtil类。网络
本章介绍了程序图和对assets文件夹下存储的资源文件进行解析,获得要显示在进度条(ProgressBar)上的文字。
本章涉及的核心类是三个读取xml文件的三个核心类ZMLZMLProcessor、ZLXMLParser、ZLXMLReader以及ZLTreeResource类app
本章介绍了程序如何获取包括文件路径在内等的书籍信息,为解析书籍所在的epub的文件做准备。
本章涉及的核心类包括FBReaderApp类、SQLiteBooksDatabase类、Book类、BooksDatabase类、FileInfoSet类spa
本章介绍了epub文件内部的组成,以及内部各个部分各自的做用。.net
本章介绍了程序是如何将epub文件内部指定的文件解压成能够解析的字节流。
本章涉及的核心类是ZLZipEntryFile类、LocalFileHeader类、ZipInputStream类、DeflatingDecompressor类线程
本章介绍了程序解析container文件与.opf文件的详细流程
本章涉及的核心类是涉及xml文件解析流程的ZMLZMLProcessor类、ZLXMLParser类、ZLXMLReader类以及与涉及解压流程的ZLZipEntryFile类、LocalFileHeader类xml
本章介绍了程序如何利用ZLTextPlainModel类分别来处理.xhtml文件中的文本信息与标签信息
本章涉及的核心类是ZLTextPlainModel类、ZLTextWritablePlainModel类、CachedCharStorage类、XHTMLTagParagraphAction类htm
本章将介绍在CachedCharStorage类中的char数组定位指定段落的详细流程
本章涉及的核心类是Processor类、EntryIteratorImpl类blog
本章中将介绍将通过“解析”与“定位”流程以后获得的数据显示到屏幕上的详细流程
本章涉及的核心方法是:ZLTextView类中的preparePaintInfo方法、prepareTextLine方法、drawTextLine方法
本章中将介绍处理样式的流程。样式处理的流程包含两个部分:建立样式、应用样式。 本章涉及的核心方法是TextStyleReader类中的startElementHandler方法以及ZLTextViewBase类中的resetTextStyle方法与applyControl方法