①:sttdio生成debug版的apk
②:生成签名的apk
这样就生成了一个签名的apk
多渠道打包:
由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。
友盟多渠道打包
废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:
<meta-data
android:name="UMENG_CHANNEL"
android:value="Channel_ID" />
里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。
- 第一步 在AndroidManifest.xml里配置PlaceHolder
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
- 第二步 在build.gradle设置productFlavors
android {
productFlavors {
xiaomi {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
}
_360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "_360"]
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
}
}
或者批量修改
android {
productFlavors {
xiaomi {}
_360 {}
baidu {}
wandoujia {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
到了这里之后分为两种做法
一: 直接生成打包签名的apk(多渠道)
这样也可以到多个渠道包,并签名了。
二:测试代码添加完毕之后,我们现在点击AS右侧的Gradle,我们此时就可以看到我们刚才添加的xiaomi、qihu360、baidu、wandoujia都出现了,如下图:(这个方法必须之前要要有签名文件,不然下面store file没办法填)
(1)生成debug版的apk
(2)生成没有签名的apk
所以在这之前必须配置签名
这样在build里面会生成
配置完成以后,要引入这样一段话(不然下面还是生成不了签名的apk)
//指定签名为release
signingConfig signingConfigs.release
双击下面的assembleRelease 就可以得到我们想要的apk