【Android】Gradle实现自动化打包

本文详细介绍如何通过Gradle环境配置和代码配置,实现Android项目的一键打包功能,包括JDK和Gradle环境变量设置,签名配置,以及指定APK输出路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目的:通过一行命令实现Android 打包,生成apk

一、Gradle环境配置

1、jdk环境需要配置好(这点不在赘述)

配置Gradle之前要确保安装了Java环境,要求在JDK 1.6以上,并且配置了环境变量JAVA_HOME,查看Java版本可以在终端输入

2、Gradle环境变量:

windows配置gradle环境变量

(1)找到自己Android Studio目录下的gradle文件(也可以打单独下载:下载地址,记得要下载all版本的,里面包含了Gradle SDK 所有相关的内容,包括源代码、文档、示例等)。地址例如:(C:\Program Files\Android\Android Studio\gradle\gradle-4.1\bin )
按照配置JDK那样首先将其编辑到系统变量 GRADLE_HOME:

!](https://img-blog.csdnimg.cn/20200606145631339.png)

(2)步骤一完成以后将 GRADLE_HOME 添加到系统变量,如下图
在这里插入图片描述

(3)命令窗口 输入 gradle -version, 如果可以显示版本信息即为环境配置成功

Mac配置gradle环境变量:

(1)下载获取路径同windows,将下载的gradle解压到指定路径,例如(/Users/android/Documents/AndroidStudio/gradle-4.6)

(2)打开.bash_profile文件

open -e .bash_profile

(3)将GRADLE_HOME的值替换成你的Gradle路径,在.bash_profile文件中输入下面内容

GRADLE_HOME=/Users/android/Documents/AndroidStudio/gradle-4.6
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

(4)保存.bash_profile文件,在终端上执行更新.bash_profile文件

source ~/.bash_profile

(5)验证。在终端上执行gradle -version,如下图所示,代表成功

在这里插入图片描述

二、Gradle 代码配置

1、APP目录下的build.gradle

这个文件是我们经常用的配置性文件,配置签名信息,渠道信息,配置各种第三方库以及依赖等等,如下:

defaultConfig{ } 默认配置,是ProductFlavor类型
 sourceSets{ } 源文件目录设置,是AndroidSourceSet类型。
 buildTypes{ } BuildType类型
 signingConfigs{ } 签名配置,SigningConfig类型
 productFlavors{ } 产品风格配置,ProductFlavor类型
 testOptions{ } 测试配置,TestOptions类型
 aaptOptions{ } aapt配置,AaptOptions类型
 lintOptions{ } lint配置,LintOptions类型
 dexOptions{ } dex配置,DexOptions类型
 compileOptions{ } 编译配置,CompileOptions类型
 packagingOptions{ } PackagingOptions类型
 jacoco{ } JacocoExtension类型。 用于设定 jacoco版本
 splits{ } Splits类型

。。

2、signingConfigs签名配置

配置签名信息:

 signingConfigs {
        release {
            keyAlias 'dadi'//别名
            keyPassword 'dadipsw'//别名密码
            storeFile file('../dianjing.jks')//jks路径
            storePassword 'dadipsw'//密码
            v1SigningEnabled true//v1签名
            v2SigningEnabled true//v2签名
        }

//        debug {
//            keyAlias 'dadi'//别名
//            keyPassword 'dadipsw'//别名密码
//            storeFile file('../dianjing.jks')//jks路径
//            storePassword 'dadipsw'//密码
//            v1SigningEnabled true//v1签名
//            v2SigningEnabled true//v2签名
//        }
    }

3、apk输出路径

通常情况下生成的apk默认是 项目 \build\outputs\apk ,我们可以通过设定applicationVariants.all指定apk输出的文件位置

 buildTypes {//配置发布版本和测试版本的一些配置以及混淆文件等
        release {
            shrinkResources true// 去除无用资源
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
//            debuggable true//不采用签名
            signingConfig signingConfigs.release//用release签名
        }

        //输出位置
        applicationVariants.all {
            //获取当前时间的"YYYY-MM-dd"格式。
            def createTime = new Date().format("yyyy-MM-dd HH:mm:ss", TimeZone.getTimeZone("GMT+08:00"))
            //输入到指定文件夹
         it.getPackageApplication().outputDirectory = new File('/Users/android/project/LXGame/app/build/outputs/GradleApks' + "/${createTime}")
        }
    }

三、Gradle 命令打包

进入项目根路径下
在这里插入图片描述
或者是在Android studio Terminal中输入命令:

1:编译所有productFlavor及对应所有buildType的apk:
  gradle assemble //仅仅执行项目打包所必须的任务集
  gradle build //执行项目打包所必须的任务集,以及执行自动化测试,所以会较慢
如果当前Project包含多个Module,在Project根目录执行gradle assemble会编译所有的Module
2:编译指定productFlavor及buildType的apk
  gradle assemble[productFlavor][buildType] //如果缺失某参数,则会把该参数的所有配置都进行编译,即如果运行gradle assembleflavor,则会编译出flavor所有buildType的apk
  例如:
  gradle assemble
  gradle assembleflavorRelease
  gradle assembleflavorDebug
注意:gradle支持命令缩写,上面两个命令也可以写成如下格式
$gradle a
$gradle ass
$gradle aR
$gradle assflavorR
$gradle aD
$gradle assflavorD

打包成功
在这里插入图片描述
输出到指定文件夹
在这里插入图片描述
在这里插入图片描述

Android ant 自动打包脚本:自动替换友盟渠道、版本号、包名,而不影响代码(修改的是临时目录中的代码)。 如何集成到我的项目里 前提:了解android官方文档,在项目目录中执行官方命令能打包,比如常见的打包步骤: android update project -p . -s -t "android-21" ant debug 如果是用Linux系统,则不用记上面这么长的命令,下载本项目中的Makefile,放到项目目录中,然后执行: make ant debug 如果ant debug打包能通过,则可以使用下面的自动打包。 下载custom_rules.xml,放到项目目录中,然后执行: ant auto-debug -Dversion=time 即可自动打包,生成的包在./bin/中。 如果想打release包,下载ant.properties,修改其中的密码等配置,然后执行: ant auto-release -DUMENG_CHANNEL=googlePlayStore -Dpackage=com.example.ant.beta 即可。 打包自动更换友盟渠道 确认AndroidManifest.xml中已添加了友盟节点: <meta-data android:name="UMENG_CHANNEL" android:value="debug" /> 然后执行: ant auto-release -DUMENG_CHANNEL=googlePlayStore 即会把AndroidManifest.xml中的友盟渠道替换成googlePlayStore,然后打包。而执行: ant auto-release -DUMENG_CHANNEL=smartisanAppStore 即会打出锤子应用商店的包。 打包自动更换包名 ant auto-release -Dpackage=com.example.ant.beta 即会把包名自动改成com.example.ant.beta。 打包时使用时间作为版本号 ant auto-debug -Dversion=time 把版本号改成时间,然后打包,效果: versionCode是时间戳,比如1390969254 versionName是日期,比如14.1.29.1220 多个参数任意组合 ant auto-release -DUMENG_CHANNEL=googlePlayStore -Dpackage=com.example.ant.beta -Dversion=time 即打出google play的beta包,使用时间作为版本号 debug与release签名 ant auto-debug 即使用debug签名打包(路径~/.android/debug.keystore),请参考http://developer.android.com/tools/publishing/app-signing.html#debugmode ant auto-release 即使用release签名打包,请下载本项目中的ant.properties,修改其中的路径、密码等等,参考http://developer.android.com/tools/building/building-cmdline.html#ReleaseMode
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值