美文网首页
安卓多渠道打包(结合友盟)

安卓多渠道打包(结合友盟)

作者: 差得很远呢 | 来源:发表于2016-11-16 16:21 被阅读1832次

    通常发版本时我们需要打很多渠道的包,360,应用宝,豌豆荚等等,安卓默认只打一个debug的包。那么如何进行多渠道打包呢?本文借助友盟结合gradle来讲解如何进行多渠道打包。包打好后,各个包上对应的渠道,然后我们可以就可以在友盟上看到每个渠道的一些统计数据了,如日活,每日下载量,每日新增用户等等。做法其实也很简单,看下文。

    添加依赖
    打开build.gradle,在`dependencies·标签中加入

    compile 'com.umeng.analytics:analytics:latest.integration'
    

    在manifest文件中加入:

     <meta-data
        android:name="UMENG_APPKEY"
        android:value="你的appkey" />
     <meta-data
        android:name="UMENG_CHANNEL"
        android:value="${UMENG_CHANNEL_VALUE}" />
    

    假设我们要打应用宝,360,豌豆荚,小米,百度这5个渠道的包。
    接下来,在build.gradleandroid标签中加入:

    android {
        productFlavors {
            yingyongbao {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"]
            }
            _360 {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
            }
            wandoujia {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
            }
            xiaomi {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]
            }
            baidu {
                manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
            }
        }
    }
    

    或者用下面代码替代,简洁一些:

    productFlavors {
        yingyongbao{}
        xiaomi {}
        _360 {}
        baidu {}
        wandoujia {}
    }
    
    productFlavors.all {
       flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
    

    UMENG_CHANNEL_VALUE就是manifest文件中meta-data标签的android:value="${UMENG_CHANNEL_VALUE}"值。

    此时,配置完成,点击build.gradle的sync,同步完成后,打开菜单栏,View->Tool Windows->Build Variants,你就可以看到配置的各个渠道啦。


    点击各个渠道的debug或release,就可以生成对应的包啦。

    这时候你肯定会问,这么多渠道,一个一个打,得打到什么时候啊?能一键生成所有的包多好!这时候我们就要用到gradle了。gradle有一个命令可以一键打包。不过先别着急执行这个命令行,先往下看。

    //编译并打所有的release包(通常上正式渠道只需要release包,所以我们只打release包就可以了)
    gradlew assembleRelease
    //编译并打所有的debug包
    gradlew assembleDebug
    

    如果是第一次运行这个命令可能会有些坑。
    既然用到gradle命令,gradle肯定得下载好。默认会从官网下载gradle,但这样太慢了,而且一般会出错,我们可以先下载好gradle,然后解压到相应路径下。具体步骤如下:

    1. 下载好gradle2.10,然后解压到下面的路径下
    // C:\Users\lxy这是我的路径,lxy是我的用户名
    C:\Users\lxy\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10
    

    解压后如下图:


    2. 配置gradle环境变量

    打开环境变量,配置GRADLE_HOME,这里默认你会配置环境变量。路径就是刚才解压的路径:

    C:\Users\lxy\.gradle\wrapper\dists\gradle-2.10-all\a4w5fzrkeut1ox71xslb49gst\gradle-2.10
    
    3. 依次执行下列命令
    //查看gradle版本号
    ./gradlew -v
    

    这个过程比较慢,耐心等待,成功后如下图:


    因为我之前路径下有gradle-2.10这个文件,所以它先删除原有的,可以不用管,最后打印出gradle版本号就对了。
    //把之前打包所产生的所有文件全部清除(注意:第一次下载时,它的作用是下载gradle的一些依赖包,所以第一次打包的时候,必须执行这条命令)
    ./gradlew clean
    
    // 编译
    ./gradlew build
    
    // 打包
    ./gradlew assembleRelease
    

    因为包比较多,所以这个过程比较慢,耐心等待。完成后,我们就可以在app->build->outputs->apk目录下看到所有的包啦。致此,多渠道打包就完成啦。
    总结一下,如果是第一次打包,并且gradle配置 ok,需要依次执行:

    //下载gradle的一些依赖包
    //如果之前不是第一次打,跳过该条命令,直接执行下面两条
    ./gradlew clean
    // 编译
    ./gradlew build
    // 打release包
    ./gradlew assembleRelease
    

    ok,到这里,文章就结束了,有问题欢迎指正共同进步

    参考:
    友萌报表文档解读

    相关文章

      网友评论

          本文标题:安卓多渠道打包(结合友盟)

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