05. Android多渠道打包(友盟)

one.jpg

慕课网视频:http://www.imooc.com/learn/752

http://frank-zhu.github.io/android/2015/06/15/android-release_app_build_gradle/

前言

什么是多渠道打包?为什么要多渠道打包?

  1. 多渠道打包简单的说打多个应用平台的包(比如应用宝,安智市场,机锋等等)
  2. 多渠道打包的意义在于:
    * 通过多渠道,可以更详细的统计app被下载的途径
    * 通过多渠道,可以查看app在每个渠道的表现
    * 通过多渠道,更有利于我们app的推广

多渠道打包的原理

  • 为我们每个平台或市场的apk指定唯一的标识符
  • Android中我们通常在Manifest.xml中指定唯一的标识符

集成友盟多渠道打包

  1. 上友盟官网注册并创建新应用,获取AppKey(下图是我的账号已经注册登录过)


    youmeng.gif
  2. 在你的module的build.gradle中添加友盟的依赖
compile 'com.umeng.analytics:analytics:latest.integration'

如果无法正常集成,请添加如下代码

allprojects {
    repositories {
            mavenCentral()     
    }
}
  • 在Manifest.xml中配置渠道号和AppKey (包含在application中)



注意:这里的占位符$和中括号{}之间要有个空格,不然编译报错:Manifest merger failed with multiple errors, see logs;

  • 在Module的build.gradle中编写多渠道的脚本
    第一步:


    05. Android多渠道打包(友盟)_第1张图片
    01.png

    第二步:
    生成签名文件,并将签名文件复制到你的module中
    第三步:注意这里的签名文件路径,如果签名文件**.jks已经拷贝到项目中,就像图这样,直接写签名文件的名就可以了,如果没有复制到项目中,要写全路径。


    05. Android多渠道打包(友盟)_第2张图片
    02.png

    第四步:
    05. Android多渠道打包(友盟)_第3张图片
    03.png

    第五步:

    在Terminal中输入命令:gradlew assembleRelease(注意别写错,如果是Mac 命令为:./gradlew assembleRelease),如果指给一个渠道打包,命令如下,比如指给小米的打包:./gradlew assembleXiaoMiRelease进行打包,等待有BUILD SUCCESSFUL说明打包成功。


    05. Android多渠道打包(友盟)_第4张图片
    04.png

如何指定打包以后APK的文件名

05. Android多渠道打包(友盟)_第5张图片
05.png
//自定义打包后apk的文件名
applicationVariants.all{variant ->
     variant.outputs.each{output ->
           def outFile = output.outputFile
           if (outFile!=null && outFile.name.endsWith(".apk")){
                def fileName = "${variant.productFlavors[0].name}"+".apk"
                output.outputFile = new File(outFile.parent,fileName);
           }
      }
}

结束啦

你可能感兴趣的:(05. Android多渠道打包(友盟))