Android渠道包构建流程

美菜商城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。 未完待续。。。

猜你喜欢

转载自blog.csdn.net/lzq520210/article/details/120136945
今日推荐