Android组件化管理---build.gradle进阶知识

前提:要做好项目代码的各个版本数据控制管理,首先我们就得先学习gradle进阶的认知,毕竟平时我们开发也不重视gradle的脚本编写。

 

组件化管理---build.gradle进阶知识

1.项目依赖版本统一管控:

方式一:在project中创建统一的ext{}对版本数字进行控制:

然后针对module中的build.gradle统一使用这边的版本号:

当然注意将‘ ’引号换成“ ”,$才能正常使用。

三种写法,可以用最精简的方式写。

优势:项目可能有多个library工程,而且这些版本号会随着时间,新Android系统的发布而升级修改,为了省去一个个目录去修改版本号,在主目录下可以快捷而且不遗漏的更新所有版本号。而在组件化中方便切换项目的module类型等

缺陷:

在Android studio3.2.1中,如果你再创建cotlin的module,因为工具默认写法ext.kotlin_version = '1.2.71',就会导致拨错

强迫症不严重的就可以当创建module(cotlin)报错再过来修改为正常值,java工程无影响。

方式二:在project里gradle.properties配置方案:

先看配置属性:

然后调用:

这个方案就可以解决那些强迫症晚期的心头刺了(无意中自己也中枪了(*^▽^*)),在gradle.roperties中所有储存的都为String类型,这也就导致需要常用的类型转化。

这样就能方便快捷的整理版本号了。是不是少了很多烦恼。

扩展使用:

1.热修复扩展,直接在properties.gradle中设置一个TINKER_ENABLE来控制是否添加热修复插件功能

2.插件化扩展,控制依赖的lib库模块是否可以独立运行,控制是一整个apk运行或者是组件单独就可以运行。

常规的build.gradle进阶使用方案

1.秘钥的高端操作,方便编译

2.常用操作解析:

3.gradle的方法封装外放操作,简化gradle中的内容。

4.依赖三方库support:appcompat-v7红线提示

All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes

在Android 3.0后增加了新功能,

    api("com.alibaba:arouter-api:1.4.1") {
        exclude group: 'com.android.support' //处理appcompat-v7携带版本不同导致的报错
    }

exclude group将三方库中的冲突support所有库都排除

指定module:

    api("com.afollestad.material-dialogs:core:0.9.5.0") {
        exclude group: 'com.android.support', module: 'support-v13'
        exclude group: 'com.android.support', module: 'support-vector-drawable'
    }

补充建议:

另外还有一个建议,在我们自己创建library给别人使用时,如果需要依赖com.android.support的话,建议用provided的方式依赖(android studio3.0中更改为compileOnly),这样只会在编译时有效,不会参与打包。以免给使用者带来不便。

例:

    provided 'com.android.support:appcompat-v7:26.1.0'
    provided 'com.android.support:design:26.1.0'
    provided 'com.android.support:support-vector-drawable:26.1.0'

5.集合命名式封装依赖库

统一在project的根目录配置ext:

就先写到这里了,对看官有用请点赞,谢谢支持^_^

若想了解更多操作请评论留言。

猜你喜欢

转载自blog.csdn.net/insist_hui/article/details/86511878