MewX/light-novel-library_Wenku8_Android

▲ 55 stars today★ 3,324⑂ 398

[CASUALLY MAINTAINED] 轻小说文库 (Wenku8.com) 安卓版第三方公益App,始于2014年的初版Material Design风格、非盈利、Play Store上安装包最小的轻小说阅读器 (light novel reader)。目前网站的API由于被大量滥用,已更新成我自己架的 Cloudflare Worker API

About MewX/light-novel-library_Wenku8_Android

MewX/light-novel-library_Wenku8_Android is an open-source project on GitHub, mainly written in Java. [CASUALLY MAINTAINED] 轻小说文库 (Wenku8.com) 安卓版第三方公益App,始于2014年的初版Material Design风格、非盈利、Play Store上安装包最小的轻小说阅读器 (light novel reader)。目前网站的API由于被大量滥用,已更新成我自己架的 It currently holds 3,324 stars and 398 forks with 49 open issues, and was last pushed on 2026-10-24 (repository created 2014-10-10).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #78 with 55 new stars today.

GitHub Repository Details

Repository MewX/light-novel-library_Wenku8_Android · default branch master · size 62807 KB · watchers 50 · source: GitHub REST API and repository README

README

FOSSA Status Android CI Coverage Status :point_left: HISTORICAL ISSUE AND THAT'S WHAT WE ALL KNOW :sob:

https://github.com/MewX/light-novel-library_Wenku8_Android/blob/HEAD/play-store-badge

如果您想打赏我用爱发电的代码,可以点击这个链接帮我充电 ❤️: "充电按钮"

如果你走失了,可以来TG群:https://t.me/wk8app

文档目录 ==========

----

写在前面 ==========

Material Design风格的轻小说文库App完全开源了!想实践Material Design的可以参考本项目的源代码,不清楚的、以及各种相关话题都可以发issue交流~

这个项目是我第一次写安卓App,首先看了一本入门书籍,是chinapub写书评赠送的《第一行代码 Android》,然后便开始着手写这个app了。从2014年10月份开始动手写,都是些零零散散的时间,写到12月底也就是0.5.2.0版本,那时基本上是啥都不会,写的代码也是烂的不行。后来内测用户群里面有个设计师提出来设计Material Design(后面简称MD)风格的app,于是就打算重新开发。也是拖啊拖,到7月底才完成新的app,如果满打满算的话,应该是历时一整个月,手写代码量2W行以上。

本app完全是出于兴趣以及作为一个项目经历,所以完全无偿开发、源代码也是完全开源!欢迎大家交流。之前迟迟不开源新的MD,一方面是觉得写得太不容易了,各种谷歌查资料,还为红杏插件贡献了好几十 \_(:3」∠)\_ 另一方面是正式用git管理,Wenku8的站长也禁止将API公开,所以分来两个版本管理也很麻烦,还有一方面是因为代码非常乱,没有整理。

注:1.x版本源代码有部分是拷贝0520的,而0520的风格非常糟糕,比如AsyncTask的isLoading定义在类外这样。所以编码风格会有不统一,新写的代码我还是比较满意的,老的代码也是因为修改的需求不大,所以也就没有重构了。编码风格的建议也欢迎发issue~

----

为什么App里面说要尽快缓存感兴趣的小说?为什么现在这么紧急地开放源代码?

请参阅文档末尾的开发者的碎碎念。

----

Repo目录说明 ==========

1. design-source/

设计师提供的app制作效果图,大家可以参考学习~

2. eclipse-android/

0.5.1.0030版本的源代码(eclipse+ADT版本),这份源代码阉割了API部分,所以编译后也无法正常获取数据。

3. eclipse-android-old/

0.5.2.1典藏版的源代码(Android Studio版本),完整从私有库里拷贝出来的。release版本和正式版发布地址一样。

4. graph-source/

老版的制图源文件,当时自己弄得,完全就是随性而无章法 =。=

5. studio-android/

1.x正式版的所有源代码存放处,MD风格的App完整源码,可编译通过并正常运行!(Android Studio版本)

----

App程序结构简明 ==========

1.x 版本

新版的MD风格App,设计图纸在design-source/,工程文件在studio-android/。

