预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共19页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Android使用gradle打包的各种配置
在AS中利用gradle打包,可以高效并且自由地配置各种参数,发布不同的版本。关于配置gradle文件的一些做法,总结为如下。
一.替换AndroidManifest中的占位符
举个例子,在AndroidManifest文件中,我们将极光推送的key值指定为一个占位符
<!--极光KEY--><meta-data
android:name="JPUSH_APPKEY"
android:value="${JPUSH_APPKEY}"/>
在build.gradle文件中,这里介绍3种方法去替换该占位符1.接收gradlewassemble命令输入的自定义参数的值
manifestPlaceholders=[
//默认是正式的极光key
JPUSH_APPKEY:"\""+JPUSH_APPKEY_PARA+"\""
]
2.使用string文件的值
manifestPlaceholders=[JPUSH_APPKEY:"@string/JPUSH_APPKEY"]
3.使用gradle.properties文件的值,具体参考第九
二.独立配置签名信息
签名相关的信息,直接写在gradle不利于安全,我们可以把这些信息写到工程主module根目录下的signing.properties文件,注意这个文件不要添加进版本控制。
KEYSTORE_FILE=你的keystore文件位置
KEYSTORE_PASSWORD=你的keystore文件密码
KEY_ALIAS=你的keystore文件用到的别名
KEY_PASSWORD=你的keystore文件用到的别名的密码
然后在build.gradle中加载这个文件,引用其中的参数就可以了
//加载签名配置的文件Propertiesprops=newProperties()props.load(newFileInputStream(file("signing.properties")))
android{
signingConfigs{
release{
//设置release的签名信息
keyAliasprops['KEY_ALIAS']
keyPasswordprops['KEY_PASSWORD']
storeFilefile(props['KEYSTORE_FILE'])
storePasswordprops['KEYSTORE_PASSWORD']
}
}
...
buildTypes{
debug{
...
signingConfigsigningConfigs.release}
}
...
release{
...
signingConfigsigningConfigs.release}
}
}
}
三.多渠道打包
国内应用市场非常多,为了统计各个应用市场的app下载量和使用情况,我们需要多渠道的打包。
1.配置AndroidManifest.xml以友盟渠道为例,渠道信息一般都是写在AndroidManifest.xml文件中:
<meta-dataandroid:name="UMENG_CHANNEL"android:value="xiaomi"/>
如果不使用多渠道打包方法,那就需要我们手动一个一个去修改value中的值,xiaomi,360,qq,wandoujia等等。使用多渠道打包的方式,就需要把上面的value配置成下面的方式:
<meta-dataandroid:name="UMENG_CHANNEL"android:value="${UMENG_CHANNEL_VALUE}"/>
其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值。
2.在build.gradle设置productFlavors写法如下:
productFlavors{
wandoujia{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"wandoujia"]
}
xiaomi{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"xiaomi"]
}
qq{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"qq"]
}
360{
manifestPlaceholders=[UMENG_CHANNEL_VALUE:"360"]
}
}
其中[UMENG_CHANNEL_VALUE:"wandoujia"]就是对应${UMENG_CHANNEL_VALUE}的值。这里还有简洁的写法:
android{
...
buildTypes{
debug{
...
}
...
release{
...