android多渠道打包
转载请标明出处,维权必究:https://www.cnblogs.com/tangzh/p/10764726.html
因为要统计各个市场的下载量和其他数据,所以在打包的时候就需要针对每个渠道单独打包,于是,多渠道打包自然就出现了。
不然一个一个打可真是要命。
1、在androidmanifest.xml文件的</application>标签里面设置:
<meta-data android:name="app_channel_value" android:value="${app_channel_value}" />
2、app的build.gradle里面设置(android {}里面):
(1)、defaultconfig {}里面加上:flavordimensions "default"
(2)、productflavors里面写上渠道名与渠道号
productflavors {
//渠道1。渠道名:v1,渠道号v1_100 v1 { manifestplaceholders = [ app_channel_value: "v1_100" ] }
//渠道2。渠道名:v2,渠道号:v2_100 v2 { manifestplaceholders = [ app_channel_value: "v2_100" ] } }
(3)、设置输出的apk名称(方便查看):
buildtypes { release { minifyenabled false proguardfiles getdefaultproguardfile('proguard-android-optimize.txt'),
'proguard-rules.pro' applicationvariants.all { variant -> variant.outputs.all { output -> def outputfile = output.outputfile if (outputfile != null && outputfile.name.endswith('.apk')) { def filename = "novel_v${defaultconfig.versionname}_${releasetime()}_${variant.productflavors[0].name}.apk" outputfilename = filename } } } } }
这个是apk的名称:
def filename
= "novel_v${defaultconfig.versionname}_${releasetime()}_${variant.productflavors[0].name}.apk"
defaultconfig.versionname:版本号。
releasetime():时间(具体方法接下来说)
variant.productflavors[0].name:渠道名(这里为v1或者v2)
apk名称为novel_v + 版本号 + 时间 + 渠道名
(4)、releasetime()方法(写在build.gradle的最外层)
def releasetime() { return new date().format("mmdd", timezone.gettimezone("utc")) }
3、验证:
(1)、代码中获取渠道号
private string getmetachannel() { try { applicationinfo appinfo = getpackagemanager()
.getapplicationinfo(this.getpackagename(), packagemanager.get_meta_data); string value = appinfo.metadata.getstring("app_channel_value"); return value; } catch (packagemanager.namenotfoundexception e) { e.printstacktrace(); } return ""; }
(2)、打debug包
然后运行,便可以打v1渠道的包,在看代码中打印出来的渠道是否正确
若是所有的渠道都是相同的渠道号,可以这样:
productflavors.all { flavor -> flavor.manifestplaceholders = [ app_channel_value: “渠道号”, ] }
哪里有不对的地方欢迎指出。
若是有疑问,或许这两篇能够帮到你:
https://www.cnblogs.com/tangzh/p/10764638.html
https://www.cnblogs.com/tangzh/p/10764568.html
下一篇: C语言之输出空心棱形图案
推荐阅读
-
Android 自定义弹出菜单和对话框功能实例代码
-
Android实现EditText的富文本编辑
-
Android Studio怎么自定义颜色?Android Studio更换字体大小颜色的方法
-
Android 顶部标题栏随滑动时的渐变隐藏和渐变显示效果
-
Android Studio获取SHA1值实例详解
-
在Android上实现HttpServer的示例代码
-
Android读取本地照片和视频相册实例代码
-
Android使用API实现图像扭曲效果示例
-
Android实现EditText图文混合插入上传功能
-
Android WebView 不支持 H5 input type="file" 解决方法