Android studio gradle 多渠道打包

apply plugin: 'com.android.application'  
    
dependencies {  
//    compile fileTree(dir: 'libs', include: '*.jar')  
    compile project(':appcompat_v7_8')  
}  
buildscript {  
    repositories {  
        mavenCentral()  
    }  
    dependencies {  
        classpath 'com.android.tools.build:gradle:2.1.0'  
    
    }  
}  
android {  
    compileSdkVersion 19  
    buildToolsVersion "21.0.2"  
    
    sourceSets {  
        main {  
            manifest.srcFile 'AndroidManifest.xml'  
            java.srcDirs = ['src']  
            resources.srcDirs = ['src']  
            aidl.srcDirs = ['src']  
            renderscript.srcDirs = ['src']  
            res.srcDirs = ['res']  
            assets.srcDirs = ['assets']  
        }  
    
        // Move the tests to tests/java, tests/res, etc...  
        instrumentTest.setRoot('tests')  
    
        // Move the build types to build-types/<type>  
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...  
        // This moves them out of them default location under src/<type>/... which would  
        // conflict with src/ being used by the main source set.  
        // Adding new build types or product flavors should be accompanied  
        // by a similar customization.  
        debug.setRoot('build-types/debug')  
        release.setRoot('build-types/release')  
    }  
    
    defaultConfig {  
        applicationId "com.example.demo4"  
        minSdkVersion 8  
        targetSdkVersion 19  
        versionCode 1  
        versionName "1.0"  
    
        // dex突破65535的限制  
        multiDexEnabled true  
 <pre name="code" class="java">    // AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE}        
      manifestPlaceholders = [UMENG_CHANNEL_VALUE: "channel_name"]
    }
    //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。
    lintOptions {
        abortOnError false
    }
  
    //签名
    signingConfigs {
        debug {
            storeFile file("C:/Users/xxx/.android/debug.keystore")
        }
        relealse {
            storeFile file("demo.jks")
            storePassword "demo123456"
            keyAlias "demo_4"
            keyPassword "demo123456"
        }
    }
    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
  
            //Zipalign优化
            zipAlignEnabled true
  
            // 移除无用的resource文件
            shrinkResources true
            //加载默认混淆配置文件 progudard-android.txt在sdk目录里面,不用管,proguard.cfg是我们自己配<span></span>的混淆文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
            //签名
            signingConfig signingConfigs.relealse
        }
    }
    //渠道Flavors,我这里写了一些常用的
    productFlavors {
        GooglePlay {}
        xiaomi {}
        umeng {}
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
  
  
  
    productFlavors.all { flavor ->
        flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                def fileName = outputFile.name.replace(".apk", "-${defaultConfig.versionName}.apk")
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }
}



 
大家也可以看看 
http://my.oschina.net/aibenben/blog/370985 

也可以参考:www.cnblogs.com/0616--ataozhijia/p/4203997.html

也可以使用命令行进行打包,详见www.apkbus.com/ask/article/13844


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值