android gradle自动构建大总结

本文详细介绍了如何通过Gradle实现Android应用的自动构建,包括自动打包测试和线上版本,自动配置key、环境和版本号自增,以及apk的输出目录定制。通过改进build.gradle脚本,可以避免手动修改配置,提高构建效率。
摘要由CSDN通过智能技术生成

一、自动构建背景

   日常出版本和线上出版本时,需要手动修改一些配置,包括key配置、线上/测试环境配置、版本号增加等,过程繁琐。所以对构建脚本进行改进,达到自动构建目的。

   PS:build.gradle 完整脚本在文章末尾

 


二、自动打包说明

1. 打测试包

   命令:gradle  assembleTest

2. 打线上包

   命令:gradle  assembleRelease

3. 根据需要修改

(1)版本号,前三个字段在build.gradle修改

  版本号的第四个字段初始值在conf.properties文件修改:VERSION_NAME字段

  该字段值每打包一次,自增1

(2)输出目录设置

    在conf.properties文件修改: OUT_APK_PATH字段

4. debug时如果不希望版本号自增,有两种方式

 (1)在strings.xml中,把下面的app_version_value直接改为版本号,如:1.1.1.2

<string name="app_version">app_version_value</string>

(2)在build.gradle脚本中,getVersionName函数里,在if判断条件中,把两个debug去掉

if(Consts.buildTypeOffline in runTasks || Consts.buildTypeDebug in runTasks || Consts.buildTypeRunDebug in runTasks) { //打测试包时才自增版本号, 线上包的版本号手动改
            targetVerName += "." + (++verName);  //版本号自增1
            versionProps[Consts.verNamePropKey] = verName.toString();
            versionProps.store(versionPropsFile.newWriter(), null) //增1后的版本号写入properties文件
        }

 

三、脚本说明

1. key配置

老的方式:在Manifest文件中,直接写key值,如下:

<meta-data
          android:name="YZ_APP_ID"
          android:value="XXXXXXXXXXXXXX"/>

新的方式:通过变量的形势定义在Manifest中,build.gradle中根据不同的buildType,设置不同的值,如下,Manifest中定义${YZ_APP_ID}

<meta-data
            android:name="YZ_APP_ID"
            android:value="${YZ_APP_ID}" />


在build.gradle中配置如下,打包时就会根据当前的buildType使用不同的值,比如打线上包 assembleRelease,则使用1处的值,打测试包assembleOffline,则使用2处的值

    buildTypes {
        release { //线上版本配置
	   //下面的值根据自己项目需要进行修改
            manifestPlaceholders = [YZ_APP_ID:"xxxxxxxxx", YZ_APP_SECRET:"xxxxxxxxxxxxxxxx", RONG_CLOUD_APP_KEY:"xxxxxxxxxx"]
            minifyEnabled true
            zipAlignEnabled true  //开启Zipalign优化
            shrinkResources true  //移除无用的resource文件,此项只有在开启混淆时才生效
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
            signingConfig signingConfigs.release
        }
        offline { //测试版本配置
            manifestPlaceholders = [YZ_APP_ID:"xxxxxxxxxxxxxx", YZ_APP_SECRET:"xxxxxxxxxxxxxxx", RONG_CLOUD_APP_KEY:"xxxxxxxxxxxxx"]
            minifyEnabled true
            zipAlignEnabled true  //开启Zipalign优化
            shrinkResources true  //移除无用的resource文件,此项只有在开启混淆时才生效
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
            signingConfig signingConfigs.release
        }

        debug {//开发版本配置
            manifestPlaceholders = [YZ_APP_ID:"xxxxxxxxxxxxxx", YZ_APP_SECRET:"xxxxxxxxxxxxxxxxx", RONG_CLOUD_APP_KE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值