Gradle配置2

本文详细介绍了Android领域中Gradle的配置,包括compileOptions用于设置Java编译版本,以利用新语言特性;lintOptions允许在lint检查出错时继续编译;Proguard配置用于代码混淆和优化;以及Gradle动态参数配置的三种方式,如System.properties、keyvalue和直接属性引用,以灵活设置脚本参数。

android领域中的可选配置

compileOptions

compileOptions就是配置编译的选项,类似于在最前面声明的compileSdkVersion。但这里是设置Java的编译选项,通常可以在这里指定Java的编译版本,示例代码如下:

compileOptions{
        sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
        targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
    }

指定编译版本,通常是为了使用某些版本中的一些语言新特性。

lintOptions

这个选项用于控制lint代码检查。因为在lint check的时候,编译会因为lint的error而终止,通过设置这个选项,可以在lint check发生error的时候继续编译,代码如下:

lintOptions{
        abortOnError false
    }

构建Proguard

Proguard配置是android的apk混淆文件配置,但它的作用绝对不仅仅是混淆代码。它同样可以精简代码、资源,优化代码结构。也正是这个原因,在新版的android studio中, google将runProguard的参数名改为minifyEnabled,更直白的显示他的作用。它的配置也非常简单,在构建类型中直接配置参数启用即可,代码如下:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }

这样在构建release版本时,系统就会自动进行混淆,而混淆文件的地址,则通过getDefaultProguardFile方法来获取,SDK默认的混淆文件配置模板,在SDK的tools/proguard目录下可以找到,如下图:
这里写图片描述

Gradle动态参数配置

在java程序中,通常会使用.properties文件来配置动态的设置参数,在gradle中也一样,gradle给开发者提供了gradle.properties文件来配置脚本中的动态参数。

System.properties方式

首先,打开gradle.properties文件,添加一下配置:

systemProp.keyAliasPassword=ct123456
systemProp.keyAlias=xys
systemProp.keyStorePassword=ct123456
systemProp.keyStore=demo.jks

这些配置实际上就是之前写死的配置参数,只不过这里把它们配置到了systemProp中。那么在build.gradle脚本中进行引用的时候,就可以通过System.properties[KEY]获取这些参数,代码如下所示:

signingConfigs{
        xys {
            storeFile file(System.properties['keyStore'])
            storePassword System.properties['keyStorePassword']
            keyAlias System.properties['keyAlias']
            keyPassword System.properties['keyAliasPassword']
        }
    }

key\value方式

还可以使用key\value方式来定义。在gradle.properties文件添加以下配置:

xys.keyAlias=xys
xys.keyAliasPassword=ct123456

然后在build.gradle中进行引用时,代码如下所示:

signingConfigs{
        xys {
            storeFile file(System.properties['keyStore'])
            storePassword System.properties['keyStorePassword']

            keyAlias project.property('xys.keyAlias')
            keyPassword project.property('xys.keyAliasPassword')
        }
    }

通过project.property(Key)方法,就可以取出对应的Value。这种方式与使用System.properties的方式基本一样,所以读者可以根据不同情况使用一种即可。

属性方式

前面两种方式,均可以在命令行中设置参数,从而设置给编译指令。如果不需要再命令行中设置参数,那么直接写属性名,同样可以进行引用,代码如下:

pKeyAlias=xys
pKeyAliasPassword=ct123456

这样在build.gradle脚本中就可以直接引用了,代码如下:

signingConfigs{
        xys {
            storeFile file(System.properties['keyStore'])
            storePassword System.properties['keyStorePassword']

            keyAlias pKeyAlias
            keyPassword pKeyAliasPassword
        }
    }

这样设置的效果与前面两种的效果是一样的,区别在于是否支持命令行配置参数。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值