最近在复习学习,准备。你懂的,记录记录。互相学习
首先,来到你的AndroidMainfest.xml文件下
<meta-data android:name="ATMAN_CHANNEL" android:value="${ATMAN_CHANNEL_VALUE}" />
这里的ATMAN_CHANNEL 和ATMAN_CHANNEL_VALUE 都是自己自己自定义的。
其次来到你的App下build.gradle下
这里我就打开了2个渠道:brain,uc;按你自己的需要,我这里是展示
flavorDimensions "mark" //相当于一个标记 productFlavors { brain { dimension "mark" } uc { dimension "mark" } // yingyongbao { dimension "mark" } // xiaomi { dimension "mark" } // "360m" { dimension "mark" } // oppo { dimension "mark" } // // huawei { dimension "mark" } // meizu { dimension "mark" } // vivo { dimension "mark" } // sougou { dimension "mark" } // lianxiang { dimension "mark" } // zongbao { dimension "mark" } } productFlavors.all { flavor -> flavor.manifestPlaceholders = [ATMAN_CHANNEL_VALUE: name] }
加上这几句,这和3.0以下的多渠道打包很不相同。做好这些,那么你已经全部配置好了,接下拉看怎么,多渠道打包
当然打包出来的app名称我们可以用渠道号,这样更容易区分
同样是app build.gradle下 加上。名字可以随便取。但是variant.name是区分渠道号的:
//自定义打包时apk名字 android.applicationVariants.all { variant -> variant.outputs.all { // abc_渠道名_版本名.apk 还可以拼接其他app内容:variant.versionCode variant.buildType.name outputFileName = "GreenVolley_${variant.name}_${variant.versionName}_${new Date().format("yyyy-MM-dd")}.apk" } }
做完一上步骤,那就开开心心打包把:
在你Android Studio 右上角有个Gradle的按钮,点击打开:
接下来的操作步骤是;点击你的项目名,然后点击app,再点击build,最后打开如下图:
这里罗列了一系列;
1、我当前选中的 assembleRelease 意思就是打包线上版,假如你多渠道号设置了几个,这里点击这个建,就会一键打多少个渠道包;
2、当然你往下看还有个 assembleUc ,点击这个按钮,意思就打UC渠道这一个线上包
功能完成了,当然是自测一下;我们取一个UC渠道包,在mian里面加上:
//测试多渠道打包 ApplicationInfo appInfo = null; try { appInfo = App.getContext().getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } String app_version = appInfo.metaData.getString("ATMAN_CHANNEL"); LogUtils.i("我试试看吧当前是什么", app_version + "=========");
运行图如下(在你的项目里,就能收到你设置的渠道。如果你的app有自己的数据统计,就可以通过这个方法去统计各个渠道了):