Android Gradle 配置选项合集

//让gradle 引入构建安卓app的插件

apply plugin: 'com.android.application'

转载地址:https://www.cnblogs.com/duwei/p/android_gradle_configuration.html

//自定义变量, 使用的时候不需要 ext 前缀

ext {

    minSdkVersion = 15

    prop2 = "foo"

}

 

//自定义变量

def customProp2 = ["targetSdkVersion":23, "prop2":"bar"];

 

//自定义变量

// 根据日期自动生成build号

def calendar = Calendar.getInstance();

def tt = String.format("%d%02d%02d%02d",

        calendar.get(Calendar.YEAR),

        calendar.get(Calendar.MONTH)+1,

        calendar.get(Calendar.DAY_OF_MONTH),

        calendar.get(Calendar.HOUR_OF_DAY));

 

// 读取local.properties文件

def Properties properties = new Properties()

properties.load(project.rootProject.file('local.properties').newDataInputStream())

 

android {

    compileSdkVersion 24

    buildToolsVersion "24.0.0"

 

    //签名选项

    signingConfigs {

        demoSignCfg {

            keyAlias PROPERTY_FROM_GRADLE.PROPERTIES

            //读取配置

            keyPassword properties.getProperty("key.password")

            storeFile file('demo.keystore')

            storePassword properties.getProperty("key.password")

        }

    }

 

    //编译选项

    compileOptions {

        //使用jdk1.8 编译

        sourceCompatibility JavaVersion.VERSION_1_8

        targetCompatibility JavaVersion.VERSION_1_8

    }

 

    //代码检查选项

    lintOptions {

        //检查发布构建

        checkReleaseBuilds rootProject.ext.checkReleaseBuilds

        //遇到错误停止

        abortOnError false

    }

 

    //打包选项

    packagingOptions {

        //去除的文件

        exclude 'META-INF/LICENSE'

        exclude 'META-INF/LICENSE.txt'

        exclude 'META-INF/NOTICE'

        exclude 'META-INF/NOTICE.txt'

    }

 

    //资源打包选项

    aaptOptions {

        //不压缩的文件

        noCompress 'foo', 'bar'

        //过滤文件

        ignoreAssetsPattern "!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"

    }

 

    //编译dex选项

    dexOptions {

        //堆栈内存最多4g

        javaMaxHeapSize "4g"

    }

 

    //配置

    configurations {

        //去掉所有的 com.android.support:support-annotations 依赖

        all*.exclude group: 'com.android.support', module: 'support-annotations';

    }

 

    //默认全局配置选项

    defaultConfig {

        applicationId "com.example.gradle_test"

        minSdkVersion customProp.minSdkVersion

        targetSdkVersion customProp2.targetSdkVersion

        //使用生成的版本号

        versionCode Integer.parseInt(tt)

        versionName "1.0"

 

        //Manifest 里用的占位符: <... android:label="${activityLabel}" />

        manifestPlaceholders = [ activityLabel:"defaultName"]

     //设置BuildConfig 字段

     buildConfigField "String", "BASE_URL", '"https://www.baidu.com/"'

    }

 

    //构建变种, flavor 和 defaultConfig类型相同

    productFlavors {

        //变种1

        flavor1 {

            packageName "com.example.flavor1"

            versionCode 20

       //覆盖defaultConfig的字段

        buildConfigField "String", "BASE_URL", '"https://www.baidu.com/"'

        }

 

        flavor2 {

 

        }

    }

 

    //配置各种目录

    sourceSets {

        //主要

        main {

            manifest.srcFile 'AndroidManifest.xml'

            java.srcDirs = ['src']

            resources.srcDirs = ['src']

            aidl.srcDirs = ['src']

            renderscript.srcDirs = ['src']

            res.srcDirs = ['res']

            assets.srcDirs = ['assets']

            jniLibs.srcDirs = ['libs']

        }

 

        //测试资源路径

        instrumentTest.setRoot('tests')

 

        debug.setRoot('build-types/debug')

        release.setRoot('build-types/release')

    }

 

    //构建类型

    buildTypes {

        //debug类型(只是个名字而已)

        debug {

            //app id 后缀: com.example.app.debug

            applicationIdSuffix ".debug"

        }

 

        //发布类型(只是个名字而已)

        release {

            //关闭混淆

            minifyEnabled false

            //使用的混淆文件

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

 

            //签名选项

            signingConfig signingConfigs.demoSignCfg<br>

       //移除无用资源<br>       

            shrinkResources true 

 

            //版本名后缀

            versionNameSuffix ".0"

 

        //指定打包文件名

       applicationVariants.all { variant ->

         variant.outputs.each { output ->

         def outputFile = output.outputFile

           if (outputFile != null && outputFile.name.endsWith('.apk')) {

             //输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk

             def fileName = "apk_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"

             output.outputFile = new File(outputFile.parent, fileName)

           }

         }

       }

 

           //过滤abi库

           ndk {

               //只打包如下平台的so

               abiFilters "x86", "armeabi-v7a", "armeabi", 'mips'

           }

        }

 

        //自定义

        jnidebug {

            // 继承自上面的debug.

            initWith debug

 

            applicationIdSuffix ".jnidebug"

            jniDebuggable true

        }

    }

 

    //依赖仓库

    repositories {

        maven { url "https://jitpack.io" }

    }

}

 

//依赖管理

dependencies {

    //编译/运行时依赖

    compile fileTree(dir: 'libs', include: ['*.jar'])

    //$rootProject.ext 指的是 项目的那个build.gradle里面定义了一个ext 变量

    compile ("com.android.support:design:$rootProject.ext.SupportVersion"){

        //不引用如下包

        exclude module: 'support-v4'

        exclude module: 'appcompat-v7'

        //不传递引用

        transitive false

    }

1

2

3

4

5

6

compile (project(":libray")){

     //不引用如下包

     exclude module: 'support-v4'

     //不传递引用

     transitive false

 }

1

//测试依赖 testCompile 'junit:junit:4.12' //外部提供, 不打包 provided 'com.android.support:appcompat-v7:23.4.0' //falvor1需要的依赖, f1Compile, f1Provided..... flavor1Compile 'com.android.support:appcompat-v7:24.0.0' } //清理构建后资源的task task clean(type: Delete) { delete rootProject.buildDir }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值