盒子
盒子
Posts List
  1. 一.gradle项目属性配置
  2. 二.升级gradle版本
    1. 1.修改gradle-wrapper.properties文件
    2. 2.通过module setting修改
    3. 3.定义一个wrapper任务修改
  3. 二.在模块之间共享配置
  4. 三.apk签名
    1. 1.通过gradle命令给apk签名
    2. 2.通过android studiog给apk签名
      1. 1.生成签名
      2. 2.配置签名
      3. 3.选中打包签名配置
      4. 4.快捷打签名包
    3. 3.查看apk签名信息

gradle实践系列:android gradle插件(2)

一.gradle项目属性配置

自定义属性有几种方式分别是

  • 在gradle.properties中定义
  • 在命令行执行时使用-p 参数
  • 在build.gradle脚本中使用extra标签

推荐使用build.gradle定义属性

ext {
def AAVersion = '4.0-SNAPSHOT'
}
dependencies{
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
}

定义的属性,可以在双引号中,用$符号进行引用,注意单引号是不可以的。

二.升级gradle版本

有三种方式升级gradle版本

1.修改gradle-wrapper.properties文件

distributionUrl修改为对应的版本地址

distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-all.zip

2.通过module setting修改

image

3.定义一个wrapper任务修改

task wrapper(type:Wrapper){
gradleVersion = 2.14
}

执行gradlew wrapper,会自动修改gradle-wrapper.properties文件。

二.在模块之间共享配置

allprojects是gradle Project DSL中定义的函数,用于定义对所有模块生效的配置

allprojects {
repositories {
jcenter()
}
}

subprojects定义了项目依赖的模块公共的配置

subprojects {
apply plugin: 'com.android.library'
}

三.apk签名

1.通过gradle命令给apk签名

apk在发布之前需要先签名,android会自动给debug版本的apk签名,签名文件位于用户目录的.android目录下,比如windows上是c:/Users/Administrator/.android/debug.keystore

可以通过命令查看keystore文件的信息

keytool -list -keystore debug.keystore

密钥库类型: JKS
密钥库提供方: SUN
您的密钥库包含 1 个条目
androiddebugkey, 2016-2-6, PrivateKeyEntry,
证书指纹 (SHA1): 63:99:1F:00:FC:C2:2C:8C:10:C9:EE:E3:64:14:30:12:51:B1:3E:7B

这个debugkey用于将debug版本的apk签名,这样debug版本的apk才能被安装到模拟器或者手机上面。

用keytool工具生成签名

keytool -genkey -v -keystore myapp.keystore -alias my_alias -keyalg RSA -keysize 2048 -validity 10000

生成myapp.keystore文件添加到gradle中,在app/build.gradle中添加:

android {
signingConfigs {
release {
keyAlias 'my_alias'
keyPassword 'password'
storeFile file('/Users/kousen/keystores/myapp.keystore')
storePassword 'password'
}
}
}

然后打包生成带签名的apk

gradlew assembleRelease

2.通过android studiog给apk签名

1.生成签名

android stuido 主菜单 build - generate signed apk

image

点击createNew 新建一个keystore文件

image

2.配置签名

然后在moduleSetting中选中signing栏目,输入keysotre信息

image

3.选中打包签名配置

image

做完以上三步,我们会看到app/build.gradle文件中会自动添加
signingConfigs语句块,并且在buildTypes中设置了signingConfig。我们可以通过

gradlew assembleRelease

打包出带签名的release包

4.快捷打签名包

如果我们不用gradle打签名包,也可以直接通过build-generate signed apk
选择keystore文件,点下一步,buildType选中release,点击finish来生成签名的apk包。

3.查看apk签名信息

将apk解压,取出META-INFO/CERT.RSA

keytool -printcert -file META-INF/CERT.RSA

查看我的apk,信息如下:

所有者: CN=hucaihua, OU=lamber, O=lamber, L=bj, ST=bj, C=cn
发布者: CN=hucaihua, OU=lamber, O=lamber, L=bj, ST=bj, C=cn
序列号: 52dbfd91
有效期开始日期: Tue Jan 17 10:44:25 CST 2017, 截止日期: Sat Jun 04 10:44:25 CST
证书指纹:
MD5: DE:2F:D2:C1:3F:C9:B3:12:13:82:E2:6B:7F:87:70:A7
SHA1: EB:BC:6E:C5:00:20:B3:E2:71:C5:28:33:16:61:48:C4:77:3A:20:BD
SHA256: 1C:CE:FE:63:FD:7C:5B:B0:8E:00:9F:BB:AF:5D:D4:F4:47:71:66:47:27:
签名算法名称: SHA256withRSA
版版本本: 3
扩展:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 5C EE 4F C8 E1 4B BE FF 2A D0 75 0B 5C 71 42 1B \.O..K..*.u.\qB.
0010: ED 57 F7 7C .W..
]
]


下一篇

gradle实践系列:android gradle插件(3)

支持一下
扫一扫,支持牛头码农