组件化,插件化和热更新

来源:互联网 发布:枪械介绍app软件 编辑:程序博客网 时间:2024/06/05 17:28

组件化,插件化和热更新


什么是组件化:

  1. 为什么要有组件化?

加入一个app工程只有一个组件,随着app业务的壮大模块越来越多,代码量超10万是很正常的,这个时候我们会遇到以下问题:

  • 稍微改动一个模块的一点代码都要编译整个工程,耗时耗力
  • 公共资源、业务、模块混在一起耦合度太高
  • 不方便测试

这里写图片描述

这样的好处:
* 每个模块可以独立开发编译运行
* 开发单个模块时可以共享资源和工具类
* 可以针对单个模块测试

参考文章链接:[http://blog.csdn.net/guiying712/article/details/55213884 ]
github链接:[https://github.com/llayjun/ModuleProgramming ]


什么是插件化

  1. 为什么有插件化?

有了组件化,为什么还要用插件化呢?插件化开发总的来说有以下几点好处(不同插件框架不一样):

  • 宿主和插件分开编译
  • 并发开发
  • 动态更新插件
  • 按需下载模块
  • 方法数或变量数爆棚

主要有这几种插件化模式值得研究
1. 滴滴/VirtualAPK
2. 奇虎360/RePlugin/DroidPlugin

github链接:以DroidPlugin为例[https://github.com/llayjun/PlugProgramming ]


什么是热更新

在用户使用App的时候,不知不觉,这个Bug就被修复了。

主要有这几种热更新值得研究
1. 阿里的Sophix,暂时处于内侧阶段,后期不知道要不要收费
2. 微信的Tinker

博客链接:以Tinker为例:[http://www.jianshu.com/p/b7b7cf40f700 ]
github链接:以Tinker为例:[https://github.com/llayjun/MyTinkerDemo ]


自我理解:
①组件化:
1. 用于项目过大,每次编译时间长
2. 用于团队多个人分工开发不同的模块
②插件化:
3. 用于版本新添加功能
4. 解决方法数超过65536问题
5. 按照需要下载模块,减小项目apk的大小
③热更新:
6. 用于修复已经上线的bug等问题
7. 一般不用于新功能的版本上线

原创粉丝点击