coolreader阅读器分析第一步

来源:互联网 发布:原始地貌测量数据 编辑:程序博客网 时间:2024/05/19 19:56

我手中的源码是一份开源coolreader源码,废话不多说,直接进入正题吧。我会尽量明白思路。


首先分析源码首先从mainfest文件开始,首先找到他的第一个启动activity,然后顺藤摸瓜,一步步进行分析。

可以直接看出第一个activity是叫bookshelf的activity,也就是书架的activity,大家也可以猜到是干什么的,就是书籍展示的界面,然后点住command直接进入,看看里面写了什么

直接找到oncreate方法,里面很简单,设置去掉标题栏,初始化一些数据。然后继续跟进里面init方法,一般这个方法都是初始化控件或者数据的。姑且进去看看里面说了啥吧

继续command跟进init方法

里面就是初始化一些控件,注册下上下文菜单,就是那个registerForContextMenu方法。设置下adapter,最后一句是设置库的监听

也就是这个方法,是个接口,现在感觉还没浏览到相关的用处,应该等以后就会碰到,现在先不管。

继续往下看会看到一个resume方法,看看声明周期就知道这个方法会在activity回到前台的时候调用,create--->strat---->resume--->activity开始运行,就是这个流程,。

每次activit回到前台的时候回启动一个现场,查询书籍并更新书籍信息,继续跟进那个loadbooks方法



里面发现使用了刚才看到的library的方法了,那个是一个静态类,继续跟进library类

会发现里面有两个方法,一个是查询最近添加书籍的,一个是查询预设书籍的,就是那个loadasset方法,至于那个查询最近书籍的,基本看到database就知道他是查询数据库的信息了,数据库现在不着急看,知道他是查询数据库得到书籍信息就好了,等到了后面再研究数据库。


回到刚才的loadbook方法,会发现查询完就是做一些非空处理,然后添加,觉得没啥好说的,第一步也就是看看流程,到了后面就会分析他的核心,对书籍数据的处理算法。那个才是关键的,好了,继续往下看。

这部分无非就是做gridview 的adapter,没什么好看的,继续往下看。

这部分代码和前面的个createcontextmenu方法对应,意思就是添加个菜单,里面可以可以移除书籍。

对移除按钮的一些逻辑操作,判断是不是预设书籍,预设书籍不允许移除,这个在后面自己开发是需要改掉的,因为就算你是预设书籍用户不爽了也可以扔了。 = =毕竟用户不爽也可以卸了你的app嘛,做这些无所谓的限制不尽人意。继续往下看。


这部分就是对点击的gridview中的item也就是书籍做跳转处理了,因为毕竟当前activity只是书籍展示界面,不是阅读界面,需要带好书籍信息开始跳转到我们要找的关键界面了,就是reading界面,后面会对那些书籍的数据处理算法进行分析,真正的难点才刚刚开始。就是那个coolraderaty。对于bookshelf的activ分析到此为止,引出了下一个阅读界面,在下一步分析阅读界面是如何显示阅读信息并绘制文字的。

0 0
原创粉丝点击