代码设计:下载中心

来源:互联网 发布:2016年coc双王数据 编辑:程序博客网 时间:2024/05/17 02:32

          

         这篇文章讲:下载中心的设计,下载中心的实现及缘由,请看我的另一篇文章:点击打开链接

         整个下载中心的设计,参考了我的老东家(UC)浏览器的设计,加上了自己的一些改造!


         下面是下载中心的整体结构图:

        (1)从结构上,分为主进程和后台进程

        (2)后台进程分为:push 服务和下载服务

                 这样我们插件和SO的更新就可以完全脱离于主进程(不依赖app的启动与否),比如:我们可以从我们的推送平台下发一个插件的更新命令,push服务收到后,通知下载服务更新插件,这个时候不管主进程是否启动,都能预先下载插件的新版本,下次app启动时,就可以使用最新的插件。 so的更新同理;


         

      

     下载中心的类图:

    (1)分为三部分:1 业务对接层; 2 进程通信层 3 下载服务层; 外部业务只需要对接层交互,而不用关心,到底是哪儿在下载;

    (2)下载方案:主方案,后台进程下载;备用方案,主线程下载;(之前在UC做国际版后台进程业务时,发现有3%的后台进程是启动不了的,所以这里做了主进程备用方案)

    (3)下载的实现部分:支持插件化;默认了下载行为,但增加插件,可以完成扩展功能,比如我们有某个业务,如app包的更新采用的是差异化更新,即下载到更新包后,要和主包合并成最终的包,那可以添加一个差异化更新插件,在文件下载完成时,进行合并;采用插件化的方式,好处是:1 插件针对不同业务生效,需要的业务使用,不需要的业务不使用就不被影响;2 将变化的部分抽离出来,主的下载流程是不用变化的,增加功能就增加插件就行了。



         


0 0
原创粉丝点击