博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android组件化和插件化开发
阅读量:6984 次
发布时间:2019-06-27

本文共 1170 字,大约阅读时间需要 3 分钟。

组件化开发就是将一个app分成多个模块,每个模块都是一个组件(moudle),开发的过程中我们可以让这些组件相互以来或者单独调试部分组件以及其他的一些操作,但是最终发布的时候这些组件将组合并统一成一个apk,这就是组件化开发。

插件化开发和组件化开发略有不同,插件化开发时将整个app拆分成很多模块,这些模块包括一个宿主和多个插件,每个模块都是一个apk(这里与组件化不同,组件化每个模块是一个lib),最终打包的时候将宿主apk和插件apk分开或者连个打包。

 

组件化

Android工程的组件一般分为两种,lib组件和application组件

application组件是指该组件本身就可以运行并打包成apk

lib组件是指该组件属于app的一部分,可以供其它组件使用但是本身不能打包成apk

为什么有组件化?

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

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

既然选择使用组件化,那么如何正确的使用它呢?这里给出一种解决方案。

我们创建了一个app工程project,默认里面有一个app组件,这个app组件是可以直接运行的。
怎么划分组件呢?

  • 1.新建一个lib组件,new Module—>Andorid Library,取名BaseUtilLib,我们将所有的公共的工具类、网络分装等类放在其中
  • 2.新建一个lib组件,BaseReslLib,我们将所有的公共资源、drawable、String等类放在其中
  • 3.将app按照自己的规则划分成多个模块,比如按业务按地区等都可以
  • 4.逐一开发某个模块,比如Test模块,新建一个TestApp组件,TestApp组件引用[1][2]步骤的BaseUtilLib和BaseReslLib,在TestApp组件里添加并引用TestLib组件。在TestLib的activity中写代码写业务逻辑,TestApp只负责跳转和测试
  • 5.将工程中的所有类似TestLib组件(不是TestApp组件)引入到工程的app中  

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

 

插件化

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

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

开放出来的插件化开发框架比较多,他们各自都有自己的优势和和不足,实现的原理也有差别下面列

开源的插件化框架

 

转载于:https://www.cnblogs.com/wangcMove/p/6134363.html

你可能感兴趣的文章
Web Service概念梳理
查看>>
【FBA】SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用...
查看>>
C++指针和数组的区别(不能混用的情况)
查看>>
javascript学习总结1
查看>>
第三章 使用Servlet处理HTTP响应
查看>>
spring注解controller示例
查看>>
libxml中用到的Xpath语法说明
查看>>
我的cookie读写
查看>>
泛型集合中对继承类的转换
查看>>
fzu 2154 YesOrNo
查看>>
symbol MC 3090 upgrade to symbol MC 3190
查看>>
jquery之仿京东菜单
查看>>
Codeforces Round #220 (Div. 2)
查看>>
机器人的运动范围
查看>>
Linq的一些操作符-图表展示
查看>>
First java program
查看>>
codeforce#365D Free Market
查看>>
PHP&symfony
查看>>
docker和docker-compose 端口映射
查看>>
2013 Multi-University Training Contest 9 1011 Arc of Dream
查看>>