AS多渠道打包

Android Studio 多渠道打包的关键,就是项目的build.gradle文件里面的productFlavors,通常统计用的是友盟,以友盟为例经过修改渠道号,进行多渠道打包。java

1.一种是在manifest文件里面,定义了渠道号,这个时候,就要用到manifestPlaceholders ,经过在build.gradle文件里面的productFlavors,定义多渠道的名称,每一个渠道下面是该manifestPlaceholders的值,能够参考http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ android

2.另外一种,渠道号是在java代码里面设置的,这种状况下,能够经过定义 buildConfigField 'String', 'UMENG_CHANNEL_VALUE', UMENG_CHANNEL_VALUE,而后在代码里面,经过buildConfigField类名点UMENG_CHANNEL_VALUE来获取相应的渠道号。好比 BuildConfig.UMENG_CHANNEL_VALUE 。apache

最后附上第二种状况下的gradle文件以供参考android-studio

apply plugin: 'com.android.application'app

android {ide

    compileSdkVersion 23gradle

    buildToolsVersion '23.0.2'优化


    defaultConfig {ui

        applicationId "cn.com.xxx"google

        minSdkVersion 14

        targetSdkVersion 22

        versionCode 188

        versionName "3.1.0"

        // Enabling multidex support. 65535

        multiDexEnabled true

        useLibrary 'org.apache.http.legacy'

    }


    buildTypes {

        debug{

            // 显示Log

            buildConfigField "boolean", "LOG_DEBUG", "true"

            versionNameSuffix "-debug"

            minifyEnabled false

            zipAlignEnabled false

            shrinkResources false

        }

        release {

            // 不显示Log

            buildConfigField "boolean", "LOG_DEBUG", "false"

            // 移除无用的resource文件

            //shrinkResources true

            //混淆

            minifyEnabled true

            //Zipalign优化

            zipAlignEnabled true

            proguardFiles 'proguard.cfg'


            applicationVariants.all { variant ->

                variant.outputs.each { output ->

                    def outputFile = output.outputFile

                    if (outputFile != null && outputFile.name.endsWith('.apk')) {

                        // 下面的appname改成你本身的app name

                        def fileName = "KTN-A-PH_${defaultConfig.versionName}_${variant.productFlavors[0].name}-E084.apk"

                        output.outputFile = new File(outputFile.parent, fileName)

                    }

                }

            }

        }

    }

    // 友盟多渠道打包

    productFlavors {


        xiaomi {

            String UMENG_CHANNEL_VALUE='"KTN-A-PH_4.3.7_xiaomi-E084"'

            buildConfigField 'String', 'UMENG_CHANNEL_VALUE', UMENG_CHANNEL_VALUE

        }

        /*qihoo {

            buildConfigField 'String', 'UMENG_CHANNEL_VALUE', '"KTN-A-PH_4.3.7_qihoo-E084"'


        }

        qq {

            buildConfigField 'String', 'UMENG_CHANNEL_VALUE', '"KTN-A-PH_4.3.7_qq-E084"'


        }*/


    }


    sourceSets {

        main {

            manifest.srcFile 'src/main/AndroidManifest.xml'

            java.srcDirs = ['src/main/java']

             resources.srcDirs = ['src/main/res']

             aidl.srcDirs = ['src']

             renderscript.srcDirs = ['src']

            res.srcDirs = ['src/main/res']

            assets.srcDirs = ['src/main/assets']

        }

      

    }

    compileOptions {

        sourceCompatibility JavaVersion.VERSION_1_7

        targetCompatibility JavaVersion.VERSION_1_7

    }

}


dependencies {

    //compile files('libs/com_unionpay_upomp_lthj_lib.jar')

    compile project(':alipay_lib')

    compile project(':upomp_Res_for_kt3x')

    compile project(':weiboSDK')

    compile 'com.google.code.gson:gson:2.2.4'

    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'

    compile 'com.android.support:support-v4:23.0.0'

  

}

相关文章
相关标签/搜索