Android开发-Gradle基础
来源:互联网 发布:盎格鲁撒克逊计划知乎 编辑:程序博客网 时间:2024/06/01 11:41
1. 什么是Gradle
Gradle 是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。百度百科
2. Gradle Android Plugin的使用
下面我们来看看Android studio中如何使用。Gradle中有许多可配置块,每个可配置块中有许多可配置的属性,这些配置块在android{ }块中
2.1 基本介绍
android studio中的project下面的build.gradle文件有这么一段代码。
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
buildscript{…} 配置了用于驱动构建的代码,上面的代码声明使用jCenter仓库,并指定jCenter的classpath。
当然,如果也可以将上述代码写在model的gradle文件最前面。
2.2 defaultConfig
默认配置。我们常见的有如下属性。
- applicationId 应用ID,也就是我们的包名
- versionCode 版本号 int型
- versionName 版本名称 string
- minSdkVersion 支持的最小版本号
- targetSdkVersion 希望的SDK版本(不知道解释的正确不)
2.3 buildTypes
构建类型,我们常见的就debug和release,当然还有其他。我们现在以release为例,简单说下其中几个属性
- minifyEnabled 是否开启代码压缩和proguardFiles配合使用
- shrinkResources 是否去除无用资源
- proguradFiles 混淆文件路径
- signingConfig 签名配置
buildTypes { release { minifyEnabled false shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.myConfig } }
2.4 signingConfigs
这个下面也是分块的,我们以上面用到myConfig为例,介绍下属性。
- storeFile 签名文件路径
- storePassword store密码
- keyAlias 别名
- keyPassword 签名密码
signingConfigs { debug { storeFile file('xxxx.jks') storePassword '123456' keyAlias 'com.xxxx' keyPassword '123456' } myConfig { storeFile file('xxxx.jks') storePassword '123456' keyAlias 'com.xxxx' keyPassword '123456' } }
2.5 sourceSets
我把这个叫做文件管理,这里可以指定一些文件的路径。先给出代码
sourceSets { main { manifest.srcFile 'src/main/java/AndroidManifest.xml' res.srcDirs = ['src/main/res'] } }
这里可以指定一些文件或者文件夹的路径,如配置文件,资源文件等等,还包括一下文件
- aidl 文件夹 aidl 文件
- jni 文件夹 .c,.h文件
- JniLibs 文件加 .so库
- assets 文件夹 资源
- Render Script文件夹 rs脚本
上面这些都是默认在main文件夹下的,我们当然可以通过配置路径来改变他们的位置。而且 我们可以将这里文件模块化(前面那博客有提到过。)
2.6 多渠道打包
这里就不在多说,以前博客有说到过。
2.7 lintOptions
配置一些lint的属性,如下。
lintOptions { warningsAsErrors false checkReleaseBuilds false abortOnError false }
具体意思就不在啰嗦了。
2.8 包管理
这里主要说下aar的引入。
在gradle中添加如下代码
repositories { flatDir { dirs 'libs' } }
然后添加依赖
compile(name: 'leakcanary-android-1.4-beta1', ext: 'aar')
name为aar包名字,ext为扩展名。
3. 总结
上面只是说了一些基本的属性,Gradle的强大之处远远不止这些。还是等我去学学Groovy再来嘻嘻研究下他的强大吧。
4.参考资料
- 中文版Gradle for Android
- 官方地址
ps:建议去看官方的文档
1 0
- Android开发-Gradle基础
- Android Studio Gradle基础
- android studio Gradle基础
- Android Gradle基础
- Android Studio Gradle基础
- Android Studio Gradle基础
- Android Studio--Gradle基础
- Android Gradle基础实践
- Android Studio--Gradle基础
- 第一章 Android Gradle 基础
- Android Gradle 基础认识
- Android之GRADLE基础
- Android Studio gradle基础
- Android Studio Gradle 基础
- Gradle for Android系列之一 Gradle基础
- Android Studio四--Gradle基础
- Android-Gradle基础脚本解析
- Android Studio 中 Gradle 基础
- http协议详解
- 架构师基本功:SOA
- Makefile知识点总结
- CodeForces-630 O. Arrow【向量+几何】
- [Android开发那点破事]解决android.os.NetworkOnMainThreadException
- Android开发-Gradle基础
- linux awk命令详解
- 约瑟夫问题(单循环链表解决)
- iOS中使用的tableview为group形式时如何设置不同sections的间距
- 傅里叶变换
- poj3252Round Numbers【数位dp】
- 走近腾讯 走进腾讯(一个关于面试准备的记录)
- LVS+Keepalived+LAMP+Gluster系统搭建
- Android之NetworkOnMainThreadException异常