首页 > 代码库 > Android Studio之Gradle

Android Studio之Gradle

  自从13年Google I/O大会上推出了Android Studio,我就逐步将开发工作从Eclipse转向了Android Studio,也越来越嫌弃老态龙钟的Eclipse。相比较而言,Android Studio无论从运行速度上还是对于Android开发的支撑上都完爆Eclipse;前者极具科技感的UI更是牢牢抓住了我的心!:)

话不多说,先上张碉堡了的截图:

 

Android Studio默认采用Gradle编译项目;Gradle基于Groovy语言,Groovy是一种运行于JVM的动态语言,语法与Java类似,并且可以在Groovy项目中引用Java代码;这使得Java程序员可以很容易的定制Gradle编译逻辑。

我们先看看Gradle的文件结构:

整个Project(AndroidStudioSample)的settings.gradle:

 1 include ‘:app‘, ‘:library‘ 

整个Project(AndroidStudioSample)的build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath ‘com.android.tools.build:gradle:0.10.+‘

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenCentral()
    }
}

主moudle(app)的build.gradle

 1 apply plugin: ‘android‘
 2 
 3 android {
 4     compileSdkVersion 19
 5     buildToolsVersion "19.1.0"
 6 
 7     defaultConfig {
 8         packageName "com.baron.android.app"
 9         minSdkVersion 9
10         targetSdkVersion 19
11         versionCode 1
12         versionName "1.0"
13     }
14     buildTypes {
15         release {
16             runProguard false
17             proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
18         }
19     }
20 }
21 
22 dependencies {
23     compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
24     compile ‘com.android.support:appcompat-v7:19.1.0‘
25     compile ‘com.android.support:support-v4:19.1.0‘
26     compile ‘com.android.support:appcompat-v7:19.1.0‘
27     compile ‘com.android.support:support-v4:19.1.0‘
28     compile ‘com.android.support:appcompat-v7:19.+‘
29 }

submodule(library)的build.gradle:

apply plugin: ‘android-library‘

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        packageName "com.baron.android.library"
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
        }
    }
}

dependencies {
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    compile ‘com.android.support:appcompat-v7:19.+‘
    compile ‘com.android.support:appcompat-v7:19.+‘
}

以上是一个project中基本的settings.gradle和build.gradle文件内。

  settings.gradle文件中的include ‘:app‘, ‘:library‘指明了AndroidStudioSample这个Project包含了app和library两个module;

  build.gradle主要分为四部分:apply plugin、buildscript、android和dependencies;

  1、apply plugin指明了使用的插件,apply plugin:"android"表示这是一个android项目,apply plugin:"android-library"表明了这是一个Android Lib项目;

  2、buildscript{...}这一块的内容定义了编译环境,比如依赖的gradle版本等;

  3、android{...}这部分定义了项目参数,比如包名、版本号、SDK版本、buildTypes、signingConfigs、productFlavors等等;

  4、dependencies{...}定义了依赖。

先说说dependencies,我们常见的依赖主要有三种:

1 dependencies {
2     compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])//本地jar包依赖
3     compile ‘com.android.support:appcompat-v7:19.1.0‘//从Maven仓库获取的依赖包,下同
4     compile ‘com.android.support:support-v4:19.1.0‘
5     compile ‘com.android.support:appcompat-v7:19.1.0‘
6     compile ‘com.android.support:support-v4:19.1.0‘
7     compile ‘com.android.support:appcompat-v7:19.+‘
8     compile project(‘:library‘)//对其他Lib项目的依赖,比如我们这个项目中的module library
9 }

 

好了,今天先写到这,后面再继续  :)