Android Studio多渠道打包、自定义打包APK名称

Android Studio多渠道打包、自定义打包APK名称,第1张

概述现在为了推广产品,会在多个渠道应用市场发布应用,为了统计不同渠道的数据,需要在应用中表明渠道,如果一个一个去修改打包效率会很低。AS为我们提供了简便的方法,可以多渠道打包,一次打包所有的渠道包。

现在为了推广产品,会在多个渠道应用市场发布应用,为了统计不同渠道的数据,需要在应用中表明渠道,如果一个一个去修改打包效率会很低。AS为我们提供了简便的方法,可以多渠道打包,一次打包所有的渠道包。

1. AS 2.x多渠道打包

(1) AndroIDManifest中增加节点

<!-- 多渠道打包 -->   ...    <Meta-data      androID:name="UMENG_CHANNEL"      androID:value="${UMENG_CHANNEL_VALUE}" />   ...

(2) 项目app module的build.gradle的androID中

androID {   ....    //多渠道打包    productFlavors {      yingyongbao {}      huawei {}      baIDu {}           xiaomi {}      qh360 {}         }    productFlavors.all {      flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]    }   ....}

2. AS 2.x自定义打包APK名称

androID {   ....   //自定义打包时apk名称   applicationVariants.all { variant ->     variant.outputs.each { output ->     def filename = "${variant.versionname}_${variant.productFlavors[0].name}_release.apk"     def outfile = output.outputfile     if (outfile != null && outfile.name.endsWith('.apk')) {       output.outputfile = newfile(outfile.parent,filename)     }     }   ....}

最后打包之后apk放在项目 app/build/outputs/apk 文件夹下,apk名称:版本名_渠道名.apk

3. AS 3.x多渠道打包

(1) AndroIDManifest中增加节点(和2.x一样,没有变化)

<!-- 多渠道打包 -->   ...    <Meta-data      androID:name="UMENG_CHANNEL"      androID:value="${UMENG_CHANNEL_VALUE}" />   ...

(2) 项目app module的build.gradle的androID中

多版本打包

androID {   ....    //多渠道打包    flavorDimensions "tIEr","minAPI"    productFlavors {      yingyongbao {        dimension "tIEr"      }      huawei {        dimension "tIEr"      }      baIDu {        dimension "tIEr"      }           xiaomi {        dimension "minAPI"      }      qh360 {        dimension "minAPI"      }         }    productFlavors.all {      flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]    }   ....}

单版本打包

androID {  ...  defaultConfig {    ...   flavorDimensions "code"  }  productFlavors {     yingyongbao {}     huawei {}     baIDu {}          xiaomi {}     qh360 {}       }  productFlavors.all {     flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]  }  ...}

AS 3.0后grade添加了flavorDimensions属性,用来控制多个版本的代码和资源,缺失会报错

4. AS 3.x自定义打包APK名称

androID {   ....   //自定义打包时apk名称   applicationVariants.all { variant ->     variant.outputs.all { output ->// each 改为 all     def filename = "${variant.versionname}_${variant.productFlavors[0].name}_release.apk"     def outfile = output.outputfile     if (outfile != null && outfile.name.endsWith('.apk')) {       outputfilename = filename // output.outputfile 改为 outputfilename      }     }   ....}

APK名称:版本名_渠道名.apk

以上就是AS 2.x和AS 3.x多渠道打包、自定义打包APK名称对比区别,大家可根据自己的AS版本来选用相应的方法,希望对大家有所帮助!如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

总结

以上是内存溢出为你收集整理的Android Studio多渠道打包、自定义打包APK名称全部内容,希望文章能够帮你解决Android Studio多渠道打包、自定义打包APK名称所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1143177.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存