gradle笔记

所谓好记性不如赖笔头今天记一下gradle的一点基础知识。

一:基础

gradleAndroid开发中的项目构建系统,其特点如下:

1打包、签名与发布方便

2. 使用领域驱动语言(DSL)来描述构建逻辑构建脚本使用Groovy
3. 内建的依赖管理系统,使用Maven或者Ivy

看一个最简单的Android项目build.gralde

buildscript {
repositories {
//使用maven中央仓库构建代码
        mavenCentral() 
}
dependencies {
//gradle插件版本号:
    classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

apply plugin: 'android'

android {
compileSdkVersion 22
	buildToolsVersion "22.0.1"

sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

    androidTest {
        manifest.srcFile 'tests/AndroidManifest.xml'
        java.srcDirs = ['tests/src']
        resources.srcDirs = ['tests/src']
        aidl.srcDirs = ['tests/src']
        renderscript.srcDirs = ['tests/src']
        res.srcDirs = ['tests/res']
        assets.srcDirs = ['tests/assets']
    }

    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        signingConfig signingConfigs.release
    }
    debug {
        debuggable true
        minifyEnabled false
        signingConfig signingConfigs.release
    }
    alpha {
        debuggable true
        signingConfig signingConfigs.release
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
    }
}

dependencies {

	//本地libs目录依赖模式:
compile fileTree(dir: 'libs', include: '*.jar')

	//本地项目依赖模式:
    compile project(':Library')

	//远程依赖模式:
    
	compile 'com.android.support:support-v4:19.+'
	compile 'com.android.support:appcompat-v7:19.+'
	compile 'com.android.support:recyclerview-v7:+'
	compile 'com.jakewharton:butterknife:6.1.0'
	compile 'de.greenrobot:eventbus:2.4.0'
	compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4'
	compile 'com.squareup.dagger:dagger:1.2.2'
	apt 'com.squareup.dagger:dagger-compiler:1.2.2'

}

上面的代码中就声明了我们的构建程序会使用Maven中央仓库

 

buildscript { ... } 配置驱动构建过程的代码,意思就是buildscript中的配置仅仅在构建过程中起作用,也就是构建程序所使用的配置。

 

apply plugin: 'android'  是指使用Android插件

 

android { ... } 配置了Android项目构建时需要的所有参数。

 

sourceSets { ... } 指项目的目录结构

 

buildTypes{ ... } 指项目的编译版本类型

   minifyEnabled 是否混淆
        proguardFiles 混淆规则文件

       debuggable 可否调试
        signingConfig 签名类型

 

dependencies { ... } 指项目所依赖的库



二:提高

Gradle脚本是使用Groovy语言来写的,Groovy中有一个很重要的概念你必要要弄懂–Closure(闭包)。从 从 C/C++ 语言的角度看 , 闭包和函数指针很像,如果闭包没定义参数的话 , 则隐含有一个参数 ,叫 这个参数名字叫 it ,和 和 this  的作用类

似 。

Closure 的定义格式是:

defClosure = {paramters -> code} //或者

def Closure = {无参数,纯 code} 这种情况不需要->符号

 

 

例如:

def closure = {// 闭包是一段代码 , 所以需要用花括号括起来..

String param1, int param2 -> //箭头很关键。前面是参数定义,后面是代码

println "this is code" //这是代码,最后一句是返回值,

}

 

 

Closure可以当做参数传递,把closure当做参数传递有以下几种语法规则:

1.只接收一个参数,且参数是closure的方法: myMethod(myClosure) 
2.如果方法只接收一个参数,括号可以省略: myMethod myClosure 
3.可以使用内联的closure:myMethod {printlnHello World} //gradle中常见的写法
4.接收两个参数的方法: myMethod(arg1, myClosure) 
5.4类似,单数closure是内联的: myMethod(arg1, { println Hello World’ }) 
6.如果最后一个参数是closure,它可以从小括号从拿出来: myMethod(arg1) { println   Hello World’ }

 

这个特点非常关键,因为以后在 Gradle 中经常会出现图 这样的代码:

buildscript { ... } 

android { ... }

sourceSets { ... } 

这样再回过头去看gradle就很容易理解了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。所以各大互联网厂商都瞄准移动互联网这个潮流进行各大布局,经过多年的大浪淘沙,各种移动操作系统的不断面世,而目前市场占有率最高的就是微信小程序,本次开发一套新冠肺炎服务预约微信小程序有管理员,医院,用户三个角色。管理员和医院都可以在后台网页登录,管理员功能有个人中心,医院管理,用户管理,防疫措施管理,疫苗信息管理,核酸检测管理,疫苗预约管理,核酸预约管理,接种信息管理,检测结果管理,系统管理。医院可以注册登录,管理疫苗信息和核酸检测信息,审核疫苗预约信息和核酸预约信息,查看接种信息和检测结果。用户可以在微信小程序注册登录,可以预约疫苗和核酸检查,可以查看到接种信息和检测结果。新冠肺炎服务预约微信小程序服务端用Java开发的网站后台,接收并且处理微信小程序端传入的json数据,数据库用到了MySQL数据库作为数据的存储。这样就让用户用着方便快捷,都通过同一个后台进行业务处理,而后台又可以根据并发量做好部署,用硬件和软件进行协作,满足于数据的交互式处理,让用户的数据存储更安全,得到数据更方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值