android studio中gradle的常见定义与引用

示例一:签名信息

gradle.properties 定义签名信息

此处tinker.jks文件放在根目录,与gradle.properties同级目录

KEY_FILE_PATH=tinker.jks
KEY_ALIAS=tinker
KEY_PASSWORD=123456
KEY_STORE_PASSWORD=123456

build.gradle 引用


signingConfigs {
    tinker {
        keyAlias KEY_ALIAS
        keyPassword KEY_PASSWORD
        storeFile file(KEY_FILE_PATH)
        storePassword KEY_STORE_PASSWORD
    }
}

buildTypes {
    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.tinker
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.tinker
    }
}

示例二 APP版本信息

自定义version.properties 并定义版本信息

VERSION_NAME=1.0.1
VERSION_CODE=101

build.gradle 引用

//获取版本号
def verCode() {
    def versionPropsFile = file("../version.properties")
    if (versionPropsFile.canRead()) {
        Properties versionProps = new Properties()
        versionProps.load(new FileInputStream(versionPropsFile))

        return versionProps['VERSION_CODE'].toInteger()
    } else {
        throw new GradleException("Could not read gradle.properties")
    }
}

//获取版本名
def verName() {
    def versionPropsFile = file("../version.properties")
    if (versionPropsFile.canRead()) {
        Properties versionProps = new Properties()
        versionProps.load(new FileInputStream(versionPropsFile))

        return versionProps['VERSION_NAME']
    } else {
        throw new GradleException("Could not read gradle.properties")
    }
}


android{
    defaultConfig {
        applicationId "com.xq.mybuglyhoxfix"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode verCode()
        versionName verName()
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        ndk {
            //设置支持的SO库架构
            abiFilters 'armeabi' //, 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
        }
    }
}

示例三:依赖的版本信息

项目的build.gradle 定义版本号

ext {
    compileSdkVersion = 27
    buildToolsVersion = "27.0.3"
    minSdkVersion = 16
    targetSdkVersion = 27

    supportLibraryVersion = "27.1.1"
}

module的build.gradle 引用

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
    defaultConfig {
        //...
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0.0"
        //...
    }
}

ext {
    arch = "1.1.1"
    retrofit_version = "2.4.0"
}

dependencies {
    implementation "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion"
    implementation "com.android.support:design:$rootProject.ext.supportLibraryVersion"
    implementation "com.android.support:cardview-v7:$rootProject.ext.supportLibraryVersion"
    implementation "com.android.support:palette-v7:$rootProject.ext.supportLibraryVersion"
    
    implementation "android.arch.lifecycle:runtime:$arch"
    
    implementation "com.squareup.retrofit2:converter-gson:${retrofit_version}"
    

示例四: 打包时间

module的build.gradle中:

def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}


android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 13
        versionName "1.3.1"
        multiDexEnabled true
    }
  
    buildTypes {
        release {
            //混淆
            minifyEnabled true
            //Zipalign优化
            zipAlignEnabled true
            // 移除无用的resource文件
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //apk命名
            applicationVariants.all { variant ->
                //variant.outputs.each { output ->                  //3.0以下
                variant.outputs.all { output ->                     //3.0以上
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 输出apk名称为release_v0.1_2017-02-26.apk
                        def fileName = "release_v${defaultConfig.versionName}_${releaseTime()}.apk"
                       //output.outputFile = new File(outputFile.parent, fileName)    //3.0以下     
                       outputFileName = fileName         //3.0以上
                    }
                }
            }
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值