build.gradle 的设置和相关说明

build.gradle 的设置和相关说明


<pre name="code" class="java">


// Module的项目(Android工程)下的 build.gradle
//=======================================================


//声明当前构建的是 android 应用 还是 library
apply plugin: 'com.android.library'
apply plugin: 'com.android.application'
                
//依赖包
dependencies{
    //加载本地目录下的jar包 
    compile fileTree(dir:'libs',include:'*.jar')
    //加载本地目录下的.so库,版本>2.4 Gradle可使用,低版本添加.so 请google
    compile fileTree(dir: 'libs/armeabi', include: '*/so')
    //直接指定依赖的包,地址是当前工程为根目录
    compile files('libs/android-support-v4.jar')
    //引用当前目录下的android-library项目,‘eventbuslib’为项目名称,注意":"一定要有
    compile project(':eventbuslib')
    //配置远程仓库中的jar包,打包时,检查本地有没有,若没有则下载到本地
    //下载的位置:项目名/build/intermediates/exploded-arr/
    compile 'com.android.support:appcompat-v7:22.0.0'
}
                     
//设置编码类型
tasks.withType(JavaCompile) { options.encoding = "UTF-8" }


//设置当前Android应用构建信息
android {

    //打包SDK版本
    compileSdkVersion 21
    //编译工具版本
    buildToolsVersion "20.0.0"
    
    //默认打包配置
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    //资源文件目录
    sourceSets{  
          main{  
                manifest.srcFile 'AndroidManifest.xml'  
                java.srcDirs = ['src']  
                resources.srcDirs  = ['src']  
                aidl.srcDirs = ['src']  
                renderscript.srcDirs = ['src']  
                res.srcDirs = ['res']  
                assets.srcDirs = ['assets']  
            }  
    }

    //打签名设置
    signingConfigs{
        myConfig{
            //key文件,绝对路径和相对路径都可以
            storeFile file("doucument/pragram_key/bluekey")
            storePassword "key钥密码"
            keyAlias      "别名"
            keyPassword   "别名密码"
        }
    }

    //构建签名和混淆
    buildTypes {
        release {
            //签名文件
            signingConfig  signingConfigs.myConfig
            //是否打开混淆
            minifyEnabled false
            //混淆配置文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    //打包设置
    packagingOptions {
           exclude 'META-INF/DEPENDENCIES.txt'
           exclude 'META-INF/LICENSE.txt'
           exclude 'META-INF/NOTICE.txt'
           exclude 'META-INF/NOTICE'
           exclude 'META-INF/LICENSE'
           exclude 'META-INF/DEPENDENCIES'  
           exclude 'META-INF/notice.txt'  
           exclude 'META-INF/license.txt'  
           exclude 'META-INF/dependencies.txt'  
           exclude 'META-INF/LGPL2.1'  
           exclude 'META-INF/ASL2.0'  
    }  
    
    //测试所在的路径,这里假设是tests文件夹,没有可以不写这一行
    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
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
}
//=======================================================
      
           
//Android Studio 的 Project 目录下的 build.gradle
//======================================================= 
         
//设置脚本的运行环境                
buildscript {
                
       //使用maven的依赖,用于项目的依赖     
       repositories {
            mavenCentral()
        }
        //依赖插件
        dependencies {
            //注意,插件使用这里的Gradle版本尽量要和你Android Studio的Gradle插件版本一致
            classpath 'com.android.tools.build:gradle:1.3.0'
        }
}


//举例
//共享配置
allprojects {
   //所有的项目(包括当前项目以及其子项目)应用上idea插件。
   apply plugin: 'idea'
}


//举例
//共享配置:这就会给所有子项目设置上java的插件、使用mavenCentral作为 //所有子项目的repository以及对Guava[4]和JUnit的项目依赖
subprojects {
       apply plugin: 'java'
      repositories {
               mavenCentral()
          }
          ext {
               guavaVersion = ’14.0.1’
               junitVersion = ‘4.10’ 
          } 


          dependencies {
               compile(“com.google.guava:guava:${guavaVersion}”)
               testCompile(“junit:junit:${junitVersion}”)
           } 
       }
}
//======================================================= 


//=======================多渠道打包================================ 

// 第一步:在对于的 Adnroid工程 目录下的 AndroidManifest.xml中
//        <application></application> 
//        中添加
//         <meta-data
//            android:name="统计SDK的key例如U_MENG的"
//            android:value="${CHANNEL_NAME}"
//             />
// 第二步:在 Module项目(Android工程)下的 build.gradle中的添加如下

android {                
    // 你的其他配置代码
    productFlavors {
        yingyongbao {
            manifestPlaceholders = [ CHANNEL_NAME:"YING_YON_GBAO"]
        }
        umeng {
            manifestPlaceholders = [ CHANNEL_NAME:"U_MENG" ]
        }
        wandoujia {
            manifestPlaceholders = [ CHANNEL_NAME:"WAN_DOU_JIA" ]
        }
    }
    // 你的其他配置代码
}

还未完善,待续

更新时间 2015-9-28


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值