分享好友 最新动态首页 最新动态分类 切换频道
Android Studio之Gradle和Gradle插件的区别
2024-12-27 00:41

什么是Gradle?什么是Gradle插件

Gradle 跟 Android Studio 其实没有关系,但是 Gradle 官方还是很看重 Android 开发的,Google 在推出 AS 的时候选中了 Gradle 作为构建工具为了支持 Gradle 能在 AS 上使用,Google 开发了一个 AS 的插件叫 Android Gradle Plugin  ,所以我们能在 AS 上使用 Gradle 完全是因为这个插件的原因。


Gradle           对应:是一个构建代码的工具gradle-wrapper.properties中的distributionUrl=https/://services.gradle.org/distributions/gradle-2.10-all.zip
Gradle插件  对应:是谷歌为使用Gradle工具而自行开发的工具,  build.gradle中依赖的classpath 'com.android.tools.build:gradle:2.1.2'


gradle-wrapper.properties中配置的是的Gradle的版本.

build.gradle中的依赖指定的是Gradle插件的版本.

详细说明

Gradle

  • 一个构建系统构建项目的工具,用来编译Android app能够简化你的编译、打包、测试过程。也就是把那一个个文件、文件夹按照一定的规则关联起来,形成一个项目的工具,它其实不仅仅是用在AndroidStudio上。在AS第一次创建项目会自动下载 Gradle,这个过程很漫长(100多M),但是第一次之后就ok了。
  • 维基百科是这样解释的:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。


    构建工具就是对你的项目进行编译、运行、签名、打包、依赖管理等一系列功能的合集,那如何理解构建工具

    我们以前用 Eclipse开发Android程序,而Eclipse最初是用来做Java 开发的,Googl为了能在 Eclipse 上进行Android 开发,开发了ADT 插件(Android Developer Tools,正是因为有了 ADT ,我们才可以在 Eclipse 上进行编译、运行、签名、打包等一系列流程。而这背后的工作都是 ADT 的功劳,ADT 就是我们的构建工具。    

    一般来说构建工具除了以上提到的编译、运行、签名、打包等,还具备依赖 管理的功能,什么是依赖管理呢?我们以前在 Eclipse 上开发 Android 引用第三方库,一般都是先下载 jar 文件,然后把 jar 文件添加到 libs 目录。但假设第三方库有更新,需要下载最新的 Jar 文件替换掉原来的,非常繁琐,可以说这种方式只有依赖,而没有管理。    

    Gradle 引用第三方库方式是这样的:    compile 'com.android.support:support-v4:24.0.1'    
    我们直接可以看到源地址,升级的话直接改下版本号就可以了,这就是所谓的依赖管理。    

    传统的构建工具有 Make、Ant、Maven、Ivy等,而 Gradle 是新一代的自动化构建工具,它是一个独立的项目,跟 AS、Android 无关,官方网站:https://gradle.org/ 
     类似 Ant、Maven这类构建工具都是基于 xml 来进行描述的,很臃肿,而 Gradle 采用的是一种叫做 Groovy 的语言,语法跟 Java 语法很像,但是是一种动态语言,而且在 Java 基础上做了不少改进,用起来更加简洁、灵活,而且 Gradle 完全兼容 Maven、Ivy,这点基本上宣布了 Maven、Ivy 可以被抛弃了,Gradle 的推出主要以 Java 应用为主,当然目前还支持 Android、C、C++。

    classpath 'com.android.tools.build:gradle:2.1.2' 

    这个就是依赖 gradle 插件的代码后面的版本号代表的是 android gradle plugin 的版本,而不是 Gradle 的版本,这个是 Google 定的,跟 Gradle 官方没关系。关于 android gradle plugin 的更多信息可以到这里查看,这里列举了 android gradle plugin 每个版本的具体变化与具体功能:http://tools.android.com/tech-docs/new-build-system   

Gradle插件

  • 我们在AS中用到的Gradle其实应该被叫做Android Plugin for Gradle,它本质就是一个AS的插件,它一边调用 Gradle本身的代码和批处理工具来构建项目,一边调用Android SDK的编译、打包功能,从而让我们能够顺畅地在AS上进行开发。
  • Gradle插件跟 Android SDK BuildTool有关联,因为它还承接着AndroidStudio里的编译相关的功能,这也是我们要在项目的 local.properties 文件里写明Android SDK路径、在build.gradle 里注明 buildToolsVersion 的原因。
  • Gradle插件是独立于Android Studio运行的,所以它的更新也是与Android Studio分开的。Gradle插件会有版本号,每个版本号又对应有一个或一些 Gradle发行版本(一般是限定一个最低版本,也就是我们常见的类似gradle-3.1-all.zip这种东西

如果这两个版本对应不上了,那你的工程构建的时候就会报错。
对应关系如下(官网链接:Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers

插件版本Gradle版本1.0.0 - 1.1.32.2.1 - 2.31.2.0 - 1.3.12.2.1 - 2.91.5.02.2.1 - 2.132.0.0 - 2.1.22.10 - 2.132.1.3 - 2.2.32.14.1+2.3.0+3.3+3.0.0+4.1+3.1.0+4.4+

Android Studio 3.0 之后自动将插件版本升级到3.0.0,所以我们也需要对应地把Gradle升级到4.1才行

  • Gradle Wrapper意为 Gradle 的包装,它的作用是简化Gradle本身的安装、部署。不同版本的项目可能需要不同版本的Gradle,手工部署的话比较麻烦,而且可能产生冲突,所以需要Gradle Wrapper帮你搞定这些事情。Gradle Wrapper是Gradle项目的一部分

    假设我们本地有多个项目,一个是比较老的项目,还用着 Gradle 1.0 的版本,一个是比较新的项目用了 Gradle 2.0 的版本,但是你两个项目肯定都想要同时运行的,如果你只装了 Gradle 1.0 的话那肯定不行,所以为了解决这个问题,Google 推出了 Gradle Wrapper 的概念,它在你每个项目都配置了一个指定版本的 Gradle ,你可以理解为每个 Android 项目本地都有一个小型的 Gradle ,通过这个每个项目你可以支持用不同的 Gradle 版本来构建项目。    

     

    ,接下来就是教大家用命令行测试下,请大家在终端或者 AS 带的终端上切换到所在项目的目录,然后输入 https://blog.csdn.net/LVXIANGAN/article/details/gradlew -v (win用户直接输入 gradlew -v) ,即可以查看当前项目所用的 gradle 的版本,gradlew 即为 gradle wrapper 的缩写如果你是第一次执行命令行,那么会出现一个下载的提示紧接着会打印一个个的点,这个过程很漫长,依赖你的网速,时间几分钟到几十分钟不等。    

    有人有疑问,我 AS 上明明已经可以正常运行该项目的,说明 Gradle 已经下载过了,为什么命令行还要再下载一次?我也一直有这个疑问,理论上是不该再下载的,但是事实他就是要重新下载一次,我猜测可能是bug吧。
    如果下载完成输入 https://blog.csdn.net/LVXIANGAN/article/details/gradlew -v 出现如下结果,证明你的项目是ok的,否则就是你的项目配置有问题了。    


       

最新文章
"瞬映:一站式AI数字人视频创作平台" – 技术分享
网址:https://vtuber.aicubes.cn/home/index/随着数字时代的到来,视频内容已经成为传递信息、教育、娱乐和营销的重要手段。然而,制作高质量视频往往需要专业的技能、昂贵的设备和大量的时间。瞬映AI数字人制作平台的出现,为视频创作领
网贷逾期协商只还本金流程是怎样的?
网贷逾期协商只还本金流程小编导语随着互联网金融的发展,网贷已经成为许多人获取资金的重要途径。在借贷过程中,由于各种原因,不少借款人面临着逾期问。逾期不仅会影响个人信用,还可能导致高额罚息和法律诉讼等问。在这种情况下,许多借
谷歌二次验证 Google Authenticator
version: '3' server: command: "php vendor/spiral/roadrunner-laravel/bin/rr-worker start" http: address: 0.0.0.0:8080 middleware: ["static", "headers", "gzip"] pool: headers: response: X-Powered-By: "R
SVN外链
使用Subversion进行版本管理时,有时需要将一些公共库或者开源库链接到自己项目中,为了同时做到与外部库实时更新,使用Subversion的外链功能,从而将外部的库当做本地项目的一部分。通过Tortoise客户端,将
软件外链建设:全方位指南
软件开发是一个竞争激烈的行业,在其中脱颖而出至关重要。外链建设是提高网站权威和知名度的有效方式。本规划师将提供一个全面的计划和执行方案,以帮助您有效地建立软件外链,提高您的网站在搜索引擎中的排名。目标受众该外链建设规划师的
新建改扩建227所公办中小学,增加学位33.99万个!东莞教育吹响“千日攻坚号”
  2月3日,东莞市政府印发《东莞市关于加快公办中小学建设的实施意见》(以下简称为《实施意见》)的通知,聚焦教育投建和学位供给的瓶颈问题,这标志着东莞教育扩容提质千日攻坚行动正式打响。  根据《实施意见》,千日攻坚行动期间将
鑫彩平台注册平台
鑫彩平台注册平台应有尽有多种玩法全面查看和掌握,推荐专业彩票预测方式,让查询更高效率,从手机上查看中奖信息很方便,拥有全新彩票界面让您轻松成为大神,注册就送福利,每天都能抽奖。1、开奖数据内容是会进行完整的统计呈现,快速找
把电脑搬到“云”上,开启智能生活办公新篇章
把电脑搬到“云”上是种什么体验?出差旅途中,突然有紧急工作要处理,打开PAD登录移动云电脑账号,PAD秒变工作电脑,资料文件实时同步。想要感受一把黑神话·悟空的创新玩法,无奈电脑配置太弱,不用更新硬件,用移动云电脑、电脑配置云端
超逼真美女写真生成:揭秘最强AI工具与实用教程!
步骤1:访问搜狐简单AI小程序打开微信,搜索“搜狐简单AI”小程序,点击进入。步骤2:选择生成选项在首页,选择“美女写真生图”选项。步骤3:调整参数根据自己的需求,选择不同的风格、背景、发色等,尽可能详细地规划你想要的效果。步骤4
楚雄网站关键词优化排名
进行楚雄网站关键词优化排名可以通过以下步骤来提高搜索引擎优化(SEO)的效果:1. 关键词研究: - 利用工具(如Google关键词规划师、Ahrefs、SEMrush)找出与您网站相关且搜索量高的关键词。 - 考虑长尾关键词,这些关键词通常竞争较小且更
相关文章
推荐文章
发表评论
0评