三方库的引用全部采用Gradle dependency,在混淆方面会直接忽略,加密强度低,不过开发起来各种方便~

主要视图

1.x-cover-sc

Model & Controller: activity/WelcomeActivity.java View: layout/layout_welcome.xml

1.x-custom-menu

Model & Controller: fragment/NavigationDrawerFragment.java View: layout/layout_main_menu.xml

1.x-list-loading 1.x-list

Model & Controller: fragment/FavFragment.java Adapter: adapter/NovelItemAdapter.java View: layout/fragment_latest.xml

1.x-search 1.x-searching 1.x-search-result

搜索界面 Model & Controller: activity/SearchActivity.java Adapter: adapter/SearchHistoryAdapter.java View: layout/layout_search.xml 搜索结果界面 Model & Controller: activity/SearchResultActivity.java Adapter: adapter/NovelItemAdapterUpdate.java View: layout/layout_search_result.xml

1.x-rank-list 1.x-rank-list2

Model & Controller: fragment/RKListFragment.java Adapter: adapter/NovelItemAdapterUpdate.java View: layout/fragment_rklist.xml + (layout/fragment_novel_item_list.xml)s

1.x-fav

Model & Controller: fragment/FavFragment.java Adapter: adapter/NovelItemAdapterUpdate.java View: layout/fragment_novel_item_list.xml

1.x-info 1.x-info-menu 1.x-info-hotspot

Model & Controller: activity/NovolInfoActivity.java View: layout/layout_novel_info.xml

1.x-chapter

Model & Controller: activity/NovolChapterActivity.java View: layout/layout_novel_chapter.xml

1.x-reader 1.x-reader-swipe 1.x-reader-menu 1.x-reader-dark 1.x-reader-vertical 1.x-image-view 1.x-reader-jump 1.x-reader-jump-show 1.x-reader-setting 1.x-font-custom 1.x-font-seek

Model & Controller: reader/activity/Wenku8ReaderActivityV1.java View: layout/layout_reader_swipe_temp.xml + (layout/layout_reader_swipe_page.xml)s

1.x-reader-horizental

Model & Controller: activity/VerticalReaderActivity.java View: layout/layout_vertical_reader_temp.xml

1.x-config 1.x-switch-tc 1.x-cover-tc 1.x-config-tc

Model & Controller: fragment/ConfigFragment.java View: layout/fragment_config.xml

源代码结构

