android 模块化 gradle,GitHub - httvc/MESProject: 自己写的Android模块化框架,主要里面使用的有模块化,热更新thinker,最新的Android屏幕适配...

自己写的Android模块化框架,主要里面使用的有模块化,热更新thinker,最新的Android屏幕适配,ConstraintLayout的使用以及RxJava+Retrofit2.0+Butterknife+Picasso等

模块目录大概分类 base_module,login_module,user_module

moudle.png

base_module:主要用基础类,如存放网络请求,图片请求库,工具类等

login_module:主要登录模块 user_module:用户模块 app:主模块

mvp模式的引用:具体使用可以看图片中所对应的java代码

311850326e4c1c737f8c6ba2e9c691b0.png

热更新thinker :我使用的**enableProxyApplication = true **的情况

具体使用详见bugly中tinker以下链接:

Android屏幕适配 使用的是 屏幕分辨率限定符与 smallestWidth 限定符适配原理

4276b2f1dbdcfb20771a2fe73cd44dd1.png

ConstraintLayout在三个Fragment中使用将其一些属性以及链的使用如下图:

d978cb533e731e313c161329f46b9f9c.png5fb5cd75cdfa5d1ff835e4cf8cde9c58.pngme.png

模块化的一些配置:

首先在gradle.properties中添加 isModule=false

然后在每个module(app,login_module,user_module,base_module)中的build.gradle中添加

if(isModule.toBoolean()){

apply plugin: 'com.android.application'

}else {

apply plugin: 'com.android.library'

}

javaCompileOptions {

annotationProcessorOptions {

arguments = [AROUTER_MODULE_NAME: project.getName()]

}

}

sourceSets {

main {

if (isModule.toBoolean()) {

manifest.srcFile 'src/main/app/AndroidManifest.xml'

} else {

manifest.srcFile 'src/main/module/AndroidManifest.xml'

}

}

}

在每个module中加入两个AndroidManifest.xml,一个是module清单文件,一个是作为主app清单文件

bda35e8fb25a58499999c7d6932b5aa8.png

config.gradle:将其所有的依赖放到一起,然后在build.gradle中apply from:"config.gradle"引入

关于build.gradle 中api和implementation

implementation就是使用了该命令编译的依赖,它仅仅对当前的Moudle提供使用其接口。

api:和以前compile一样,其他moudle如果包含了此moudle就能直接使用其下的接口,不需要在引入。

b09561c2d681dd0f67ff1e0ce91ae4ee.png

模块间的跳转用的阿里的ARouter

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值