Android Studio 多渠道打包

来源:互联网 发布:鬼来电 知乎 编辑:程序博客网 时间:2024/05/16 12:42
-----------------------------------------------Android Studio 多渠道打包---------------------------
defaultConfig {
        applicationId "app.sunniwell.net.metting"
        minSdkVersion 19
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        buildConfigField("String","API_HOST","\"http://192.168.0.96:8080\"")
    }
    buildTypes {//发布类型
        release {  //发 布
            minifyEnabled true   //开启混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //指定混淆文件
            buildConfigField("String", "API_HOST", "\"http://192.168.0.97:8080\"")
        }
        custom {
            minifyEnabled true   //开启混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField("String", "API_HOST", "\"http://192.168.0.98:8080\"")
        }
    }


----------------------------------说明---------------------------------------------------


注意上面带下划线字体的部分。


  这个方法需要三个参数,分别是  字段变量类型,变量名,和值。比如这里的 


    "String", "API_HOST", "\"http://192.168.1.245\""    //  一定注意 右斜杠后面跟着 转义字符分号
 就会生成:
    public static final String API_HOST = "http://192.168.1.245";
  


  2. 修改 build.gradle , 配置 defaultConfig 下的  buildConfigField字段 ,这是为了 代码编译的方便,使得在各个环境下都有 API_HOST 这个字段。


     buildConfigField("String", "API_HOST", "\"http://192.168.1.232\"")


  3. 开始 build ,完成后,可以在代码中使用:


      String str = BuildConfig.API_HOST;


--------------------------------------加入统计等多渠道-------------------------------------
    buildTypes {
        debug {
            // 显示Log
            buildConfigField "boolean", "LOG_DEBUG", "true"


            versionNameSuffix "-debug"
            minifyEnabled false
            zipAlignEnabled false
            shrinkResources false
            signingConfig signingConfigs.debug
        }


        release {
            // 不显示Log
            buildConfigField "boolean", "LOG_DEBUG", "false"


            minifyEnabled true
            zipAlignEnabled true
            // 移除无用的resource文件
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release


            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                    // 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
                        def fileName = "boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }


    // 友盟多渠道打包
    productFlavors {
        wandoujia {}
        _360 {}
        baidu {}
        xiaomi {}
        tencent {}
        taobao {}
        ...
    }


    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
}
0 0
原创粉丝点击