VasDolly实现多渠道打包

这篇具有很好参考价值的文章主要介绍了VasDolly实现多渠道打包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、添加对VasDolly Plugin的依赖

二、 引用VasDolly Plugin

三、添加对VasDolly helper类库的依赖

四、根目录新建文件添加渠道列表

五、主App工程的build.gradle中配置channel

六、根据已有基础包重新生成多渠道包


 文章来源地址https://www.toymoban.com/news/detail-427447.html

官方地址:

GitHub - Tencent/VasDolly: Android V1 and V2 Signature Channel Package Plugin

一、添加对VasDolly Plugin的依赖

在根工程的build.gradle中,添加对打包Plugin的依赖:

dependencies {
        classpath 'com.android.tools.build:gradle:7.0.3'
        classpath 'com.tencent.vasdolly:plugin:3.0.6'
}

二、 引用VasDolly Plugin

在主App工程的build.gradle中,添加对VasDolly Plugin的引用:

plugins {
    id 'com.tencent.vasdolly'
}

三、添加对VasDolly helper类库的依赖

在主App工程的build.gradle中,添加读取渠道信息的helper类库依赖:

dependencies {
    api 'com.tencent.vasdolly:helper:3.0.6'
}

四、根目录新建文件添加渠道列表

VasDolly实现多渠道打包

五、主App工程的build.gradle中配置channel

包含渠道文件、渠道包的输出目录和渠道包的命名规则:

channel{
    //指定渠道文件
    channelFile = new File(project.rootDir, "channel.txt")
    //多渠道包的输出目录,默认为new File(project.buildDir,"channel")
    outputDir = new File(project.rootProject.buildDir,"channel")
    //多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}
    apkNameFormat ='${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}'
    //快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
    fastMode = false
    //buildTime的时间格式,默认格式:yyyyMMdd-HHmmss
    buildTimeDateFormat = 'yyyyMMdd-HH:mm:ss'
    //低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头的内容块读取到内存,在手机上合成APK时,可以使用该模式
    lowMemory = false

}

 

其中,多渠道包的命名规则中,可使用以下字段:

  • appName : 当前project的name
  • versionName : 当前Variant的versionName
  • versionCode : 当前Variant的versionCode
  • buildType : 当前Variant的buildType,即debug or release
  • flavorName : 当前的渠道名称
  • appId : 当前Variant的applicationId
  • buildTime : 当前编译构建日期时间,时间格式可以自定义,默认格式:yyyyMMdd-HHmmss

 

然后,通过gradle channelDebuggradle channelRelease命令分别生成Debug和Release的多渠道包。

为了方便临时生成渠道包进行测试,我们从v2.0.0开始支持添加渠道参数:gradle channelDebug(channelRelease) -Pchannels=yingyongbao,gamecenter,这里通过属性channels指定的渠道列表拥有更高的优先级,且和原始的文件方式是互斥的

六、根据已有基础包重新生成多渠道包

若是根据已有基础包重新生成多渠道包,首先要配置渠道文件、基础包的路径和渠道包的输出目录:

rebuildChannel {
  //指定渠道文件
  channelFile = file("/Users/leon/Downloads/testReChannel.txt")
  // 已有APK文件地址(必填),如new File(project.rootDir, "/baseApk/app_base.apk"),文件名中的base将被替换为渠道名
  baseApk = 已有APK文件地址(必填)
  //默认为new File(project.buildDir, "rebuildChannel")
  outputDir = 渠道包输出目录
  //快速模式:生成渠道包时不进行校验(速度可以提升10倍以上,默认为false)
  fastMode = false
  //低内存模式(仅针对V2签名,默认为false):只把签名块、中央目录和EOCD读取到内存,不把最大头的内容块读取到内存,在手机上合成APK时,可以使用该模式
  lowMemory = false
}

然后,通过gradle rebuildChannel命令生成多渠道包。

为了方便临时生成渠道包进行测试,我们从v2.0.0开始支持添加渠道参数:gradle rebuildChannel -Pchannels=yingyongbao,gamecenter,这里通过属性channels指定的渠道列表拥有更高的优先级,且和原始的文件方式是互斥的。

生成如下

VasDolly实现多渠道打包

 

 

