Android发展这么多年,as已成为主流开发IDE,as与es的最大区别是加入了gradle,那么gradle的一些常用配置是怎样的呢,下面给出讲解。

AS中gradle的安装配置

as中gradle有两个选项,一是选择默认位置,一个是自定义位置,如下图:

关于Gradle的一些常用知识_gradle

首先说说自定义位置,比较简单。我们可以先下载想要的gradle版本,然放在自己想放的位置,然后Gradle home选择刚才的路径就可以了。
接下来说说默认路径,很多人找不到默认的gradle放在哪里,请看service directory path栏,那里就是默认的路径,只不过进入那里以后还得往下翻,

C:\Users\Administrator\.gradle\wrapper\dists\gradle-3.3-all\55gk2rcmfc6p2dg9u9ohc3hw9\gradle-3.3

我安装的是3.3版本,这里的路径就是配置gradle环境变量的路径,关于配置环境变量请参考我的上一篇博客Android多渠道打包以及发布方法

路径配置好后,还需最后一步:项目的gradle配置

关于Gradle的一些常用知识_自定义_02

至此gradle在AS就安装配置完毕了

gradle的常用代码配置方法

gradle是我们编译打包的工具,那么如何进行代码配置呢。默认情况下创建一个工程后,gradle会进行一些基本配置,我们要在这个基础配置上增加一些有用的配置信息
首先,配置签名工具

关于Gradle的一些常用知识_自定义_03

配置好后会自动在gradle里增加相关代码

接着配置buildtype,

buildTypes {
        debug {
            // buildConfigField 自定义配置默认值
            buildConfigField "boolean", "LOG_DEBUG", "true"
            buildConfigField "String", "API_HOST", "\"http://api.test.com\""//API Hos
            versionNameSuffix "-debug"
            minifyEnabled false
            //是否zip对齐
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.debug
        }

    release {
        // buildConfigField 自定义配置默认值
        buildConfigField "boolean", "LOG_DEBUG", "false"
        buildConfigField "String", "API_HOST", "\"http://api.release.com\""//API Host
         是否进行混淆
        minifyEnabled true
        zipAlignEnabled true
        // 移除无用的resource文件
        shrinkResources true
        //混淆规则文件
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.release

        applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def outputFile = output.outputFile
                if (outputFile != null && outputFile.name.endsWith('.apk')) {
                    // 输出apk名称为boohee_v1.0_2015-06-15_wandoujia.apk
                    def fileName = "boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                    output.outputFile = new File(outputFile.parent, fileName)
                }
            }
        }
    }
}

友盟多渠道配置

// 友盟多渠道打包
productFlavors {
    wandoujia {}
    qihu360 {}
    baidu {}
    xiaomi {}
    tencent {}
    taobao {}
}

productFlavors.all { flavor ->
    flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}

基本常用的就这些。剩下的依赖配置相信大家都会的。