studio-android/LightNovelLibrary/app/src/main | AndroidManifest.xml | +---assets/fonts | fzss-gbk.ttf 方正书宋GBK字体 | +---java/org/mewx/wenku8 | | MyApp.java 自定义Application为了全局获取Context | | | +---activity | | AboutActivity.java 关于界面 | | MainActivity.java 主界面 | | MenuBackgroundSelectorActivity.java 侧栏菜单背景选择界面 | | NovelChapterActivity.java 章节选择界面 | | NovelInfoActivity.java 小说信息界面 | | SearchActivity.java 搜索界面 | | SearchResultActivity.java 搜索结果框架界面 | | UserInfoActivity.java 用户信息界面 | | UserLoginActivity.java 用户登录界面 | | VerticalReaderActivity.java 上下滑动界面 | | ViewImageDetailActivity.java 查看大图界面 | | WelcomeActivity.java 启动界面 | | | +---adapter | | NovelItemAdapter.java 老版的小说项Adapter,每10项更新一次 | | NovelItemAdapterUpdate.java 更新的小说项Adapter,动态更新每一项 | | SearchHistoryAdapter.java 搜索历史Adapter | | | +---component | | PagerSlidingTabStrip.java 排行榜自定义的标签类 | | ScrollViewNoFling.java 可控滑动阻尼的ScrollView | | | +---fragment | | ConfigFragment.java 设置界面 | | FavFragment.java 本地书架框架 | | LatestFragment.java 最近更新 | | NavigationDrawerFragment.java 侧栏菜单 | | NovelItemListFragment.java 通用的小说列表界面(嵌入框架中) | | RKListFragment.java 排行榜框架 | | | +---global | | | GlobalConfig.java 全局设置(糟糕向),其中inAlphaBuild控制内测版/正式版 | | | | | \---api | | ChapterInfo.java 章节信息类 | | NovelItemInfo.java 小说信息类 | | NovelItemInfoUpdate.java 更新的小说信息类 | | NovelItemList.java 小说项列表类 | | NovelItemMeta.java 小说完整信息类 | | OldNovelContentParser.java 旧的小说内容解析器,解析成text和image | | UserInfo.java 用户信息类 | | VolumeList.java 卷信息类 | | Wenku8API.java API类 | | Wenku8Error.java 错误信息类,后期的编码中定义的 | | Wenku8Parser.java 通用项目解析器 | | | +---listener | | MyItemClickListener.java RecyclerView的单击监听接口 | | MyItemLongClickListener.java RecyclerView的长按监听接口 | | | +---reader 这边准备封装成的UniversalReaderActivity库的 | | +---activity | | | Wenku8ReaderActivityV1.java 左右滑动阅读界面 | | | | | +---loader | | | WenkuReaderLoader.java 小说载入类的抽象类 | | | WenkuReaderLoaderXML.java XML格式小说载入类 | | | | | +---setting | | | WenkuReaderSettingV1.java 阅读设置类V1 | | | | | +---slider 三方划屏库 | | | | SlidingAdapter.java | | | | SlidingLayout.java | | | | | | | \---base | | | BaseSlider.java | | | OverlappedSlider.java | | | PageSlider.java | | | Slider.java | | | | | \---view | | WenkuReaderPageBatteryView.java 电池View(未使用) | | WenkuReaderPageView.java 单页小说View(效率低) | | | +---service | | HeartbeatSessionKeeper.java 心跳包保持session类(未使用) | | | \---util | LightBase64.java 轻量级base64封装库 | LightCache.java 轻量级文件操作库(容易OOM) | LightNetwork.java 轻量级网络通信库(容易OOM) | LightTool.java 轻量级工具集合类 | LightUserSession.java 轻量级用户Session管理(包括账号密码加解密) | Logger.java 轻量级日志类(未使用) | \---res/ | ... 略 \

----

0.5.2.1 典藏版

老版的App,启动和运行方面都比MD版本流畅,针对旧机型维护。Eclipse版本源码见eclipse-android/目录(非最新),Android Studio版本源码见eclipse-android-old/目录(典藏版最新),老版的图片资源都是用Fireworks做的,源文件见graph-source/目录。

预览图

0520-cover 0520-menu 0520-list 0520-info 0520-reader

源代码结构

这边引入了不少三方库,但是方法笨拙,主要采用复制、合并源代码的方式,所以文件目录会比较乱。但是加密强度高 \_(:3」∠)\_ 以后做商业软件还是建议这样操作,虽然麻烦,但是混淆之后烦的要命~

