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'

  

}

相關文章
相關標籤/搜索