Android 多渠道打包简析

前言

为了更好的统计每个来源的下载量,当我们项目打包的时候,需要打出不同渠道的包。如何打多渠道包?新一代构建工具gradle,其中的一大优势就是支持多渠道,多Apk打包。

Gradle的基础概念

flavors

创建新工程时,自动会生成默认的flavor配置。查看Moudle的build.gradle文件 如下标红处:

Android 多渠道打包简析_第1张图片

也可以在Project struct 的flavors标签看到,如下标红处:

Android 多渠道打包简析_第2张图片
WechatIMG2.jpeg

build Types

创建新工程时,也会自动的生成默认的build type 配置,查看相应Moucle的build.gradle 文件,如下标红处:

Android 多渠道打包简析_第3张图片
WechatIMG3.jpeg

也可以在Project struct 的build Types 标签看到,如下标红处:

Android 多渠道打包简析_第4张图片
WechatIMG4.jpeg

这些默认的配置,当没有额外的打包需求,这些默认的配置也能够满足了。

在gradle中,可以添加 buildTypes 和 productFlavors 来配置不同的打包类型,它们的关系是:
Build Type + Product Flavor = Build Variant

友盟多渠道打包

通过使用友盟的多渠道打包,分析如何使用build Types 和 Flavors 。

获取 友盟Appkey

这个就不说了,谁用谁知道。

在manifest文件配置友盟 appkey,如下:

Android 多渠道打包简析_第5张图片
WechatIMG5.jpeg

在图中标蓝处,设置一个占位符变量UMENG_CHANNEL_VALUE动态的生成该值。如何生成,下面有说。

配置Flavors

可以在Moudle下的build.gradle文件配置你所需要的渠道,也可以在Project struct 中Flavors 标签手动添加。我这里使用的在build.gradle文件中配置:

Android 多渠道打包简析_第6张图片
WechatIMG6.jpeg

在标蓝处的代码,生成在manifest文件占位符变量UMENG_CHANNEL_VALUE的值,该值来源与标黄处。

通过这样配置,打开Project struct ,如下:

Android 多渠道打包简析_第7张图片
WechatIMG7.jpeg

可以看到,除了默认的配置,还多了我们在build.gradle 文件中配置的Flavors。

打开Build Varian面板,如下:

Android 多渠道打包简析_第8张图片
WechatIMG8.jpeg

可以在build variants面板中可以选择构建的flavor;

打包

在Android studio 的Terminal 终端输入如下命令:

Mac :

|操作|命令|
|:---:|:---:|:---:|
| clean|./gradlew clean
| build|./gradlew build
| assemble|./graldew assemble

Win :

|操作|命令|
|:---:|:---:|:---:|
| clean|gradlew clean
| build|gradlew build
| assemble|graldew assemble

友盟多渠道打包Demo

你可能感兴趣的:(Android 多渠道打包简析)