美文网首页
插件化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