发表于: 2016-08-17 21:25:32

1 695


  • 一  句话说明 Gradle
    Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
    例:输入 苹果,梨子,香蕉。  输出 水果沙拉。  这就是构建的含义。叫做——make或者build 
    1:灵活的语言构建规则——构建的方式:利用一个基于java的语言——Groovy。 一门把java语言写的像脚本一样简单的语言。
    Groovy把我们写完的语言编译为 javaclass 然后启动 虚拟机执行。 
    2:Gradle是一种DSL :—— 它的特别的一种语言。
    二  Groovy介绍
    Groovy是一种动态语言,
    Groovy扩展了Java语言。
    具有像Python, Ruby 和 Smalltalk 语言特性的灵活动态语言
    一:
    变量定义可以使用关键字def,
    定义变量的时候可以不指定其类型,
    函数定义时也可以不指定。
    返回值也可以不指定类型,最后一行就是返回值
    二 
    作为动态语言,Groovy世界中的所有事物都是对象
    java中的基本数据类型 ,在Groovy中都是 包装类。
    Groovy中的容器类很简单,就三种:
     List:链表,
    Map:键-值表,
    Range:范围,它其实是List的一种拓展。
    三 闭包
    三 Gradle  是设么
    Gradle只是运用到Groovy的一小部分基础。
    Gradle是一个工具,同时它也是一个编程框架。
    一 何是编程框架
    每一个待编译的工程都叫一个Project。每一个Project在构建的时候都包含一系列的Task
    gradle 只是制定规责。 制定Task 。 然后具体操作由各种插件完成。  例:编译java代码的task 用 java插件完成。
    task是Gradle中的一种数据类型,它代表了一些要执行或者要干的工作。不同的插件可以添加不同的Task。每一个Task都需要和一个Project关联。
    setting.gradle  告诉Gradle这个multiprojects包含哪些子projects:
    build.gradle  构建。
    apply 是一个函数。
    apply plugin: 'com.android.library' <==如果是编译Library,则加载此插件  
    apply plugin: 'com.android.application' <==如果是编译Android APP,则加载此插件  
    apply from: rootProject.getRootDir().getAbsolutePath() + "/utils.gradle"  读取utils.gradle中数据   读取配置文件
    的versionName,或者是copy jar包/APK包到指定的目录
    // 声明是Android程序,apply方法,加载 编译 android App 时 加载此插件 
    apply plugin: 'com.android.application'
    android {
        // 编译SDK的版本
        compileSdkVersion 21
        // build tools的版本
        buildToolsVersion "21.1.1"
        defaultConfig {
            // 应用的包名
            applicationId "me.storm.ninegag"
            minSdkVersion 14
            targetSdkVersion 21
            versionCode 1
            versionName "1.0.0"
        }
        // java版本
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
        buildTypes {
            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模块
        compile project(':extras:ShimmerAndroid')
    }



返回列表 返回列表
评论

    分享到