Android 组件化最佳实践之 AucFrame 让你的 Gradle 更智能

前言

不了解什么是 AucFrame 的能够先看一下这篇文章:AucFrame 之简介及学习java

环境

首先来明确下开发环境,这里推荐使用 Android Studio 3.5-Beta4 及以上的版本,3.3.x 和 3.4.x 也都是能够的,只是没有智能提示,3.2.x 及如下版本的话就不推荐使用了,不然后面的课程可能会出问题。android

背景

若是你开发过稍微大型点的项目,项目中确定会存有多个 module,那么多个 gradle 的管理便成了问题,曾经我也分享过 Android 开发之版本统一规范 这样的 ext 管理方式,但在 gradle 中没有智能提示,也不能跳转到这些变量,局限性过高是个硬伤,那么如今有更好的解决方案吗?答案是确定的,就是利用 buildSrc 来更好地管理 Gradle。git

解决方案

首先声明下,该方式在 AS 的 3.3.x 版本以及 3.4.x 版本是不能提供智能提示,推荐使用 3.5-Beta4 及以上的版本,相关 bug 地址传送门:issuetracker.google.com/issues/1230… bug 这里能够看出 AS 团队也是同意使用的,最新的 3.5 正式版相信立刻就会到来了,我现在使用的版本是 3.5-Beta5 版本,一切如斯顺畅,效果图以下所示:github

提示效果图

那么具体怎么操做呢,如今来揭晓其真面目,写过插件的确定知道 buildSrc 这个目录,这个目录存在于项目根目录下,例如我这里就是 AucFrameTemplate/buildSrc,提醒一下,这个是要本身建立的哦,它默认是直接会参与编译,因此不用加入到 setting.gradle 中,具体以下图所示:微信

buildSrc

下面咱们本身来创建它,首先是 .gitignore,这个文件没什么好说的,内容就是 /buildapp

build.gradle 文件以下所示:框架

repositories {
    google()
    jcenter()
}

apply {
    plugin 'groovy'
    plugin 'java-gradle-plugin'
}

dependencies {
    implementation gradleApi()
    implementation localGroovy()
    implementation "commons-io:commons-io:2.6"
}
复制代码

加完这两文件后 sync 下项目后即可以看到 buildSrc 目录下生成了 buildSrc.iml,这就表明 buildSrc 已经参与到项目编译中了。学习

接下来咱们在 buildSrc/src/main/groovy 中建立 Config.groovy 文件,向其中写入以下内容(根据项目本身修改):gradle

class Config {

    static applicationId = 'com.blankj.aucframe'            // TODO: MODIFY
    static appName = 'AucFrame'                             // TODO: MODIFY

    static compileSdkVersion = 27                           // TODO: MODIFY
    static minSdkVersion = 21                               // TODO: MODIFY
    static targetSdkVersion = 27                            // TODO: MODIFY
    static versionCode = 1_000_000                          // TODO: MODIFY
    static versionName = '1.0.0'// E.g. 1.9.72 => 1,009,072 // TODO: MODIFY
}
复制代码

写完后咱们再同步一下项目,如今你能够跳转到 app 中的 build.gradle 中,设置你所须要设置的属性便可,可设置成以下所示:ui

android {
    compileSdkVersion Config.compileSdkVersion
    defaultConfig {
        minSdkVersion Config.minSdkVersion
        versionCode Config.versionCode
        versionName Config.versionName
        applicationId Config.applicationId
        targetSdkVersion Config.targetSdkVersion
    }
}
复制代码

你会发如今输入过程当中是支持智能提示的,也能够支持跳转,如上只是基本的操做,愣着干吗啊,赶忙扣 6 吧,接下来咱们作更刺激的操做。

打个小广告

欢迎加入个人知识星球「基你太美」,我会在星球中分享 AucFrame 框架、大厂面经、AndroidUtilCode 更详尽的说明...一切我所了解的知识,你能够经过支付进入个人星球「基你太美」进行体验,加入后优先观看星球中精华的部分,若是以为星球的内容对自身没有收益,你能够自行申请退款退出星球,也不必加我好友;若是你已肯定要留在个人星球,能够经过扫描以下二维码(备注:基你太美+你的星球昵称)加我我的微信,方便我后续拉你进群(PS:进得越早价格越便宜)。

个人二维码
相关文章
相关标签/搜索