此小說閱讀器只追求兩項
- 極簡(無廣告,無添加)
- 豐富(內(nèi)容豐富,只有你想不到的,沒有它沒有的)
漫品客戶端 全站開源 開源地址:
https://github.com/AnyMarvel/ManPinAPP
歡迎start
app下載地址:
https://github.com/AnyMarvel/ManPinAPP/releases
或者使用應(yīng)用寶下載(或到各大應(yīng)用市場下載,目前支持 小米 華為 360 豆瓣 99助手等):
https://sj.qq.com/myapp/detail.htm?apkName=com.mp.android.apps
小說模塊簡介
APP本地小說僅支持txt格式捻脖,將小說按章節(jié)分割存入數(shù)據(jù)庫糠馆,在線小說來源是通過手機模擬小說網(wǎng)站的GET請求,獲取網(wǎng)站源碼绢要,根據(jù)不同網(wǎng)站來源進行數(shù)據(jù)解析映跟,獲取相應(yīng)數(shù)據(jù)存入數(shù)據(jù)庫顯示(已經(jīng)匹配了近30個網(wǎng)站)蓄拣,同時為了提升閱讀體驗,章節(jié)內(nèi)容做了二級緩存處理努隙。同時也增加了離線加載功能球恤。
免費小說閱讀器,主打精簡,UI精簡但不失優(yōu)雅荸镊,功能精簡但不失體驗咽斧,根據(jù)功能界面劃分為:
書架模塊:包含本地書籍堪置,以及網(wǎng)絡(luò)在線書籍。
書城:書城分為導(dǎo)航欄,推薦頁及主頁三部分數(shù)據(jù),為保證APP的穩(wěn)定性,這三部分都為動態(tài)加載模塊,獲取網(wǎng)絡(luò)鏈接可用狀態(tài)則展示當前網(wǎng)站鏈接內(nèi)容,獲取失敗則更換,能夠最大限度的保證在線閱讀的可用性.最后以一個網(wǎng)站為數(shù)據(jù)來源张惹,解析其主頁數(shù)據(jù)舀锨,篩選以及封裝數(shù)據(jù)以Android原生界面的形式展現(xiàn)出來。
網(wǎng)絡(luò)小說離線功能:通過提前設(shè)置任務(wù)隊列宛逗,通過Service后臺獲取章節(jié)數(shù)據(jù)坎匿。
本地小說:將手機本地的txt小說導(dǎo)入應(yīng)用。
小說閱讀模塊拧额。
本APP所有數(shù)據(jù)來源于第三方小說網(wǎng)站碑诉,不具備自身后臺,通過JSoup對xml進行數(shù)據(jù)解析侥锦,來完成用戶對小說內(nèi)容的獲取进栽。
開發(fā)難點
一. 本地超大txt小說數(shù)據(jù)處理
手機直接讀取超大文本時,不做好優(yōu)化是很可能OOM的恭垦。
本地小說的處理方式是:
可查看ImportBookModelImpl類,查看具體處理方式
二. 小說閱讀模塊
小說閱讀頁面基于自定義ViewGroup實現(xiàn)快毛,最多只有3個頁面,分別是當前頁番挺,上一頁唠帝,下一頁。當滑動到下一頁時玄柏,上一頁移除襟衰,當前頁指向下一頁,同時再新增下一頁粪摘。保證UI布局數(shù)量不會越來越多瀑晒,杜絕因為View過多而產(chǎn)生的OOM。
同時閱讀時徘意,章節(jié)內(nèi)容數(shù)據(jù)優(yōu)先從內(nèi)存讀取苔悦,隨后是數(shù)據(jù)庫,都沒有的話椎咧,再通過章節(jié)的網(wǎng)絡(luò)地址去請求新的章節(jié)再解析最后返回數(shù)據(jù)玖详,存入緩存以及數(shù)據(jù)庫中。
三. 目標網(wǎng)站不穩(wěn)定問題
小說模塊中目前內(nèi)置30多個小說網(wǎng)站,基于漫品APP獲取小說的途徑主要由以下四個途徑:
- 搜索
目前漫品客戶端包含30+個網(wǎng)絡(luò),遍歷搜索相關(guān)內(nèi)容進行展示,流程如下
內(nèi)置網(wǎng)站搜索集合,逐個獲取關(guān)鍵字搜索內(nèi)容,獲取失敗或超時則使用下一個搜索引擎進行搜索,直到搜索成功為止
- 書城頁面導(dǎo)航推薦
書城頁面導(dǎo)航頁面為單個小說網(wǎng)站導(dǎo)航頁面內(nèi)容,導(dǎo)航內(nèi)容為動態(tài)繪制,導(dǎo)航繪制分為以下幾個步驟:
- 獲取可用導(dǎo)航網(wǎng)站資源(導(dǎo)航網(wǎng)站列表或的定時替換)
- 繪制當前導(dǎo)航
- 主頁及推薦頁面
邏輯與導(dǎo)航推薦邏輯相符
效果圖如圖所示
漫品客戶端 全站開源 開源地址:
https://github.com/AnyMarvel/ManPinAPP
歡迎start
工具庫慢慢扣出中,求start
使用過程如有問題,請直接留言: