Gradle

Gradle与Ant、Maven类似,是一种项目构建工具,之前使用的Eclipse是使用Ant来实现项目构建的。在AS中第一次创建项目的时候,会自动下载Gradle在AS中第一次创建项目的时候,会自动下载Gradle。不过对国外的网站,网速太慢。

  • 使用本地已经下载好的gradle版本:File->Settings->搜索gradle,默认下载路径为本机用户下的那个.gradle里面。让Android Studio先自行下载一会Gradle,这样可以确定Gradle的安装目录和Gradle的版本。
  • 从Gradle的官网上下载指定的版本(不一定是最新的,我安装的Android Studio需要的是gradle-2.4版本),然后将下载的zip包扔到那个无规律字符串目录下。记住:不需要解压,android studio自己会去解包。

Gradle

项目gradle文件介绍:

1、MyApplication/app/build.gradle

整个项目最主要的gradle配置文件

//声明是Android程序,以前的写法:apply plugin: ‘android’,每一个Module都需要有一个gradle配置文件,语法都是一样,唯一不同的是开头声明的是 apply plugin: ‘com.android.library’(如果由其他的module)
apply plugin: ‘com.android.application‘
android {
    //编译SDK的版本,就是这个项目需要的android SDK版本;
    compileSdkVersion 21
    //android构建工具的版本,目录位于..your_sdk_path/build-tools/XX.XX.XX,buildToolsVersion的版本需要>=CompleSdkVersion; 高版本的build-tools 可以构建低版本编译的android程序;
    buildToolsVersion "21.1.1"

    defaultConfig {
        // 应用的包名,applicationId代表应用的包名
        applicationId "me.storm.ninegag"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0.0"
    }

    // java版本,android 5.0开始默认安装jdk1.7才能编译
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

    buildTypes {
        debug {
            // debug模式
        }

        release {
            // 是否进行混淆
            minifyEnabled false
            // 混淆文件的位置
            proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.txt‘
        }
    }

    // 移除lint检查的error
    lintOptions {
      abortOnError false
    }
}

dependencies {
    // 编译libs目录下的所有jar包
    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    compile ‘com.android.support:support-v4:21.0.2‘
    compile ‘com.etsy.android.grid:library:1.0.5‘
    compile ‘com.alexvasilkov:foldable-layout:1.0.1‘
    // 编译extras目录下的ShimmerAndroid模块,这一行是因为9GAG中存在其他Module
    compile project(‘:extras:ShimmerAndroid‘)
}

2、MyApplication/gradle/wrapper/gradle-wrapper.propreties

这个目录下有个 wrapper 文件夹,里面可以看到有两个文件,我们主要看下 gradle-wrapper.properties 这个文件的内容:

#Wed May 24 22:58:37 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

可以看到里面声明了gradle的目录与下载路径以及当前项目使用的gradle版本,这些默认的路径我们一般不会更改的,这个文件里指明的gradle版本不对也是很多导包不成功的原因之一。gradle-wrapper的作用就是使用统一的方式来管理gradle,保证gradle使用的是统一的版本。说明几点:

  1. android studio首先从distributionBase/distributionPath查找gradle。然后,从zipStoreBase/zipStorePath查找gradle。
  2. 如果上述都没有找到合适的gradle,则从distributionUrl指定的url去下载gradle。

注意:这里需要在.bashrc中增加GRADLE_USER_HOME的变量定义。distributionUrl 决定了这个项目使用的gradle版本,也就是说不同的项目可以使用不同的gradle版本

3、MyApplication/build.gradle

这个文件是整个项目的gradle基础配置文件:

buildscript {
    repositories {
        jcenter()
    }
    //配置的就是android gradle 插件的版本,gradle插件的版本号和gradle版本号是对应的,较新的插件版本需要要求较新版的gradle,所以提示你更新gradle; // gralde插件的具体版本。
    dependencies {
        classpath ‘com.android.tools.build:gradle:2.3.2‘
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

内容主要包含了两个方面:

  • 一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优
  • 另一个是声明了android gradle plugin的版本,android studio 1.0正式版必须要求支持gradle plugin 1.0的版本。

4、MyApplication/settings.gradle

这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,我们来看看9GAG该文件的内容:

include ‘:app‘, ‘:extras:ShimmerAndroid‘

文件中的 app, extras:ShimmerAndroid 都是module,如果还有其他module都需要按照如上格式加进去。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

相关推荐