您的位置:首页 > 移动开发 > Android开发

Android Studio 多渠道打包

2016-01-14 11:14 381 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_20144975/article/details/50515948

Android Studio 多渠道打包

本文以友盟分享为例。先看

第一步:在AndroidManifest中添加默认渠道

<meta-data android:name="UMENG_CHANNEL" android:value="wandoujia" />

第二步:在build.gradle 中定义buildTypes,productFlavors

buildTypes {

//这里的名字自定义
release{

// 这里是在 applicationId 中添加了一个后缀。
applicationIdSuffix ".release"

// 这里的作用是选择是否混淆代码
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

dev{
applicationIdSuffix ".dev"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}
}

// 这里是为了不同的版本设置一些特殊的参数,并不直接和 buildType 关联。
productFlavors{

//自定义名字不过不能和上面buildType中相同,不然Gradle编译会不通过。在这里使用了『flavors_』前缀以便区分。
uc{
/**
* 这里所设置的变量可以直接使用在[AndroidManifest.xml]
* 中,使用方式:android:label="${package_name}"
*/
manifestPlaceholders = [str:"releaseStr",package_name:"com.example.administrator.myapplication"]

resValue("string" , "strKey","uc")
}

baidu{
manifestPlaceholders = [str:"devStr",package_name:"com.example.administrator.myapplication"]

resValue("string" , "strKey","baidu")
}

wandoujia{
manifestPlaceholders = [str:"devStr",package_name:"com.example.administrator.myapplication"]

resValue("string" , "strKey","wandoujia")
}
}

第二步:Build -> Generate Signed Apk,选择签名文件,没有自行创建。选定Build Type,Flavors,这就是我们在build.gradle中定义的名字。Finish后再项目目录下就会生成各个渠道的apk啦。

不同渠道定义的resValue(strKey),你可以根据它去切换不同的图片资源。

String name = getResources().getString(R.string.strKey);
if (name.equals("uc")){
img.setImageResource(R.drawable.a);
}else if(name.equals("baidu")){
img.setImageResource(R.drawable.b);
}else{
img.setImageResource(R.drawable.c);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: