Android中级:多渠道打包

本文介绍了Android应用进行多渠道打包的方法及其应用场景,包括配合友盟统计进行渠道数据收集的步骤,以及使用Gradle自动化打包的具体配置流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:
多渠道打包
Android多渠道打包

如果我们需要把app提交到多个应用市场,而且需要统计各个应用市场的下载量用于对比,那么我们需要给个应用市场提交的app标明渠道号。

多渠道打包一般配合友盟统计使用,用友盟确定个渠道数据。

但是如果我们只把app上传到了一个应用市场,那么就不需要多渠道打包,正常打包即可。

多渠道打包的方法

  • gradle自动化打包方案
  • 美团打包方案

gradle自动化打包方案

Step1:配置友盟应用统计

集体见文档,不在介绍。
友盟统计分析Android文档

步骤

  • 获取Appkey
  • 导入SDK
  • 配置AndroidManifest.xml
  • 代码统计
<meta-data
    android:name="UMENG_APPKEY"
    android:value="585e1758ae1bf86fd70012e3"/>
<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL}"/>

Step2:配置多渠道打包

第一步:在module中配置flavors

注意:[UMENG_CHANNEL: "yingyongbao"]中的UMENG_CHANNEL要与meta-data中的android:value="${UMENG_CHANNEL}"UMENG_CHANNEL一致,拼写不要错了。

android {
    ...
    productFlavors {
        yingyongbao {
            manifestPlaceholders = [UMENG_CHANNEL: "yingyongbao"]
        }
        qihu360 {
            manifestPlaceholders = [UMENG_CHANNEL: "qihu360"]
        }
        uc {
            manifestPlaceholders = [UMENG_CHANNEL: "uc"]
        }
    }
}

简单的写法

productFlavors {
    wandoujia {
    }
    baidu {
    }
    c360 {
    }
    uc {
    }

    productFlavors.all {
        flavor ->
                flavor.manifestPlaceholders =[UMENG_CHANNEL:name]
    }
}

第二步:正常的打包

这里写图片描述 这里写图片描述

如何打带签名的包?

 //签名
signingConfigs{
    release {
        storeFile file("D:/ScrollByToDemo/keystore.jks")
        storePassword "123456"
        keyAlias "key"
        keyPassword "123456"
    }
    debug{
        storeFile file("D:/ScrollByToDemo/keystore.jks")
        storePassword "123456"
        keyAlias "key"
        keyPassword "123456"
    }
}

美团打包方案

多个module使用同一个library,如何保证library版本号相同?

project的build.grale

ext {
    compileSdkVersion = 25
    buildToolsVersion = '25.0.3'
    minSdkVersion = 16
    targetSdkVersion = 25
    versionCode = 1
    versionName = '1.0'
    supportLibVersion = '25.3.1'
}

module的build.gradle

android {
       compileSdkVersion rootProject.ext.compileSdkVersion
       buildToolsVersion rootProject.ext.buildToolsVersion
       defaultConfig {
           applicationId "com.cqc.demo"
           minSdkVersion rootProject.ext.minSdkVersion
           targetSdkVersion rootProject.ext.targetSdkVersion
           versionCode rootProject.ext.versionCode
           versionName rootProject.ext.versionName
           testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
       }
}
dependencies {
    ...
    compile "com.android.support:appcompat-v7:$supportLibVersion"
    compile "com.android.support:design:$supportLibVersion"
}

修改导出的包的apk名称

AS3.0前这么设置:

buildTypes {
       release {
           minifyEnabled false
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }

       applicationVariants.all { variant ->
           variant.outputs.each { output ->
               def outputFile = output.outputFile
               if (outputFile != null && outputFile.name.endsWith('.apk')) {
                   // 输出apk名称为AiYaGirl_1.0.apk
//                    def fileName = "AiYaGirl_${defaultConfig.versionName}.apk"
                   def fileName = "AiYaGirl_v${variant.versionName}_release_${variant.flavorName}.apk"
                   if (variant.buildType.isDebuggable()) {
                       fileName = "哎呀_v${variant.versionName}_debug_${variant.flavorName}.apk"
                   }
                   output.outputFile = new File(outputFile.parent, fileName)
               }
           }
       }
   }

AS3.0设置:

buildTypes {
     release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
     }

     android.applicationVariants.all { variant ->
         variant.outputs.all {
             outputFileName = "飞豹物流_v${defaultConfig.versionName}.apk"
         }
     }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值