美文网首页
插件化2、Small完成插件化

插件化2、Small完成插件化

作者: flynnny | 来源:发表于2021-04-02 01:39 被阅读0次

市面上现有插件化框架介绍

360手机助手的DroidPlugin框架
出的早,并不能说是一种完整的框架

百度的dynamic-load-apk框架
任玉刚开发的 两年未更新

Small框架
林光亮 还在不停更新

alibaba的Atlas框架
入门难度大

所以重点选择small来完成插件化改造。

具体使用Small完成插件化改造

集成阶段

1按照规则创建对应的project

和普通工程一样

14.png

这里最好还是app

2在创建好的project中集成Small

15.png

classpath:定义自己的编译流程

16.png

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

17.png

3在工程的宿主module中初始化Small

先创建一个Application 重写onCreate

18.png 19.png

插件创建阶段

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

20.png

2编译创建好的插件

21.png 22.png

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

23.png 24.png 25.png

正确的启动了。

项目改造阶段

浏览一下要改造的项目功能
分析要把哪些模块隔离到独立的插件区
完成改造

比如:
首页、搜索页、二维码页面都可以独立封装成插件
只要关联性不强的、独立的都可以作为插件。

26.png 27.png 28.png 29.png

公共库插件创建

公共库插件存在的必要性

前面的插件都叫业务插件
变为多个app后,很多功能可以复用
公共的代码和资源可以作为公共库插件供其他使用

先创建一个库插件 library 封装网络层

30.png 31.png

copy代码:

32.png

其他app如何使用

33.png

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

打包验证:

34.png 35.png 36.png

small会将公共库打包成公共库插件,而不让gradle执行comple 语句!!

Small进阶知识讲解

1

37.png 38.png

2

39.png 40.png 41.png

3

42.png

small不支持对象类型传递!

相关文章

网友评论

      本文标题:插件化2、Small完成插件化

      本文链接:https://www.haomeiwen.com/subject/lxexkltx.html