关闭

Android Studio Gradle配置

标签: gradle配置
39人阅读 评论(0) 收藏 举报
分类:

使用Android studio创建的项目会默认生成两个build.gradle文件(一个位于根目录下,一个位于app目录下)和一个setting.gradle文件

  1. 根目录下的build.gradle一般内容如下
buildscript {
    repositories {
        //使用jcenter()依赖库
        jcenter()
    }
    dependencies {
        //
        classpath 'com.android.tools.build:gradle:1.3.0'
        //相当于依赖jcenter库里面的1.3.0版本的gradle
    }
}
//整个工程的依赖库的配置
allprojects {
    repositories {
        jcenter()
    }
}

2.app module下面的build.gradle

//主module就是application,依赖工程需要改成library
apply plugin: 'com.android.application'
android {
    //6.0之后goole不支持使用HttpClient,如果需要使用,加上这句话
    useLibrary 'org.apache.http.legacy'
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    defaultConfig {
        //主module必须配置,依赖module不要此项
        applicationId "包名"
        minSdkVersion 16
        targetSdkVersion 19
        //下面两项会在BuildConfig生成对应的值
        versionCode 191
        versionName "3.8.2"
    }
    //目录指向配置,一般不需要更改,如果想把so文件也放入libs则需要加上下面的,也可以自己创建jniLibs目录
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
    //签名配置
     signingConfigs {
        debug {
            storeFile file('./theme.keystore')
            storePassword "123"
            keyAlias "123"
            keyPassword "123"
        }
        release {
            storeFile file('./theme.keystore')
            storePassword "123"
            keyAlias "123"
            keyPassword "123"
        }
    }
    //编译类型,分为debug和Release,对应BuildConfig里面的DEBUG字段
     buildTypes {
        debug {
            signingConfig signingConfigs.debug
            zipAlignEnabled false  //zip压缩
            minifyEnabled false  //混淆
            shrinkResources false  //移除无用的资源
            //如果有需要可以在BuildConfig下面添加字段
            buildConfigField 'boolean', 'BUILD_DEBUG', 'true'
        }

        release {
            signingConfig signingConfigs.release
            zipAlignEnabled true
            minifyEnabled true
            shrinkResources true
            buildConfigField 'boolean', 'BUILD_DEBUG', 'false'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
        }
    }
    //打包渠道,该项可以是多维的,配置完之后会在Build Variants下面生成3*3*2中编译类型,
    //第一个3表示环境,第二个是渠道,2表示debug或resease,总共有18中组合类型
    //用处有:如果服务器有测试地址和正式地址,则可以根据BuildConfig里面生成的字段设置服务器的地址
    //可以看出appName是不一样的,能够更好的区分
     productFlavors {
        flavorDimensions "enviroment", "channel"
        Envtest {
            dimension "enviroment"
            applicationId = "包名"
            manifestPlaceholders = [APP_NAME:'Demo Test']
        }

        Online {
            dimension "enviroment"
            applicationId = "包名"
            manifestPlaceholders = [APP_NAME:'Demo']
        }

        Dev {
            dimension "enviroment"
            applicationId = "包名"
            manifestPlaceholders = [APP_NAME:'Demo Dev']
        }

        xiaomi {
            dimension "channel"
            manifestPlaceholders = [COLORV_CHANNEL_VALUE: "xiaomi"]
        }
        san60 {
            dimension "channel"
            manifestPlaceholders = [COLORV_CHANNEL_VALUE: "360"]
        }
        baidu {
            dimension "channel"
            manifestPlaceholders = [COLORV_CHANNEL_VALUE: "baidu"]
        }
    }
}
dependencies {
    //表示编译libs下的所有jar包
    compile fileTree(include: ['*.jar'], dir: 'libs')
    //还可以添加其他依赖项
    //这种形式表示依赖module
    compile project(':gpuimagefilter')
    //这种形式表示编译远程库
    compile 'com.android.support:recyclerview-v7:23.1.1'
}

//对应的BuildConfig会自动生成:
public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String APPLICATION_ID = "cn.demo";
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "DevBaidu";
  public static final int VERSION_CODE = 191;
  public static final String VERSION_NAME = "3.8.2.debug";
  public static final String FLAVOR_enviroment = "Dev";
  public static final String FLAVOR_channel = "baidu";
  // Fields from build type: debug
  public static final boolean BUILD_DEBUG = true;
}

3.setting.gradle是配置module的依赖情况

include ':app',':gpuimagefilter'
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:674次
    • 积分:117
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类