AndroidStudio3.0+利用Gradle进行自动化打包

2020-03-04  本文已影响0人  maiduoduo

一直以来,对于某些频繁进行打包工作的业务部开发人员来说,打包工作不仅繁琐冗余而且费时费力。如何快速、高效的解决频繁出包以及提高生产效率解放生产力是我们一直在思考的问题。有没有一种办法比如我只想要双击桌面快捷方式然后就打包成APK 接着在保存到自定义盘符路径? 答案是有的。我们知道Android Studio是基于Gradle来进行快速构建项目,Gradle本质是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。 由于一些论坛上的文章是基于Android2.X版本来进行解释说明但是笔者通过这几天的实战(Android Studio版本是3.0以上)发现网上的一些办法已经用不了且新版本自然而然增加了一些之前未提及的新特性,所以本文主要是针对Android Studio3.0版本以上以及Gradle进行一些基本的内容介绍以及如何通过组合技巧实现快速打包;以及针对某一些特定的开发场景如何通过 Java + Gradle去思考并解决问题)。

                                      - 引自其他技术人员文章

来自灵魂画手的灵魂描述:

gradle自动化打包-释放不必要时间成本.png


场景
当前测试环境
    IDE:Androidstudio 3.2.0
    Gradle:gradle4.6 (https\://services.gradle.org/distributions/gradle-4.6-all.zip)
 
sp20200302_135558.png
配置

1.项目的app下的build.gradle文件下配置

gradle下android{}的配置 如上配置 签名文件放到app根目录下即可
由于Android 7.0加入了新的签名机制(也就是V2签名) 因此我们可以直接在debug和release标签中加入
v1SigningEnabled true 、v2SigningEnabled true 规避使用风险


android {
          //自动化打包签名文件配置
        signingConfigs {
              release {
                   storeFile file('/xxxx.jks') //签名文件app根目录下,app.keystore为你签名文件的全称,例如:xxxx.jks
                   storePassword "xxxx" //签名文件密码
                   keyAlias "xxxx" //签名文件别名
                   keyPassword "xxxx" //签名文件别名密码
                   v1SigningEnabled true
                   v2SigningEnabled true
               }
               debug {
                   storeFile file('/xxxx.jks')
                   storePassword "xxxx"
                   keyAlias "xxxx"
                   keyPassword "xxxx"
                   v1SigningEnabled true
                   v2SigningEnabled true
             }
}

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

}


Gradle本地环境变量配置

gradle自动化打包依赖于AndroidStudio中Terminal命令进行打包,其中gradle是最重要的指令者
所以要先在环境变量中加入Gradle声明才可以操作gradle命令。

1.环境变量配置

GRADLE_HOME.png

1.gradle路径必须到bin的根目录
2.添加gradle版本根据自己项目当前使用的版本决定配置的gradle的路径
本文中使用的是Gradle4.6版本,文件夹路径则为gradle-4.6/bin

sp20200304_162238.png sp20200304_162311.png
//gradle路径

C:\Users\Dell\.gradle\wrapper\dists\gradle-4.6-all\bcst21l2brirad8k2ben1letg\gradle-4.6\bin

PATH中加入Gradle_home变量.png

2.环境变量配置结果测试

cmd/Terminal命令测试:gradle -v
注意:如果依然显示无法找到,请关闭Androidstudio,并且重启电脑后生效。

cmd命令行测试Gradle环境变量配置结果.png
Android studio 自带的命令窗口进行打包操作
//Release 版本
gradle assembleRelease 
//Debug版本
gradle assembleDebug

打包 打包后输出路径及apk文件.png
拓展

1.对输出的apk文件定义输出的位置和名字


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

            //自定义打包时apk名字和输出位置
            android.applicationVariants.all { variant ->
                variant.outputs.all { output ->
                    def fileName
                    if (outputFileName != null && outputFileName.contains('.apk')) {
                        if (variant.buildType.name.equals('release')) {
                            //输出示例:apk名字-版本号-版本名-输出时间-运行环境(debug/release/...).apk                       
                                fileName= "apk名字-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime()}-release.apk"
                                // 自定义输出路径
                                variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + File.separator + "release")
                                println "-----输出apk地址------:" + outputFile.parentFile.absolutePath + java.io.File.separator + fileName
                            } else if (variant.buildType.name.equals('debug')) {
                                fileName= "apk名字-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime()}-debug.apk"
                                //也可以在此添加debug版本的输出位置和输出名字
                                //...
                                //...
                            }
                            outputFileName = fileName
                        }
                    }
            }
                
        }
        debug {
            signingConfig signingConfigs.debug
        }
            

    }
}

2.重新编译项目后,在Terminal中进行命令打包即可,可以查看新输出位置。


新输出apk位置及apk文件.png
注意
  • 尽量使用AndroidStudio3.0+版本
  • 尽量适配6.0+版本以上手机
    毕竟现在Android发布版本较多,对于6.0以下也已不再普遍常用,请尽快使用AndroidStudio3.0+/4.0+,磨刀不误砍柴工。
上一篇 下一篇

猜你喜欢

热点阅读