Android 多渠道打包简析

前言

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

Gradle的基础概念

flavors

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

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

WechatIMG2.jpeg

build Types

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

WechatIMG3.jpeg

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

WechatIMG4.jpeg

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

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

友盟多渠道打包

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

获取 友盟Appkey

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

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

WechatIMG5.jpeg

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

配置Flavors

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

WechatIMG6.jpeg

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

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

WechatIMG7.jpeg

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

打开Build Varian面板,如下:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容