博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android应用公布的准备——生成渠道包
阅读量:6957 次
发布时间:2019-06-27

本文共 2487 字,大约阅读时间需要 8 分钟。

我们须要使用一个变量标明该app的渠道。通常我们能够在manifest中的application节点下声明。例如以下。

然后将CHANNEL_VALUE的值替换成相应的渠道名。我们能够使用gradle的flavor替我们完毕

productFlavors {        wandoujia {}        qihu360 {}        baidu {}        hiapk {}        shoujizhushou {}        tencent {}        xiaomi {}        anzhi {}        uc {}        appchina {}        wangyi {}        mumayi {}        huawei {}        lenovo {}        flyme {}    }    productFlavors.all { flavor ->        flavor.manifestPlaceholders = [CHANNEL_VALUE: name]    }

当然有时候我们须要配置某些渠道自己主动更新,某些渠道部自己主动更新,这时候须要一个变量来标明。

我们让全部渠道默认支持自己主动更新,让豌豆荚的不进行自己主动更新。

defaultConfig {
buildConfigField "boolean", "AUTO_UPDATES", "true" }
productFlavors {        wandoujia {            buildConfigField "boolean", "AUTO_UPDATES", "false"        }}

在程序中能够这样获得该变量

boolean autoUpdate=BuildConfig.AUTO_UPDATES;

甚至有时候须要更改生成的apk的名字,这时候能够自定义生成的名字

//获取产品名def getProductName() {    return "ProductName"}//获取时间戳def getDate() {    def date = new Date()    def formattedDate = date.format('yyyyMMddHHmm')    return formattedDate}android {    ...    //改动生成的apk名字    applicationVariants.all { variant ->        variant.outputs.each { output ->            def oldFile = output.outputFile            def newName = '';            if (variant.buildType.name.equals('release')) {                def releaseApkName = getProductName() + "-v${defaultConfig.versionName}-" + variant.productFlavors[0].name + '-signed.apk'                output.outputFile = new File(oldFile.parent, releaseApkName)            }            if (variant.buildType.name.equals('beta')) {                newName = getProductName() + "-v${defaultConfig.versionName}-" + variant.productFlavors[0].name + "-build" + getDate() + ".apk"                output.outputFile = new File(oldFile.parent, newName)            }            if (variant.buildType.name.equals('debug')) {                newName = getProductName() + "-v${defaultConfig.versionName}-" + variant.productFlavors[0].name + "-debug" + getDate() + ".apk"                output.outputFile = new File(oldFile.parent, newName)            }        }    }}

最后我们还须要在程序中获得我们的渠道名进行兴许的一些操作。比方做一些统计之类的工作

String channel=AppUtil.getMetaValue(this,"CHANNEL_NAME");        Log.d("TAG",channel);

一切完毕之后,我们就能够生成渠道包了

打开终端,输入下面命令回车就生成了全部的渠道包

gradlew assembleRelease

此外还能够点击andorid studio右边悬停的的gradlebutton,弹出的窗体里面有个圆形的execute gradle task的button,command Line里输入assembleRelease点击ok也能够生成全部渠道包

生成全部渠道包须要一点时间,生成完毕后在app/build/outputs/apk文件夹下会有生成的全部的包。将相应的包上传至相应的渠道就可以。

转载地址:http://wvmil.baihongyu.com/

你可能感兴趣的文章
区块链遇到数据库:相爱还是相杀?
查看>>
及时警惕!云计算带来的安全风险
查看>>
太阳能示范基地光伏项目一期工程竣工
查看>>
机器学习之正则化图文讲解
查看>>
深入剖析ASP.NET的编译原理之二:预编译(Precompilation)
查看>>
阿里云前端周刊 - 第 31 期
查看>>
游戏安全资讯精选 2017年第十三期 Typecho前台无限制Getshell漏洞预警,勒索软件市场正在呈爆炸式增长...
查看>>
字符串编码解压缩算法
查看>>
电子化的阅读:学习时代的新行为
查看>>
硅谷·北京 云世界2012思想再激荡
查看>>
中国人工智能学会通讯——意识科学研究进展 1.1 意识问题的科学陈述及其当代研究目标的设定...
查看>>
颠覆传统的中兴微模块数据中心 开启中小企业的大数据梦
查看>>
Gartner:人工智能将把部分专业工作变成公用事业
查看>>
西数企业级市场大救星:充氦硬盘
查看>>
中国人工智能学会通讯——人工智能在各医学亚专科的发展现状及趋势 1.5 人工智能在各医学亚专科应用的局限性...
查看>>
《VMware Virtual SAN权威指南》一1.4 Virtual SAN简介
查看>>
ClassFlow推出全新课堂活动轨迹功能
查看>>
高性能计算在电网技术中的应用
查看>>
亿级下ApsaraDB HBase Phoenix秒级内RT在大搜车实践
查看>>
EMC高管:戴尔Nutanix一体机与EMC超融合产品之间不存在竞争
查看>>