美文网首页
Android组件化之组件/模块初始化注册到applicatio

Android组件化之组件/模块初始化注册到applicatio

作者: 万事命名难 | 来源:发表于2020-02-18 20:15 被阅读0次

    一个用于帮助 Android App 进行组件化改造插件工具 —— 使业务组件,功能组件library 可以感知到主工程Application的创建与退出;
    在Android组件化开发中,必会经历的问题之一:组件/模块初始化问题。组件化为了解耦,每个组件/模块有不同的功能,例如不同组件/模块要在application中初始化一些第三方SDK或本组件/模块需要在application初始化时做一些操作。

    LiblifecycleRegisterPlugin

    English


    [TOC]

    最新版本

    模块 com.qckiss.library:lifecycle.proxy com.qckiss.plugin:lifecycle.register
    最新版本 1.0.0 1.0.0

    一、功能介绍

    library 可以感知到主工程Application的创建,从而做自身需要的操作

    已开启Transform增量编译

    二、基础功能

    1. 添加依赖和配置

      //主工程中
          apply plugin: 'com.android.application'
          apply plugin: 'com.qckiss.plugin.lifecycleregister
          //扫描配置
          scanPackageNames {
              scanAll = false //默认false;扫描 names中包含的包名library,true扫描所有
              names = ["com/xxx1","com/xxx2"] //包名分割符“/”
          }
      
      //主工程和各library
      dependencies {
              //替换为最新版本号
              implementation 'com.qckiss.library:lifecycle.proxy:x.x.x'
          }
      
          //项目build.gradle
          dependencies {
              ...
              classpath 'com.qckiss.plugin:lifecycle.register:x.x.x'
          }
      
          allprojects {
              repositories {
                  maven{
                      url 'https://raw.githubusercontent.com/qcks/public-maven-repo/master'
                  }
              }
          }
      
    1. Library中添加标记注解@MarkLibApplictionProxy

      /**
       * priority 值越小 注册优先级越高
       */
      @MarkLibApplictionProxy(priority = 2)
      public class ModelaApplicationProxy implements IApplicationProxy {
          @Override
          public void onCreate(Application application) {
          Log.i("ModelA", "ApplicationProxy onCreate");
          }
      
          @Override
          public void onExitAllActivity() {
              //暂未实现
              Log.i("ModelA", "ApplicationProxy onExitAllActivity");
          }
      }
      
    2. 壳子Application的onCreate方法添加标记注解@MarkRecaptureLibProxy

      
      public class MyApplication extends BaseApplication {
          @MarkRecaptureLibProxy
          @Override
          public void onCreate() {
              super.onCreate();
          }
      }
      
    3. 添加混淆规则(如果使用了Proguard)

      -keep public class  com.qckiss.liblifecycleproxy.**{*;}
      -keep class * implements com.qckiss.liblifecycleproxy.IApplicationProxy
      

    三、操作步骤

    
    点赞加星小礼物
    复制粘贴人人爱
    如有 BUG记小本
    携尔长刀来相砍
    
    

    相关文章

      网友评论

          本文标题:Android组件化之组件/模块初始化注册到applicatio

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