有關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方法