美菜商城Android包发布分为自有渠道和应用市场多渠道2种。不同的渠道包的区别在于应用内部有一个channel标识区分,用以友盟统计等操作。

Android端接入了美团的walle实现多渠道打包。

Walle介绍

Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2,它能提供更快的应用安装时间和更多针对未授权 APK 文件更改的保护。在默认情况下,android Studio 2.2 和 Android Plugin for Gradle 2.2 会使用 APK Signature Scheme v2 和传统签名方案来签署您的应用。

注意:如果您使用 APK Signature Scheme v2 签署您的应用,并对应用进行了进一步更改,则应用的签名将无效。Walle并不是为了解决打包速度而产生的一个工具,而是为了适应V2签名而研究的因一代打包工具。

walle通过在APK中的APK Signature Block驱块添加自定义的渠道信息来生成渠道包,从而提高了渠道打包生成效率 。本质上不是重复打多个包,而是包的复制过程,是在一个基础包上写入渠道信息后重新生成新包。由于减少了重新构建打包的过程,所以节省了渠道打包的时间。

接入walle后,可以使用这种方式获取渠道信息


String channel = WalleChannelReader.getChannel(this.getApplicationContext());

Android打包说明

商城Android的打包构建是基于AMP工具,在代码里配置好build.gradle脚本。AMP工具里读取build.gradle脚本里的配置信息,执行不同的打包命名。

Android基础打包都是基于gradle的,执行命令:

  • ./gradlew assembleXXX xxx可以起Debug,Dev,Stage等等不同取值

AMP打包操作

以上操作是android正常打包的工具,实际上AMP平台是依据业务的build.gradle脚本配置执行gradle assemblexxx命令来实现打包。

多渠道包生成方式

  • android接入walle后,按规则在工程app目录下创建channel文件,该文件中配置渠道的名称

  • 在app工程的build.gradle脚本里配置好walle信息

  • 执行
  • 
    

    ./gradlew assembleReleaseChannels

    即可在build/outputs/channels下看到各个渠道的包,包的名称如上图walle配置信息里写入的定制渠道apk文件名称。

如何使用AMP构建walle

目前android多渠道打包并没有走AMP,基于公司整体从上到下标准发布流程的执行,android的渠道打包需要迁移至AMP上进行。这里一个可行的方案是AMP上打包job下配置多渠道选择是执行./gradlew assembleReleaseChannels。 未完待续。。。

Android渠道包构建流程相关推荐

  1. Android渠道包打包流程

    1.环境要求 Windows.JDK1.7.0以上.WinRAR 2.打包步骤 (1)从Jenkins打包平台取得最终作为发版外卖apk (2)apk重命名为src.zip(没错,就是改成一个压缩包) ...

  2. Android渠道包测试方案

    ###Android渠道包测试方案 有段时间没有写过明显关于测试相关的文章了,最近听说Android渠道包也会出现问题,于是就用python写了一个相关的测试脚本.于是乎,就有了此文... 想法说来也 ...

  3. Android 渠道包 动态生成 apk 名称

    Android 渠道包 动态生成 apk 名称 低版本打包配置 buildTypes {release {minifyEnabled trueshrinkResources truezipAlignE ...

  4. 新一代开源Android渠道包生成工具Walle

    本文转载自[http://tech.meituan.com/android-apk-v2-signature-scheme.html] 在Android 7.0(Nougat)推出了新的应用签名方案A ...

  5. android 渠道包测试,Android快速批量多渠道包的“蛋生”

    对于安卓程序猿朋友来说,每当发布新版本的APP,均会分发到各大应用市场,比如腾讯应用宝,豌豆荚和360手机助手等.为了让程序猿同志们更好的区分不同的应用市场,掌握各市场APP发展状况,为了更多体现世界 ...

  6. android 渠道包 占位符配置,Android打包

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 打包的事,之前很少做,也了解的比较少,今天好好看了看,总结一下,以后要是用到了,或许可以少走些弯路. 多渠道打包 友盟多 ...

  7. android渠道包加固,Android多渠道打包和加固那些事

    多渠道两种打包方式: 一.利用android studio的productFlavors去多渠道打包.速度慢,让人崩溃.但与市场上的一些加固无缝接入. 二.利用美团的walle,快速高效,但是在加固上 ...

  8. Android APK 的构建流程以及Gradle多版本构建

    一.APK 构建流程 1.通过AAPT2工具将各种xml文件汇总登记到R.java文件中:同时将AndroidManifest.xml生成对应的二进制文件: 2.通过AIDL工具将.aidl文件生成. ...

  9. Android渠道包自动化验证

    随着产品发布越来越快,渠道包越来越多,渠道包自动化验证重要性逐渐凸显出来,需要将大把的人力从中解放出来,且避免人工失误造成的验证不完全: 最近客户端产品尝试使用渠道包自动化测试的方法,这里说说我们目前 ...

  10. Android 马甲包制作流程

    一.马甲包的制作流程 1.配置马甲包的applicationId以及应用名称 在app的build.gradle文件中添加马甲包的配置 android {signingConfigs {config ...

最新文章

  1. dede 后台 mysql_织梦dedecms使用Mysql8.0无法登录后台的解决办法
  2. 认识python零基础知识到实战概论的复习和回顾上
  3. Handler消息机制(六):Looper.loop()为什么不会阻塞主线程?
  4. 【OpenGL】十一、OpenGL 绘制多个点 ( 绘制单个点 | 绘制多个点 )
  5. mysql额外在哪_MySQL额外操作
  6. VS2017 新建项目没有QT
  7. ue4材质节点怎么用_UE4材质教程
  8. qt和c#怎么选_请问目前做windows桌面应用程序,MFC、QT、C#哪个更好?
  9. java seekbar_SeekBar的基本使用方法
  10. 多年软件测试大牛分享成长经历,一个好的软件测试工程师应该做到这些!
  11. Exchange Server 2007迁移Exchange Server 2010 (15)---启用Outlook anywhere
  12. office visio 2007 画流程图
  13. 《Python程序设计(第3版)》课后习题答案
  14. 2016--MatConvNet Convolutional Neural Networks for MATLAB
  15. “佩奇”刷爆朋友圈 “野猪”占领美术馆空间
  16. ZT 悟空、悟能、悟净、这三个法号有什么特殊的含义吗?
  17. 关于floor函数与ceil函数与round函数
  18. 开放经济的宏观经济学:基本概念 - 异想天开
  19. 插头类型:MX 1.25 PH间距2.0、XH间距2.5/2.54、VH间距3.96区别?
  20. 【F2C】git常见命令

热门文章

  1. Tic Tac Toe简单井字棋
  2. elite php,Elite Chat (开源在线客服系统)
  3. java的Swing框架简介
  4. JAVA UTC时区时间相互转换
  5. 一年级语文四季心田花开专项练习题
  6. 《给李彦宏先生的一封信》
  7. OAI配置eNB时error解决
  8. 如何把大写金额变为小写数字_excel怎么把小写数字转换成人民币大写?
  9. 【观察】百度搜索开放平台
  10. java 分隔符_Java分隔符的使用