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. EntityFramework Core 学习扫盲

    0. 写在前面 1. 建立运行环境 2. 添加实体和映射数据库 1. 准备工作 2. Data Annotations 3. Fluent Api 3. 包含和排除实体类型 1. Data Annot ...

  2. windows 7 下elasticsearch5.0 安装head 插件

    windows 7 下elasticsearch5.0 安装head 插件 elasticsearch5.0 和2有了很大的变化,以前的很多插件都有了变化比如 bigdesk head,以下是安装he ...

  3. URL SCAN简介

    URL Scan简介 文/玄魂 目录 URL Scan简介 前言 1.1  安装 1.2 配置 修改 URLScan.ini 文件 配置 URLScan 用于依赖于 IIS 的应用程序   前言 Ur ...

  4. Strust2总结

    1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层).业务逻辑层.数据持久层.[其中WEB层会使用前端控制器模式] MV ...

  5. Python基础 --函数的参数

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...

  6. 使用python及工具包进行简单的验证码识别

    相信大家利用 Python 写的爬虫应该遇到过要输入验证码的尴尬局面,又或者写了个自动填充表单的小程序,结果就卡在了验证码上. 在ctf中有⼀一些题⽬目,本身有弱验证码识别绕过,那么我们怎么解决呢? ...

  7. CentOS 设置 oracle 开机自动启动

    CentOS 设置 oracle 开机自动启动 1. [root@localhost ~]# gedit /etc/oratab 文件内容为: # # This file is used by ORA ...

  8. Swift 里字符串(十一)OC 字符串和 Swift 字符串的转换

     to OC func _bridgeToObjectiveCImpl() -> AnyObject { if _guts.isSmall { return _guts.asSmall.wit ...

  9. POJ 2771

    #include <iostream> #include <string> #define MAXN 505 using namespace std; int _m[MAXN] ...

  10. 安装MySQL-python时报错

    (py27) [root@test SimpletourDevops]# pip install MySQL-python DEPRECATION: Python 2.7 will reach the ...