- 需求1:当android app需要上架多个平台时,需要记录平台渠道,用于数据统计。(曾经公司有12个渠道,一个个打包绝对把你累坏。配置好后,一键生成,你只需要傻傻等着。和UI小姐姐聊聊天)
- 需求2:同理当你有很多测试环境,当然可以通过这种方式
接下来进入主题,让你享受非一般的感觉;这个方式针对as 3.0以上,如果有人还在用3.0以下的as,打包方式不同,欢迎留言!
步骤 1:
首先,来到你的AndroidMainfest.xml文件下
"><meta-data
android:name="ATMAN_CHANNEL"
android:value="${ATMAN_CHANNEL_VALUE}" />
这里的ATMAN_CHANNEL 和ATMAN_CHANNEL_VALUE 都是自己自己自定义的。用于在代码里获取你需要的那些渠道号。
步骤 2:
其次来到你的App下build.gradle的android根标签下加上你要的渠道号;这里我就打开了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]
}
好了你已经完成了所有配置,你敢信。
接下来就是打包了,为了apk包名清晰,咱们把打出来的包名规范下,在上面配置多渠道的地方加上
">//自定义打包时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渠道这一个线上包
接下来举个例子,如果是要数据统计这些渠道号,肯定是要获取这些渠道号的值,你只需要这样:
">//测试多渠道打包
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 + "=========");
以uc包为例子,输出的结果是:
其实教程早已经结束,这只是验证一下。如果是区分环境,你大可这样做,uc标签下是一个环境,当渠道号获取为uc的时候,你在代码里再取这个环境的域名。(如果对你有帮助,请点个赞鼓励下技术小学生吧)
最后
如果你看到了这里,觉得文章写得不错就给个赞呗!欢迎大家评论讨论!如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足,定期免费分享技术干货。谢谢!
网友评论