Android 多渠道打包简析

作者: maimingliang | 来源:发表于2016-10-04 02:43 被阅读711次

    前言

    为了更好的统计每个来源的下载量,当我们项目打包的时候,需要打出不同渠道的包。如何打多渠道包?新一代构建工具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

    相关文章

      网友评论

      • 凤鸣游子:Build Varian面板在哪里? 找不到...
        凤鸣游子:@maimingliang ok, thanks....(开始喜欢简书了, 博主回答的效率高).
        maimingliang:@阿水哥哥 在Android studio 左下角有个Build Variants的标签。如果没有,在 菜单栏 选择 View --> Tool Window-->Build Variants 调出。
      • and_pu:支持一个
        maimingliang:@and_pu :grin:

      本文标题:Android 多渠道打包简析

      本文链接:https://www.haomeiwen.com/subject/lxvjyttx.html