单一打包比较麻烦需要进行多次重复的打包,在此推荐可以更高效,更安全的多渠道打包方式--------友盟多渠道打包
下面是具体步骤介绍:
1.配置清单文件
代码如下:
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}"
/>
2.在Moldule的build.Gradle配置文件
代码如下
//设置APK的渠道信息
productFlavors{
wandoujia{} //渠道1
Anzhuoshichang{} //渠道2
360shichang{} //渠道3
91zhushou{} //渠道4,可以任意添加
}
//分别进行打包,固定格式
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
//根据渠道自定义apk的名称,自带版本号,渠道名
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
"duoqudaopackage-${variant.buildType.name}-${defaultConfig.versionName}-${variant.productFlavors[0].name}.apk".toLowerCase())
}
}
3在java代码中设置获取渠道的标识,发送服务器的逻辑代码(吐司代替)
代码如下(全部代码)
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String Channel=getChannel();
Toast.makeText(this, Channel, Toast.LENGTH_SHORT).show();
}
//获取应用标识固定代码
private String getChannel() {
try {
PackageManager pm = getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
return appInfo.metaData.getString("UMENG_CHANNEL");
} catch (PackageManager.NameNotFoundException ignored) {}
return "";
}
}
4.菜单栏”Build”进行渠道打包
5.新建数字签名(App身份标识),签名密码,别名,别名密码.点击”next”
6.选择APK的类型及存储位置
7,编译完后,
8.将APK复制到虚拟机上运行,(本例拖的是anzhuoshichang的渠道)
9.拖入渠道为anzuoshichang的APK,查看运行结果是否吐司.
10.吐司成功,即多渠道打包成功.