Android中Gradle常用配置

前言
本文记录了一些常用的gradle配置,基本上都是平时开发中可能会使用到的,如果有新内容会不定时更新,附官网

1.依赖库版本写法
不推荐写法:

dependencies {
   
    compile 'com.example.code.abc:def:2.+' // 不推荐的写法
}

这样写虽然可能保证每次都保持库是最新的,但同时会有以下更严重的问题:
1)多人开发时,每个人可能会得到不同的最新版本,带来潜在的隐患;
2)库更新后,可能会由于库的内部代码的修改而引起不易发现的BUG;
3)每次build时会联网检查,增加build时间。

推荐写法(固定版本):

dependencies {
   
    compile 'com.example.code.abc:def:2.0.1' // 固定版本,有需要时再进行修改
}

2.全局设置编码
在最顶层的build.gradle中添加:

allprojects {
   
    repositories {
   
        jcenter()
    }

    tasks.withType(JavaCompile){
   
        options.encoding = "UTF-8"
    }
}

3.设置Java编译版本
在module中的build.gradle中:

android {
   
    compileOptions {
   
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

全局配置则在最顶层的build.gradle中:

allprojects {
   
    repositories {
   
        jcenter()
    }

    tasks.withType(JavaCompile) {
   
        sourceCompatibility = JavaVersion.VERSION_1_7
        targetCompatibility = JavaVersion.VERSION_1_7
    }
}

4.Release版本的密码配置
密码、签名等敏感信息可以统一进行存放,不进行硬编码。写在gradle.properies中,可以随意的定义key-value形式,此文件是gradle自动引入的。
例:gradle.properies文件如下

STORE_FILE_PATH ../test_key.jks
KEYSTORE_PASSWORD 123456
KEY_ALIAS abc
KEY_PASSWORD 654321
PACKAGE_NAME_SUFFIX .test
TENCENT_AUTHID aaa0123
module的build.gradle文件:

signingConfigs {
   
    release {
   
        try {
   
              storeFile file(STORE_FILE_PATH)
              storePassword STORE_PASSWORD
              keyAlias KEY_ALIAS
              keyPassword KEY_PASSWORD
        }
        catch (ex) {
   
            throw new InvalidUserDataException("You should define KEYSTORE_PASSWORD and KEY_PASSWORD in gradle.properties.")
        }
    }
}

5.设置第三方maven仓库
在顶层的build.gradle中:

allprojects {
   
    repositories {
   
        maven {
   
            url 'http://repo.xxxx.net/nexus/'
            name 'maven name'
            credentials {
   
                username = 'username'
                password = 'password'
            }
        }
    }
}

其中name和credentials是可选项,视具体情况而定。如使用阿里云仓库如下:

allprojects {
   
    repositories {
   
        maven {
    
           url "http://maven.aliyun.com/nexus/content/groups/public/" 
       }
    }
}

6.自动删除unaligned apk
每次打包后都会有一个unaligned的apk文件生成,这个文件对于开发来说无意义,可以配置一个task来删除它。
写在module的build.gradle中:

dependencies {
   
    compile fileTree(include: ['*.jar'], dir: 'libs')
}
android.applicationVariants.all {
    variant ->
    variant.outputs.each {
    output ->
        // 删除unaligned apk
        if (output.zipAlign != null) {
   
            output.zipAlign.doLast {
   
                output.zipAlign.inputFile.delete()
            }
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值