预览加载中,请您耐心等待几秒...
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{ ...