Android Studio教程(五)之Gradle
2016-06-10 21:15
615 查看
一、Gradle基础
1、Gradle概念
Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。2、Gradle构建
Android Studio使用Gradle构建工具,Eclipse的ADT插件使用的是Ant构建工具。要知道构建的概念首先了解下程序的生成过程,可以百度一下,有很多优秀的博文。通过对博客的阅览,初步知道程序的生成过程其实就是将.dex文件、资源文件和.aidl文件打包成apk的过程。Gradle针对不同语言有不同插件,在Android平台叫Android
Gradle Plugin。
3、为什么使用Gradle
因为Gradle内置通过Maven和Lvy进行依赖管理。依赖管理又是什么意思呢?蛮简单来说就是管理依赖的jar包。
那仓库又是什么东西呢?仓库:简单理解就是存的一些jar包的云端
常见的仓库有如下三种:
* maven
* ivy
* jcenter仓库地址
常见写法
mavenCentral()别名,表示依赖是从Central Maven 2仓库中获取的。
jcenter()别名,表示依赖是从Bintary’s JCenter Maven仓库中获取的。
mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的
仓库地址举例
repositories {//默认仓库
jcenter()//它是当前世界上最大的Java和Android开源软件构件仓库
}
4、Gradle配置
1、配置Gradle的环境变量:①配置GRADLE_HOME-->D:\Android\Android Studio\gradle\gradle-2.10
②配置path-->%GRADLE_HOME%\bin
2、配置GRADLE_USER_HOME(随意指定一个目录主要是防止使用c盘过大空间)
-->D:\java\gradle\.gradle 默认是在C:\Users\ifengouy\.gradle
注:可在工作空间的build.gradle查看Gadle的使用的版本。
二、项目中Gradle的含义
在AS项目中,项目下以及每个modle各有一个gradle脚本。1、MyApplication/build.gradle
这个文件是整个项目的gradle基础配置文件,如下:// 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.1.0' // 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 }
内容主要包括以下两方面:
一个是声明仓库的源,这里可以看到是指明的jcenter(),之前版本则是mavenCentral(), jcenter可以理解成是一个远程仓库,兼容maven中心仓库,而且性能更优。
另一个是声明了android gradle plugin(Gradle插件)版本,需和AS安装目录下的gradle版本一致。入我的在D:\Android\Android
Studio\gradle目录下:
2、MyApplication/App/build.gradle
这个文件是app文件夹下这个Module的gradle配置文件,也可以算是整个项目最主要的gradle配置文件,如图:// 声明是Android程序,如果是.library则为类库 apply plugin: 'com.android.application' android { // 编译SDK的版本,对应sdk的platforms compileSdkVersion 23 // build tools的版本,对应sdk的build-tools buildToolsVersion "23.0.3" //等价于eclispe的<usesdk/> defaultConfig { // 应用的包名 applicationId "com.example.ifengouy.myapplication" //等价于eclipse的minSdkVersion,表示支持的最低的android系统 minSdkVersion 15 //等价于eclipse的targetSdkVersion,表示支持的最高android系统 targetSdkVersion 23 versionCode 1 versionName "1.0" } // java版本 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { //发行 release { //打包的时候是否进行压缩,false表示不压缩 minifyEnabled false //proguard-rules.pro定义混淆规则的文件 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } //依赖 dependencies { //编译libs目录下的所有jar包 compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' // 编译extras目录下的ShimmerAndroid模块 compile project(':extras:ShimmerAndroid') }
说明:buildToolsVersion:这个需要你本地安装该版本才行,很多人导入新的第三方库,失败的原因之一是build version的版本不对,这个可以手动更改成你本地已有的版本或者打开SDK
Manager 去下载对应版本。
3、MyApplication/settings.gradle
这个文件是全局的项目配置文件,里面主要声明一些需要加入gradle的module,如我的MyApplication项目就包含app这一个model。include
':app'
4、注意如下三个常见错误
compileSdkVersion不存在buildToolsVersion不存在
com.android.tools.build:gradle:2.1.0不存在
如果出是由于如上三个版本不对,需进行配置,配置成电脑上已经安装的版本即可。
相关文章推荐
- Android开发环境搭建的窍门以及难点解决
- Android 关于 OnScrollListener 事件顺序次数的简要分析
- Android Studio 标题栏消失
- android中布局文件中所需的RGB颜色对照表
- 实现Activity和Service通信的几种方案
- Android shape属性
- Android 屏幕保持常亮
- Android textview设置不同的颜色和大小
- Android尺子
- Android listview加载不同布局与adapter用法
- java/android 设计模式学习笔记(8)---桥接模式
- (转载)Android模拟器-Genymotion的下载和添加Android虚拟系统
- Android Studio示例项目
- Android JNI开发之使用Lame将录音转MP3
- 安卓手机蓝牙控制智能小车 android程序设计
- Android Handler 机制
- AndroidStudio常用快捷键
- Android AsyncTask 应用
- Android XML解析
- Android多线程性能优化(二)