eoe源码阅读(一)

                 这两天阅读了eoe客户端(android),有关数据库部分,这里数据库对图片请求url进行了缓存。

为什么先去分析数据库部分,android的应用把数据库和网络部分搞定,其他的部分跟着界面(Activity走),

用到哪个控件之类的再去查查。由于eoe的业务逻辑并不复杂所以也不是重点。这里就采用数据流的方式对源码进行

分析,看看数据流从从哪里来,干啥用。

相关工具:

(1)SQLite Export来看数据库的信息;

(2)Blumind(思维导图)来分析各个类之间层次及逻辑关系;


首先我们看到cn.eoe.app.db包下的文件,

分析之后得出这样子的结论:

(1)类DatabaseColumn被BlogColumn、DetailColumn、ImageCacheColumn、NewsColumn、RequestCacheColumn类继承;

(2)BlogColumn、DetailColumn、ImageCacheColumn、NewsColumn、RequestCacheColumn类中定义了相关的表名,

字段名和字段类型;

(3)在DatabaseColumn中依次创建了其子类对应的数据表(比较巧妙);

---------------------------------------------------------------------------------------------------------------

(4)DBHelper和DBProvider分别封装了对数据库的具体操作,insert、delete、update、query等;

a、DBHelper是直接对db操作,而DBProvider则是通过ContentProvider对db进行操作。

b、DBHelper程序中对DetailColumn、ImageCacheColumn、RequestCacheColumn进行实际操作,

DBProvider程序中对BlogColumn、NewsColumn并未进行实际操作,仅仅留下了接口。


我们可以通过adb shell进入到android操作系统看看eoe产生的数据库如图:



使用SQLite Expert打开其中的eoecn数据库,如下图:





这里有图片的缓存,请求的缓存,评论的数据表,博客的数据表(程序中没有使用),新闻的数据表(程序中没有是使用);


需要带着一下问题去看看程序如何操作这些数据的:

(1)什么时机缓存这些数据?

(2)数据保存多久;何时删除这些数据?


谈谈自己阅读源码的一些方法,

(1)注释,把需要看的这部分代码认真的注释一遍,注释的过程中就是不断提问题和解答问题的过程;

(2)使用Blumind把思维导图画出来,这个过程也是利于加深和复习层次关系;

(3)调试的过程容易理清逻辑关系,验证上述1、2步骤自己得出的结论;


其实直接调试也是可以,但自己感觉对于不熟悉的源码,直接调试容易陷入一个大的逻辑中而出不来,

经过1、2的工作之后,调试的时候,很多逻辑就衔接起来了,感觉就好象在验证自己的想法一样。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值