美文网首页组件插件
Android-模块化、组件化、插件化、热修复-组件化一下试试

Android-模块化、组件化、插件化、热修复-组件化一下试试

作者: MonkeyLei | 来源:发表于2019-10-08 15:34 被阅读0次

    小萌新之前封装的公共库都是Library,So,接下来我要:

    1. 配置下实现library与application自由切换配置

    2. 新建一个启动页面,新建一个application模式下的manifest(AndroidDebugManifest.xml), 然后配置到AndroidDebugManifest.xml

    3.根据工程目录下统一配置的标识isLibrary(是否是Library)进行动态配置manifest

    4. App主模块引用的时候也根据isLibrary标识的状态选择是否加载该组件(只有组件是Library的情况下才能被implementation)

    走你,开始看连环画:

    image image image image image image image

    此时你只需要控制工程下的gradle.properties的isLibrary变量就可以实现模块的Library和Application的切换了

    # true表示当前是个library,false则表示是个application
    isLibrary = false   
    

    这个isLibrary也可以由模块自己内部定义控制,然后提交上去的时候打开这个开关就行,自己测试的时候关闭了就好。 不过由工程统一配置,那样可以防止你设置成Application,然后被主App给引用了导致一些错误....

    小萌新发现一个问题,其实我用上面的公共的弹窗库作为组件化不太好,组件化应该是侧重业务的模块。我这个公共弹窗提供了具体的类给其他模块调用,如果此时我主模块isLibrary=false,就不会implementation该弹窗,那么我的代码就会报错!因为没有引入库,导致找不到相关类。

    不然主模块很难运行起来呀....会缺少很多资源,找不到类呀....

    image image

    而我们侧重业务的模块,则直接通信是需要一套接口或者路由等方式来实现,他们之间没有直接的依赖性,这样主模块随时可以剔除一些非必要的引用,运行也不会报错!暂时是这么了解的。。。

    后续的话,还需要深入组件化的通信方式,实现页面跳转,回调通知等。。。总之事情还是有很多的....

    明天下午请假,上午把通信这块瞅瞅试试。。。最后祝大家中秋,不对,是国庆快乐! 过了节日,洗心革面,重新做人,好好锻炼,早睡早起,坚持学习,么么哒!

    乱记 - 针对之前重构的工程提交做了一下备注说明:

    用Pop做组件化配置样例(实现Library和Application的切换配置);
    但是由于Pop库的类被App主模块直接依赖了,只能作为配置参考,不能作为组件化模块;
    组件化模块是一个独立的模块,可以被主模块依赖,但是也可以随时剔除,并且剔除了还影响主模块运行(不会报资源类等找不到)!
    组件化倾向业务组件,比如登录,注册等可以独立提出来作为独立组件,组件通信方式则可以:下沉模块作为媒介、EventBus、广播、AIDL、接口等可以参考实现组件通信.....
    

    附录:网上的知识可以参考,尽量多看官方吧...然后了网友写的不清楚,不明白的,我们争取自己搞明白些。

    Android组件开发时Module的library与application自由切换配置

    Android多模块开发以及动态加载AndroidManifest.xml

    Android组件化

    相关文章

      网友评论

        本文标题:Android-模块化、组件化、插件化、热修复-组件化一下试试

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