到了这里,关于VasDolly实现多渠道打包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VR全景医疗:多渠道矩阵式使用,展现医疗实力

    VR全景医疗的市场正在趋于成熟,医院将VR全景展示作为一种新颖的展示方式,在全景中嵌入官网,展现医院全貌,更可以凭借多渠道矩阵式使用,展现医疗实力,提高医院知名度。虽然这是一个全新的领域,但是VR医疗对我们的生活以及医院的工作都起到了巨大的作用。 首先

    2024年02月15日
    浏览(27)
  • Android Studio App开发之通知渠道NotificationChannel及给华为、小米手机桌面应用添加消息数量角标实战(包括消息重要级别的设置 附源码)

    需要全部源码或运行有问题请点赞关注收藏后评论区留言~~~ 为了分清消息通知的轻重缓急,Android8.0新增了通知渠道,并且必须指定通知渠道才能正常推送消息,一个应用允许拥有多个通知渠道,每个渠道的重要性各不相同,有的渠道消息在通知栏被折叠成小行,有的渠道消

    2024年02月16日
    浏览(43)
  • linux怎么打包整个目录,tar打包整个目录(可排除子目录)几种方法[通俗易懂]

    代码如下 复制代码 代码如下 复制代码 简单解释一下: ls -l | grep “^-” 用来把当前目录下所有文件列出来,不包括子目录; awk ‘{print “dollar”8}’ 用来把ls和grep输出的文件名取出来; xargs 将前面一串的输出,也就是一个文件名的列表组织成一个参数传递给tar命令。 如果

    2024年02月16日
    浏览(41)
  • 聊聊「短信」渠道的设计与实现

    有多久,没有发过短信了? 在常规的分布式架构下,「消息中心」的服务里通常会集成「短信」的渠道,作为信息触达的重要手段,其他常用的手段还包括:「某微」、「某钉」、「邮件」等方式; 对于《消息中心》的设计和实现来说,在前面已经详细的总结过,本文重点

    2024年02月06日
    浏览(24)
  • Linux对一个目录及其子目录所有文件添加权限

    chmod是一个改变用户拥有指定文件的权限的命令.r:只读,w:写,x执行.也可以用数字 -rw------- (600) -- 只有属主有读写权限。   -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。   -rwx------ (700) -- 只有属主有读、写、执行权限。   -rwxr-xr-x (755) -- 

    2024年02月02日
    浏览(81)
  • uni-app打包小程序根据不同编译条件打包不同静态素材目录

    在uni-app开发小程序的时候,我们经常有这样的需求,一个小程序,拥有多个不同样式的模板,发布的时候,为了减少包的体积,我们希望只打包当前使用的模板对应的静态素材目录,而其他模板的目录不打包进去。 在package.json中定义的模板变量如下: 每一个模板的静态素材

    2024年02月10日
    浏览(35)
  • 桥接模式:如何实现支持不同类型和渠道的消息推送系统?

            上一节课我们学习了第一种结构型模式:代理模式。它在不改变原始类(或者叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。代理模式在平时的开发经常被用到,常用在业务系统中开发一些非功能性需求,比如:监控、统计、鉴权、限流、事务

    2024年02月15日
    浏览(34)
  • vue3 vite 打包 二级目录刷新空白

    控制台报错:Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of \\\"text/html\\\". Strict MIME type checking is enforced for module scripts per HTML spec. 打包路径问题,修改vite.config.ts文件的base

    2024年02月09日
    浏览(43)
  • Centos7根目录扩容方法(添加一块磁盘扩容根目录)

    摘要: 业务服务器扩容磁盘,一般用户都比较喜欢把新增的磁盘容量扩容到原业务上的一个目录上,也就是说扩容业务目录的容量,其次情况下,同一目录下,无法挂载多个,不然会覆盖之前的挂载,所以要以卷组分方式来解决扩容。 目标: 业务服务器新增一块硬盘硬盘,

    2024年02月08日
    浏览(57)
  • docker给已经启动容器添加挂载目录

    1.关闭docker 2. sudo su切换到root身份 cd /var/lib/docker/containers/容器id/,进入对应容器目录 3.vim hostconfig.json 修改如下,将容器目录/import绑定到主机/data目录: \\\"Binds\\\": [\\\"/data:/import\\\"], 4.vim config.v2.json 修改如下,添加MountPoints: 5.启动docker    systemctl start docker.socket  systemctl start docker.ser

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包