Android3_了解Gradle工具
打开项目级别的build.gradle看一下,然后详细分析一下:
repositories这个闭包声明了jcenter()和google()。两个都是代码托管仓库。很多Android项目都会选择将代码托管到jcenter或google上。声明了这两行,我们就可以轻松地引用任何jcenter或google上的开源项目了。
dependencies闭包中使用classpath声明了一个插件。因为gradle项目不是专门为了android项目而开发的。java、c++很多项目都可以用gradle来构建。如果想要用它来构建Android项目,则需要声明如上所示名称的插件。最后面的数字是插件的版本号。
这个build.gradle文件通常情况下不需要修改,除非要添加一些全局的项目构建配置。
接下来是模块的build.gradle:
这个文件相对复杂些,开始逐行分析一下。
apply plugin: 'com.android.application' //这行表示这个是程序应用模块,如果application改成library的话,就表示程序库模块。
接下来是一个叫做Android的闭包:
compileSdkVersion 29 //表示的是项目的编译SDK版本,这里是29。
buildToolsVersion "29.0.2" //项目构建工具的版本
然后是一个叫做default config的闭包,可以对项目的更多细节进行构建:
applicationId "com.example.helloworld" //项目的包名
minSdkVersion 15 //最低兼容的安卓系统版本为15
targetSdkVersion 29 //系统会为你的应用程序在该目标版本上启动最新的功能和特性
versionCode 1 //用于指定项目的版本号
versionName "1.0" //用于指定项目的版本名
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //大概是配置测试的模块,非必要
接下来看下buildTypes这个闭包:
buildTypes {
release { //该闭包用于对正式版安装文件的配置
minifyEnabled false //是否对项目代码进行混淆,false表示不混淆
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' //用于指定混淆时的规则文件,这里指定了两个文件,一个是proguard-android-optimize.txt表示对所有项目的通用混淆规则,另一个proguard-rules.pro表示在当前项目的根目录下,里面可以编写对当前项目特有的混淆规则。
}
}
以上就是android闭包的大概解释,接下来分析一下dependencies闭包。
这个闭包非常强大,它可以指定当前项目所有的依赖关系。
通常Android Studio项目一共有3种依赖方式:本地依赖、库依赖、远程依赖。
本地依赖可以对本地的Jar包或目录添加依赖关系,
库依赖可以对项目中的库模块添加依赖关系,
远程依赖则可以对jcenter库上的开源项目添加依赖关系。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) //本地依赖声明,将libs目录下所有.jar后缀的文件都添加到项目的构建路径中
implementation 'androidx.appcompat:appcompat:1.0.2' //这是一个远程依赖格式,最新AndroidX的,详细了解末尾链接
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' //这也是一个远程依赖格式,最新AndroidX的,详细了解末尾链接
testImplementation 'junit:junit:4.12' //声明了一个测试用例库
androidTestImplementation 'androidx.test:runner:1.1.1' //声明了一个测试用例库
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' //声明了一个测试用例库
}
====================================================
相关链接:
Gradle简易入门:https://blog.csdn.net/j3t9z7h/article/details/81976774
Gradle超详细解析:https://www.jianshu.com/p/822e44a5ea97
AndroidX 了解一下:https://blog.csdn.net/qq_17766199/article/details/81433706
AndroidX 它来了:https://blog.csdn.net/mhhyoucom/article/details/83061601
Android3_了解Gradle工具的更多相关文章
- 用IntelliJ IDEA创建Gradle项目简单入门
Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...
- Gradle 下载
gradle各个版本的下载地址 :http://services.gradle.org/distributions 下载完后的gradle怎么使用呢? //下面是网上提供的方法,仅供学习参考 在 ht ...
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- Android Studio And Gradle
AS特色: 智能感知体验特好,堪比VS 布局预览,手写布局后预览页面即时显示,便于布局调整和优化 编辑速度飞快流畅,毫无eclipse的卡顿 布局或源码中有图标和颜色的预览,十分直观 调试时体验极佳 ...
- 为Android Studio 项目手动下载gradle
在http://developer.android.com/samples/index.html上下载的例子,导入Android Studio的时候,第一件事就是下载项目对应版本的gradle.gra ...
- 在Eclipse IDE使用Gradle构建应用程序
文 by / 林本托 Tips 做一个终身学习的人. 1. 下载和配置Gradle Gradle Inc.是Gradle框架开发的公司,为Eclipse IDE提供了Gradle工具的支持. 此工具可 ...
- Android Gradle使用总结
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/77678577 本文出自[赵彦军的博客] 其他 Groovy 使用完全解析 http ...
- gradle 编译kafka源码慢
我前提已经在环境变量中将GRADLE_HOME设置到了gradle的目录(在E盘),并且在环境变量里设置了本地仓库GRADLE_USER_HOME. 编译kafka源码时候,很慢很慢.百度了一下,有说 ...
- 导入gradle项目
1.1 代码下载 将代码下载到本机具体位置: 根据svn地址用外部svn工具导入项目到本地一个目录 比如 d:/a 1.2 导入工程 1.2.1 导入gradle工具 1.2.2 选择代码路径 1.2 ...
随机推荐
- python 缓冲区 subprocess 黏包 黏包解决方案
一.缓冲区 二.两种黏包现象 两种黏包现象: 1 连续的小包可能会被优化算法给组合到一起进行发送 黏包现象1客户端 import socket BUFSIZE = 1024 ip_prort = (' ...
- [ITOO]动态建库 标签: 库数据库mysql 2016-07-17 21:23 241人阅读 评论(2) 收
最近一直在做权限系统的动态建库,动态建库,说白了就是在你点击"注册"按钮的时候,根据你输入的信息,来创建一个企业所需要的数据库的过程,因为现阶段并没有提供购买等功能,所以暂时咱们是 ...
- MacOS代理设置(桌面应用代理设置&Terminal代理设置)
MacOS代理分为桌面应用代理设置&Terminal代理设置,使用代理软件默认只会开启桌面应用代理,Terminal代理需要单独配置 桌面应用代理设置 Terminal查看桌面应用代理设置 ...
- JAVA内存dump
# 注意点: # 项目运行的用户 # 使用的jdk版本下的jstack去查看 /opt/jdk1..0_191/bin/jmap -dump:format=b,file=/webser/www/`da ...
- iOS 9适配系列教程:后台定位
http://www.cocoachina.com/ios/20150624/12200.html Demo:GitHub地址 [iOS9在定位的问题上,有一个坏消息一个好消息]坏消息:如果不适配iO ...
- oracle函数 RTRIM(c1,[,c2])
[功能]删除右边出现的字符串 [参数]C1 字符串 c2 追加字符串,默认为空格 [返回]字符型 [示例] SQL> select RTRIM('gao qian jingXXXX','X') ...
- Python关键点常识
关键点常识 Python的发音与拼写 Python的作者是Guido van Rossum(龟叔) Python正式诞生于1991年 Python的解释器如今有多个语言实现,我们常用的是CPython ...
- html选择题
1.下面关于css样式和html样式的不同之处说法正确的是(A) A.html样式只影响应用它的文本和使用所选html样式创建的文本 B.css样式只可以设置文字字体样式 不仅仅能够设置 ...
- JS iFrame 加载慢怎么解决
在项目中经常要动态添加iframe,然后再对添加的iframe进行相关操作,有时候会遇到iframe加载很慢什么原因呢,该如何解决呢?带着这个问题一起通过本文学习,寻找答案吧! aaa.html &l ...
- 推荐几个web前端比较实用的网站
第一次写博客,说实在的有点紧张和兴奋,哈哈哈哈,本人工作了有两年的时间,平时也有做笔记的习惯,但是都做得乱七八糟的,所以就想通过写博客来记录.好了,废话不多说了,先来几个觉得在工作中使用到的,还不错的 ...