市面上现有插件化框架介绍
360手机助手的DroidPlugin框架
出的早,并不能说是一种完整的框架
百度的dynamic-load-apk框架
任玉刚开发的 两年未更新
Small框架
林光亮 还在不停更新
alibaba的Atlas框架
入门难度大
所以重点选择small来完成插件化改造。
具体使用Small完成插件化改造
集成阶段
1按照规则创建对应的project
和普通工程一样

这里最好还是app
2在创建好的project中集成Small

classpath:定义自己的编译流程

./gradle small 命令验证small完成集成

3在工程的宿主module中初始化Small
先创建一个Application 重写onCreate


插件创建阶段
1以指定的规范来创建插件

2编译创建好的插件


3通过宿主应用启动插件应用



正确的启动了。
项目改造阶段
浏览一下要改造的项目功能
分析要把哪些模块隔离到独立的插件区
完成改造
比如:
首页、搜索页、二维码页面都可以独立封装成插件
只要关联性不强的、独立的都可以作为插件。




公共库插件创建
公共库插件存在的必要性
前面的插件都叫业务插件
变为多个app后,很多功能可以复用
公共的代码和资源可以作为公共库插件供其他使用
先创建一个库插件 library 封装网络层


copy代码:

其他app如何使用

疑问 目前network lib和一个普通库有什么区别呢?
答:compile project 这条语句只是在调试的时候使用,但是small在打包时,这条语句并不会真正起作用,及network不会作为库导入到插件中,而是small会把他打成一个和容器类似的公共库工程。最后也是一个so,与业务插件放在一样的位置。
打包验证:



small会将公共库打包成公共库插件,而不让gradle执行comple 语句!!
Small进阶知识讲解
1


2



3

small不支持对象类型传递!
网友评论