第一步,在manifest文件中设置变量值channl(渠道的key,可以随意起),即在application节点下设置一个meta标签,存放变量channl,如图所示
第二步,获取manifest中的channl的值,最好为启动app的第一个页面获取。
try{
ApplicatinInfao info=getPackageManager().getApplicationInfo(gerPackageName(),PackageManager.GET_META_DATA);
}catch{}
string channl=info.metaData.getString("CHANNEL");
第三步,打开Project Structure->app->Flavors选项 ,添加多个Flavors,设置Flavors的Name属性为渠道的value,如小米市场,华为市场,应用宝。
如图第四步,添加好Flavors之后,会在build.gradle文件中自动生成一个productFlavors的属性,编写对应的值,如图
第五步,打包apk,由于增加了渠道信息,会生成三个版本,Ctrl全选,点击完成。
由于设置了渠道信息,那么打包生成的apk对应的第二步中的
string channl=info.metaData.getString("CHANNEL");
会获取到渠道名,如果想实现统计的功能,只需要后台编写一个接口,启动app的第一个界面调取这个接口,上传这个渠道名,然后后台根据渠道名做统计即可,如果想实现统计机型的功能,只需要调取安卓相应的方法,获取设备信息上传到后台即可实现统计的功能。
由于此种方式是使用as自带的多渠道打包,优点是方式简洁,但是缺点是耗时,如果要上几十上百个市场时则建议使用美团的walle打包
多渠道打包时,对于tinker打包生成的补丁可能会生成多个基准包,那么此种方式将不推荐使用,只能使用美团的walle打包。将只生成一个基准包。
美团walle的使用详细请参考github这里不在详细说明,由于walle在build.gradle中配置渠道号,获取渠道号的方法为
1.png
对于接入了百度统计获取其他统计的项目,那么就不能使用在xml中获取渠道的方式,必须使用百度统计或者友盟统计提供的动态获取渠道号的方法,在app入口处调用,百度统计动态获取渠道的方法为
QQ截图20170411091847.png
由此,只需将walle中获取到的渠道号传入百度的这个方法中,百度统计即可起到作用,关于多渠道打包和tinker以及接入了应用统计的项目的方式至此完成
网友评论