android studio build.gradle中配置实现自动签名打包,重命名apk,拷贝apk到指定目录
序言
目前android开发基本上都是在android studio上进行的,而android studio是使用的gradle进行项目构建的,不同于之前使用eclipse时使用的ant脚本构建,gradle的语法更加的灵活强大,gradle可以使用groovy进行编写,但是本文的目的不是为了介绍groovy语法,这方面的资料网上有很多,推荐一篇http://www.infoq.com/cn/articles/android-in-depth-gradle/,这篇文章介绍的非常的详细,有需要的同学可以先看下这篇文章。
学习gradle,需要从如下三个方面进行学习:
- 学习Groovy(http://www.groovy-lang.org/api.html)
- 学习Gradle DSL(https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html)
- 学习Android DSL和Task(http://google.github.io/android-gradle-dsl/current/index.html)
名词解释: DSL:domain special language(领域特定语言)
背景
使用android studio正常创建项目后,AS会自动给我们配置好项目根目录和各个module的build.gradle文件,正常我们只需要在各个gradle文件中添加我们想要的依赖和混淆等信息即可,
但这时打包时,就需要使用AS的图形化操作build–>generate signed apk等来生成apk,并且生成的apk的名称默认是”module名-debug/release.apk”,通常apk的名称在每个公司中都是有相应的规范的,所以打包后的apk就需要手动去重命名,想想这些操作是不是就觉得相当的繁琐,作为一个超级懒的程序猿怎能容忍。因此才有了如下的解决方案。
本文内容
本文只是针对如下具体内容进行展开,其他更高级的gradle配置后续会再更新。也希望这篇文章能起到抛砖引玉的效果。
- 配置自动签名
- 重命名apk文件
- 拷贝apk文件到指定目录
配置自动签名
根据google开发文档中的描述https://developer.android.google.cn/studio/publish/app-signing.html#release-mode,可以进行如下配置:
在项目的根目录下创建一个名为 keystore.properties 的文件。此文件应当包含您的签署信息,如下:
storePassword=123456 keyPassword=123456 keyAlias=zhang storeFile=../keystore/xxx.keystore
在模块的build.gradle文件中,android{} block的前面添加加载上面的配置文件的代码, 如下:
def keystorePropertiesFile = rootProject.file("keystore.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android{ ... }
然后在模块的build.gradle的android{} block中的signingConfigs{} block中配置签名信息, 如下:
signingConfigs{ release{