日积月累--Gradle的使用
2016-01-04 11:05
671 查看
前言
本文用于记录对gradle使用的一些新知识。以前记录的都写在了不同的学习笔记了,阅读起来十分的不方便。在此汇总,不断添加。我对Gradle的理解
Gradle是基于Groovy脚本语言的一个应用构建工具。AndroidStudio中应用的构建用到了Google开发的Gradle plugin,共三个分别为:Type | Description |
---|---|
AppExtension | android extension for com.android.application projects. |
LibraryExtension | android extension for com.android.library projects. |
TestExtension | android extension for com.android.test projects. |
入门(能看懂)
会用,能写
插件的开发
作为一个普通的android开发者,能看懂足以,也就是第一阶段,这个很容易满足。达到第二个层级,就有些难度了,这需要你对Groovy有一个深入的了解,对Google官方的插件会用。对于第三个层次,需要你对Gradle构建框架有一个清晰的认识。以上仅仅是个人理解,不当之处,还请指正。
Gradle的基本结构解析
以下部分内容知识译自官方文档Configuring Gradle Builds 链接被墙,大家可以查看离线的文档。本地文档位置为:~/sdk/docs/tools/building/configuring-gradle.html除了官方文档外,再推荐几篇写的不错的关于gradle的文章:
Android Studio系列教程四–Gradle基础
拥抱Android Studio:从ADT到Android Studio
拥抱Android Studio(二):Android Studio与Gradle深入
项目的build.gradle的基本结构解析
buildscript { repositories { jcenter() //这是构建插件所使用的远程库 } dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha3' //这是项目所使用的 Android gradle 版本 } } allprojects { repositories { jcenter() //这是使用远程库依赖的时候,远程库 } } task clean(type: Delete) { delete rootProject.buildDir }
moudle的build.gradle解析
apply plugin: ‘com.android.application’–这是android官方插件,可以参考官方文档(这个文档很重要):Android Plugin DSL Reference,build.gradle出现的那些方法,字段等都来源于这个插件。我们可以将这个插件理解为Gradle构建工具框架。apply plugin: 'com.android.application' //构建工具插件,这个插件是android官方写的。此外还有com.android.libilary插件。 /*这个配置需要放在顶部,并且不同的plugin对应不同的android{..}*/ android { //configures all the Android-specific build options: //用于配置Android指定的必须的构建选项 compileSdkVersion 19 //用于编译的sdk版本; buildToolsVersion "19.0.0" //构建工具版本 defaultConfig { /* defaultConfig是核心配置,实质是重写了ant中AndroidManifest.xml中的一些配置。 .*/ minSdkVersion 8 //最小支持的sdk版本 targetSdkVersion 19 //目标支持sdk版本 versionCode 1 //版本代号 versionName "1.0" //版本名称 } buildTypes { /*buildTypes元素控制着怎样去构建你的app。默认的,构建系统定义两种类型:debug和release版。debug版的构建类型包含了调试符号和debug.key的签名。release构建版默认的不会被签名。下面的得这个例子使用了构建文件ProGuard来配置release版。 */ release { minifyEnabled true //是否需要混淆代码 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' //用于混淆的配置文件 } } } dependencies { /*The dependencies element is outside and after the android element. This element declares the dependencies for this module. Dependencies are covered in the following sections. dependencies元素,不在android元素中。这个元素声明了独立于项目的内容。 */ compile project(":lib") //引用项目的包 compile 'com.android.support:appcompat-v7:19.0.1' //引用远程包 compile fileTree(dir: 'libs', include: ['*.jar'])//引用moudle的本地包 }
Gradle新知识
通过配置build.gradle来访问一些参数。具体可通过BuildConfig来进行访问
例如:defaultConfig { buildConfigField "String","TWITTER_TOKEN",'"SDASJHDKAJSK"' } buildTypes { debug { buildConfigField "String","API_URL",'"http://api.dev.com/"' buildConfigField "boolean", "REPORT_CRASHES", "true" } release { buildConfigField "String","API_URL",'"http://api.prod.com/"' buildConfigField "boolean", "REPORT_CRASHES", "false" } }
可以从BuildConfig的final BuildConfig.TWITTER_TOKEN,BuildConfig.REPORT_CRASHES与BuildConfig.API_URL进行访问,后两个根据所在的build类不同也会有差异。
以上知识来源于: 受用不尽的Gradle使用方法与技巧
Gradle官方的一些文档
Google官方关于android的gradle插件文档Android Plugin DSL ReferenceGradle官方文档主页:Gradle Documentation包含三部分的内容:
用户手册: User Guide 提供一些关于Gradle的基础知识和特性的讲解,适合入门者。
索引: DSL Reference 针对经常用到gradle构建工具的用户,提供的索引指南.
API文档API Reference 提供给插件开发者和高级用户使用的api文档。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories