Skip to content

依赖和配置 AndroidX

xiaojinzi123 edited this page Jun 8, 2019 · 30 revisions

视频讲解

youtube资源 bilibili资源

特殊说明

  • app 模块在项目中既是一个壳工程也是一个业务模块.这点务必注意
  • App 会包含其他所有的业务模块
  • 而一般工程中会有一个 "BaseModule" 的基础业务模块,每一个业务模块都会依赖 "BaseModule"

依赖

下面所有的 <version> 请替换成最新的版本号,不包含v
比如上面最新的为 v1.0,那么版本号就是 1.0

(工程)Project 级别的 build.gradle 中添加 maven 地址:

maven { url 'https://jitpack.io' }

在基础业务模块 BaseModule 或者每一个业务模块中添加依赖:

api 'com.github.xiaojinzi123.Component:component-impl:<version>-androidx'

或者 RxJava2的实现

api 'com.github.xiaojinzi123.Component:component-impl-rx:<version>-androidx'

rx版本可以轻易的让你的路由和服务发现功能结合RxJava,引用 rx 库请自行在项目依赖 RxJava2

配置每一个业务组件(包括app)

配置每一个业务组件的 Host 名称

下面配置的 HOST 的值可以是随便的一个名字,你只要保证每一个 Module 的名称是唯一的就可以了.
不一定和 Module 名称一样

defaultConfig {
        ......
        javaCompileOptions {
            annotationProcessorOptions {
                // 配置业务模块的模块名称
                arguments = ["HOST": "这里替换成你起的模块名"]
            }
        }
    }

可选的配置生命周期类

点我配置,您也可以跳过本步骤

每个业务组件中添加注解驱动器

annotationProcessor "com.github.xiaojinzi123.Component:component-compiler:<version>-androidx"
// 如果是 kotlin 模块请使用如下的代码
// kapt "com.github.xiaojinzi123.Component:component-compiler:<version>-androidx"

壳工程 AppApplication 配置如下

// 初始化
Component.init(this, BuildConfig.DEBUG);
// 如果你依赖了 rx 版本,需要配置这句代码,否则删除这句
RxErrorIgnoreUtil.tryErrorCatch(); 
// 注册其他业务模块,注册的字符串是上面各个业务模块配置在 build.gradle 中的 HOST
ModuleManager.getInstance().registerArr("component1","component2","user","help");
if (BuildConfig.DEBUG) {
      // 框架还带有检查重复的路由和重复的拦截器等功能,在 `debug` 的时候开启它
      ModuleManager.getInstance().check();
}

混淆配置

-dontwarn com.xiaojinzi.component.**
-keep class com.xiaojinzi.component.** {*;}
-keep interface com.xiaojinzi.component.** {*;}
Clone this wiki locally