android studio多渠道打包
Posted Gradle官方文件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android studio多渠道打包相关的知识,希望对你有一定的参考价值。
先说打包
第一步
<meta-data
android:name="UMENG_CHANNEL"
android:value="$UMENG_CHANNEL_VALUE" />
第二部:(a,b方法任选)
a:
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"]
b:
android
productFlavors
xiaomi
_360
baidu
wandoujia
productFlavors.all
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
不同版本配置不同的APPKEY
<meta-data
android:name="UMENG_APPKEY"
android:value="$umeng_app_key"/>
buildTypes
debug
manifestPlaceholders = [umeng_app_key: "你替代的内容"]
release
manifestPlaceholders = [umeng_app_key: "你替代的内容"]
develop
manifestPlaceholders = [umeng_app_key: "你替代的内容"]
/**
* 获取application中指定的meta-data
*
* @return 如果没有获取成功(没有对应值,或者异常),则返回值为空
*/
public static void getAppMetaData(Context ctx, String key)
if (ctx == null || TextUtils.isEmpty(key))
return;
try
PackageManager packageManager = ctx.getPackageManager();
if (packageManager != null)
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(ctx.getPackageName(),
PackageManager.GET_META_DATA);
if (applicationInfo != null)
if (applicationInfo.metaData != null)
dist = applicationInfo.metaData.getString(key);
catch (PackageManager.NameNotFoundException e)
e.printStackTrace();
以上是关于android studio多渠道打包的主要内容,如果未能解决你的问题,请参考以下文章
ANDROID STUDIO系列教程六--GRADLE多渠道打包