android组件化怎么调试组件,GitHub - snube/AndroidComponent: 一种简单有效的android组件化方案,支持组件的单独调试、集成调试、组件交互以及组件之间的完全隔离...

DDComponent

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e737667

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d417061636865253230322e302d6f72616e67652e737667

最新版本

模块

build-gradle

componentlib

router-anno-compiler

router-annotation

最新版本

68747470733a2f2f6170692e62696e747261792e636f6d2f7061636b616765732f7a686d7171303532372f636f6d706275696c642f6275696c642d677261646c652f696d616765732f646f776e6c6f61642e737667

68747470733a2f2f6170692e62696e747261792e636f6d2f7061636b616765732f7a686d7171303532372f636f6d706275696c642f636f6d706f6e656e746c69622f696d616765732f646f776e6c6f61642e737667

68747470733a2f2f6170692e62696e747261792e636f6d2f7061636b616765732f7a686d7171303532372f636f6d706275696c642f726f757465722d616e6e6f2d636f6d70696c65722f696d616765732f646f776e6c6f61642e737667

68747470733a2f2f6170692e62696e747261792e636f6d2f7061636b616765732f7a686d7171303532372f636f6d706275696c642f726f757465722d616e6e6f746174696f6e2f696d616765732f646f776e6c6f61642e737667

实现功能:

组件可以单独调试

杜绝组件之前相互耦合,代码完全隔离,彻底解耦

组件之间通过接口+实现的方式进行数据传输

使用scheme和host路由的方式进行activity之间的跳转

自动生成路由跳转路由表

任意组件可以充当host,集成其他组件进行集成调试

可以动态对已集成的组件进行加载和卸载

支持kotlin组件

原理解析

使用指南

1、主项目引用编译脚本

在根目录的gradle.properties文件中,增加属性:

mainmodulename=app

其中mainmodulename是项目中的host工程,一般为app

在根目录的build.gradle中增加配置

buildscript {

dependencies {

classpath 'com.luojilab.ddcomponent:build-gradle:1.2.0'

}

}

为每个组件引入依赖库,如果项目中存在basiclib等基础库,可以统一交给basiclib引入

compile 'com.luojilab.ddcomponent:componentlib:1.3.0'

2、拆分组件为module工程

在每个组件的工程目录下新建文件gradle.properties文件,增加以下配置:

isRunAlone=true

debugComponent=sharecomponent

compileComponent=sharecomponent

上面三个属性分别对应是否单独调试、debug模式下依赖的组件,release模式下依赖的组件。具体使用方式请解释请参见上文第二篇文章

3、应用组件化编译脚本

在组件和host的build.gradle都增加配置:

apply plugin: 'com.dd.comgradle'

注意:不需要在引用com.android.application或者com.android.library

同时增加以下extension配置:

combuild {

applicationName = 'com.luojilab.reader.runalone.application.ReaderApplication'

isRegisterCompoAuto = true

}

组件注册还支持反射的方式,有关isRegisterCompoAuto的解释请参见上文第二篇文章

4、混淆

在混淆文件中增加如下配置

-keep interface * {

;

}

-keep class com.luojilab.component.componentlib.** {*;}

-keep class com.luojilab.router.** {*;}

-keep class com.luojilab.gen.** {*;}

-keep class * implements com.luojilab.component.componentlib.router.ISyringe {*;}

-keep class * implements com.luojilab.component.componentlib.applicationlike.IApplicationLike {*;}

关于如何进行组件之间数据交互和UI跳转,请参看 Wiki

组件化讨论群

DDComponent的讨论群,群号693097923,欢迎大家加入:

License

Copyright 2017  Luojilab

Licensed under the Apache License, Version 2.0 (the "License");

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值