1. gradle的基本概念

gradle构建
* Android Studio使用`Gradle`构建工具,Eclipse的ADT插件使用的是`Ant`构建工具
* 构建:生成app的过程,执行一些的命令(appt,aidl,javac,dex,apkbuilder,jarsinger,zipalign)

* 依赖管理:管理依赖的jar包
* 仓库:简单理解就是存的一些jar包云端
* maven
* ivy
* jcenter仓库地址
* 常见写法

mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。
jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的(Android一般使用的是这个仓库)。
mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的

* 仓库地址举例

repositories {
ivy {
url "http://ivy.petrikainulainen.net/repo"
}
}

repositories {
maven {
url "http://maven.petrikainulainen.net/repo"
}
}
repositories {
mavenCentral()
}
repositories {//默认仓库
jcenter()//它是当前世界上最大的Java和Android开源软件构件仓库
}

* Gradle构建脚本(build.gradle)指定了一个`项目`和它的`任务`,分Project和Module两个级别的脚本文件

* Gradle属性文件(gradle.properties)用来配置构建属性。
* Gradle设置文件(gradle.settings)对于只有一个项目的构建而言是可选的,如果我们的构建中包含多于一个项目,那么它就是必须的,因为它描述了`哪一个项目参与构建`。每一个多项目的构建都必须在项目结构的根目录中加入一个设置文件。

2. build.gradle

1. project:

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

buildscript {
repositories {
jcenter() //使用的仓库
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2' // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
} allprojects {
repositories {
jcenter()
}
} task clean(type: Delete) {
delete rootProject.buildDir
}

classpath 'com.android.tools.build:gradle:2.3.2'

插件的版本,没有则会自己去下载,也可以手动改成自己有的

注意:在manifest.xml中也可以去配置,当manifest.xml中的配置和gradle中的不一致,则以gradle为准,所以不建议在manifest.xml中去配置

2. module

apply plugin: 'com.android.application'    //application:这个module是一个应用程序,如果是其他的,也可以是库之类的

android {
compileSdkVersion
buildToolsVersion "25.0.2"
defaultConfig { //默认配置
applicationId "com.expample.test" //包名
minSdkVersion 15           //SDK的最小版本
targetSdkVersion 25         //编译SDK的版本
versionCode 1             //版本号
versionName "1.0"           //版本名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes { //构建类型
release { //release版本,也就是发型版本
minifyEnabled false //是否压缩:这里不压缩
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //进行混淆的规则的文件:用来防止反编译的11
}
}
}

//这个APP所依赖的东西
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) //依赖于libs目录下所有的.jar包
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}

compileSdkVersion 25

就是sdk目录下的/platforms目录下的Android版本号,没有则会去下载

buildToolsVersion "25.0.2"

就是sdk目录下build-tools目录下的版本号,没有则会去下载

3. gradle.properties

gradle.properties:用来修改gradle的一些参数和属性的

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file. # For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true

4. settings.gradle

settings.gradle:这个工程包含了哪些模块

include ':app'

Android studio的gradle的更多相关文章

  1. Android studio下gradle Robolectric单元测试配置

    android studio下gradle Robolectric单元测试配置 1.Robolectric Robolectric是一个基于junit之上的单元测试框架.它并不依赖于Android提供 ...

  2. android studio 使用gradle 导出jar包,并打包assets目录

    警告:本文年久失修. 随着android studio的升级 ,gradle的升级,严格按照本文的代码去做可能不会成功,希望依然可以作为解决问题的思路. 最近项目在做一个sdk,供别的开发者使用,所以 ...

  3. Android Studio :Android Studio 与 Gradle 深入【二】

    转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255063&extra=page%3D2%26filter%3Dautho ...

  4. [转]--android studio 使用gradle 导出jar包,并打包assets目录

    转自: http://www.cnblogs.com/wuya/p/android-studio-gradle-export-jar-assets.html   最近项目在做一个sdk,供别的开发者使 ...

  5. Android 项目利用 Android Studio 和 Gradle 打包多版本APK

    在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...

  6. 利用 Android Studio 和 Gradle 打包多版本APK

    在项目开发过程中,经常会有需要打包不同版本的 APK 的需求. 比如 debug版,release版,dev版等等. 有时候不同的版本中使用到的不同的服务端api域名也不相同. 比如 debug_ap ...

  7. 快速掌握 Android Studio 中 Gradle 的使用方法

    快速掌握 Android Studio 中 Gradle 的使用方法 Gradle是可以用于Android开发的新一代的 Build System, 也是 Android Studio默认的build ...

  8. Android Studio 解决 Gradle 依赖冲突的问题

    Android Studio 解决 Gradle 依赖冲突的问题 参考链接: Android Studio(Gradle)解决库依赖冲突问题:http://www.mobibrw.com/2016/3 ...

  9. android studio 更新 Gradle错误解决方法(Gradle sync failed)

    android studio 更新 Gradle错误解决方法   Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing ...

随机推荐

  1. HDU2955 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目大意:给你一个劫匪抢银行的最高安全概率,给你银行得到钱数,和劫匪在这个银行可以逃跑的概率,问你最多能抢 ...

  2. 设置cxGrid中RichEdit输入内容的格式

    设置cxGrid中RichEdit输入内容的格式 (2013-09-05 23:25:31) 转载▼红鱼儿新浪博客   分类: Delphi 遇到这样的问题,利用cxGrid,将一列定义为RichEd ...

  3. Android-AndroidStudio-AVD启动不了-emulator: Process finished with exit code 1

    注意:解决此错误目前只针对Windows系统的电脑: 1.AndroidStudio-->AVDManager(Create Virtual Device): 2.提示AVD启动不了,同时Eve ...

  4. 10 个免费的Bootstrap Admin 主题,模板收集

    In designing websites today, one of the must have frameworks is the twitter bootstrap. To those who ...

  5. 一些LinuxC的小知识点(二)

    一.read系统调用       系统调用read的作用是:从与文件描述符filedes相关联的文件里读入nbytes个字节的数据,并把它们放到数据区buf中.它返回实际读入的字节数.这可能会小于请求 ...

  6. C++ 设置Java 环境变量完整的例子

    #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <iostream& ...

  7. 抓取分析网页批量下载评书(3)之批量下载mp3

         本系列目录:    <1.搜索有声小说>    <2.分析详细页地址>     <3.批量下载mp3>      本篇是大结局,看过前两篇的放心吧,不会有 ...

  8. falcon适配ldap密码同步

    问题 小米的openfalcon在使用ldap首次登陆成功后,会在本地创建同名的账号, 这就有个问题当你更新了ldap的密码时,openfalcon是没有同步本地账号密码的功能 二次改造 方便我们de ...

  9. underscore.js源码研究(7)

    概述 很早就想研究underscore源码了,虽然underscore.js这个库有些过时了,但是我还是想学习一下库的架构,函数式编程以及常用方法的编写这些方面的内容,又恰好没什么其它要研究的了,所以 ...

  10. C#6.0语言规范(七) 表达式

    表达式是运算符和操作数的序列.本章定义了操作数和运算符的语法,求值顺序以及表达式的含义. 表达式分类 表达式分类为以下之一: 一个值.每个值都有一个关联的类型. 一个变量.每个变量都有一个关联的类型, ...