MONKOVEL-安卓端免费的小说阅读器 源码分享

想了很久,还是决定把我最近的项目的源码发出来,有兴趣的可以共享,学习,交流。希望尊重作者,转载,商用请遵循本人。
  APP本地小说仅支持txt格式,将小说按章节分割存入数据库,在线小说来源是通过手机模拟小说网站的GET请求,获取网站源码,根据不同网站来源进行数据解析,获取相应数据存入数据库显示(已经匹配了近30个网站),同时为了提升阅读体验,章节内容做了二级缓存处理。同时也增加了离线加载功能。
  
  这款APP,主打精简,UI精简但不失优雅,功能精简但不失体验,根据功能界面划分为:

  1. 书架模块:包含本地书籍,以及网络在线书籍。
  2. 书城:以一个网站为数据来源,解析其主页数据,筛选以及封装数据以Android原生界面的形式展现出来。
  3. 网络小说离线功能:通过提前设置任务队列,通过Service后台获取章节数据。
  4. 本地小说:将手机本地的txt小说导入应用。
  5. 小说阅读模块。
      本APP所有数据来源于第三方小说网站,不具备自身后台,通过JSoup对xml进行数据解析,来完成用户对小说内容的获取。

开发难点

本地超大txt小说数据处理

我们都知道手机直接读取超大文本时,不做好优化是很可能OOM的。我对本地小说的处理方式是
  
  可查看ImportBookModelImpl类。

小说阅读模块

由于最初是以自身阅读习惯开发,所以只有左右翻页阅读功能,我并没有直接使用自定义View去完整整体UI,虽然定义View会使得UI更自由,但是我认为通过自定义的ViewGroup去加载布局反而开发成本相对很低。
  在自定义ViewGroup中,最多只有3个页面,分别是当前页,上一页,下一页。当滑动到下一页时,上一页移除,当前页指向下一页,同时再新增下一页。保证UI布局数量不会越来越多,杜绝因为View过多而产生的OOM。
  同时阅读时,章节内容数据优先从内存读取,随后是数据库,都没有的话,再通过章节的网络地址去请求新的章节再解析最后返回数据,存入缓存以及数据库中。
##顺便推荐下自己的开源库吧
顺便介绍下自己的两个UI库把
进度条:https://github.com/ZhangQinhao/MProgressBar
沉浸式布局:https://github.com/ZhangQinhao/ImmerseLayout
适用于RecyclerView以及ScrollView的上下拉刷新控件最近也会找时间从项目中摘取出来
MVPlib:https://github.com/ZhangQinhao/BaseMvpLib 集成了rxjava+retrofit+rxbus等一些快速开发的框架。

项目源码地址:https://github.com/ZhangQinhao/MONKOVEL 有任何问题和优化都可以联系我。

请勿商用,请勿copy代码打包上市场!!!仅仅提供学习,个人已经不维护了,其中解析方式可以直接用XPath语法去弄,会更加灵活
  • 33
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 28
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值