eclipse-android-old\LightNovelLibrary\src +---com | +---davemorrissey | | \---labs | | \---subscaleview 分部加载图片的库,查看大图防止OOM | | ImageViewState.java | | ScaleImageView.java | | SubsamplingScaleImageView.java | | | +---ecloud | | \---pulltozoomview 下拉放大的视图,设置界面用的小苹果~ | | IPullToZoom.java | | PullToZoomBase.java | | PullToZoomListView.java | | PullToZoomListViewEx.java | | PullToZoomScrollView.java | | PullToZoomScrollViewEx.java | | | +---facebook | | \---rebound 物理、动画库,用途忘记了 =。= 大半年没动了,好像是侧栏菜单用的 | | | AndroidSpringLooperFactory.java | | | BaseSpringSystem.java | | | OrigamiValueConverter.java | | | SimpleSpringListener.java | | | Spring.java | | | SpringConfig.java | | | SpringConfigRegistry.java | | | SpringListener.java | | | SpringLooper.java | | | SpringSystem.java | | | SpringSystemListener.java | | | SpringUtil.java | | | SteppingLooper.java | | | SynchronousLooper.java | | | | | \---ui | | SpringConfiguratorView.java | | Util.java | | | +---special | | \---ResideMenu 侧边滑动菜单iOS风格的 | | ResideMenu.java | | ResideMenuItem.java | | TouchDisableView.java | | | \---zcw | \---togglebutton iOS风格的切换按钮 | ToggleButton.java | +---me | \---imid | \---swipebacklayout 右滑返回layout | \---lib | | SwipeBackLayout.java | | Utils.java | | ViewDragHelper.java | | | \---app | SwipeBackActivity.java | SwipeBackActivityBase.java | SwipeBackActivityHelper.java | SwipeBackPreferenceActivity.java | +---org | \---mewx | \---lightnovellibrary | +---activity | | AboutActivity.java 关于界面 | | BookshelfFragment.java 本地书架 | | LibraryFragment.java 小说库(主界面入口) | | MainActivity.java 主界面 | | NovelImageActivity.java 看大图界面 | | NovelInfoActivity.java 小说信息界面 | | NovelListActivity.java 小说列表界面 | | NovelReaderActivity.java 阅读器界面(上下滑动) | | NovelSearchActivity.java 搜索界面 | | SettingFragment.java 设置 | | StartActivity.java 启动界面 | | Wenku8Fragment.java (未完成) | | | +---api | | Wenku8Interface.java 你懂的 | | | +---component | | | GlobalConfig.java 全局设置界面 | | | MyApp.java 用于获取Context的全局Application | | | NovelContentParser.java 小说内容解析器 | | | XMLParser.java XML解析器 | | | | | \---adapter | | EntryElement.java 书库分类项 | | EntryElementAdapter.java 书库分类项Adapter | | NovelContentAdapter.java 小说内容Adapter | | NovelElement.java 小说项 | | NovelElementAdapter.java 小说项Adapter | | NovelElementSearch.java 小说搜索项 | | NovelElementSearchAdapter.java 小说搜索项Adapter | | NovelIcon.java 小说封面 | | NovelIconAdapter.java 小说封面Adapter | | | \---util | LightBase64.java 轻量级Base64库 | LightCache.java 轻量级文件操作库 | LightNetwork.java 轻量级网络通信库 | \---uk \---co \---senab \---photoview 轻量级看图的View | Compat.java | DefaultOnDoubleTapListener.java | IPhotoView.java | PhotoView.java | PhotoViewAttacher.java | +---gestures | CupcakeGestureDetector.java | EclairGestureDetector.java | FroyoGestureDetector.java | GestureDetector.java | OnGestureListener.java | VersionedGestureDetector.java | +---log | Logger.java | LoggerDefault.java | LogManager.java | \---scrollerproxy GingerScroller.java IcsScroller.java PreGingerScroller.java ScrollerProxy.java

----

UMENG统计数据(2015/10/01残念)

1.x-statistic 0520-statistic

新版的app用户量10天增长到了1W用户量,全是托wenku8的福。照现在的增长速度速度估计用户量峰值是3W左右。

还有几个有趣的统计图分享一下:

[1.x-statistic-entry](https://raw.githubusercontent.com/MewX/light-novel-library

GitHub Stars & Activity

3,324Stars
398Forks
49Open issues
JavaLanguage

GitHub Popularity

GitHub stars3,324
Forks398
Open issues49
Primary languageJava
LicenseGPL-2.0
Stars gained today55
Created2014-10-10
Last pushed2026-10-24

Trending History

Daily boardrank #78 · ▲ 55 stars

Related GitHub Projects

1

NationalSecurityAgency / ghidra

Java★ 97,370⑂ 11,017▲ 402 stars
→
2

termux / termux-app

Java★ 64,007⑂ 8,167▲ 85 stars
→
3

skylot / jadx

Java★ 51,522⑂ 5,879▲ 54 stars
→
4

floci-io / floci

Java★ 28,113⑂ 3,154▲ 219 stars
→
5

LaurieWired / GhidraMCP

Java★ 11,731⑂ 1,261▲ 30 stars
→
6

public-apis / public-apis

Python★ 495,702⑂ 55,345▲ 1,311 stars
→
7

obra / superpowers

Shell★ 311,516⑂ 27,719▲ 647 stars
→
8

mattpocock / skills

Shell★ 310,749⑂ 26,134▲ 858 stars
→

More Trending Repositories