Android中compile,implementation和api的区别,以及gradle-wrapper的详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。
👉点击跳转到教程

前言:

compile,implementation和api的区别和其作用

compile和api会进行传递依赖,比如A依赖B,B依赖C,那么A会依赖C。依赖有什么用呢?那么就是A能使用C中的类。
implementation:不会进行传递依赖

如图所示:

在这里插入图片描述
重要:当我们使用了传递依赖compile,0级项目依赖了1级项目,1级项目依赖了2级项目,2级项目代码的改动,会导致0级项目重新编译。

如果使用implementation project(":library1")不进行传递依赖,2级项目代码的改动,不会导致0级项目编译,这样项目打包的总时间会变快。

好处:这样会使频繁改变2级项目的时候,总的打包时间不会增加很多。

api:跟compile作用是一样的 新版的gradle插件,把compile改成api,增加了不会传递依赖的选项implementation

Android项目中总会有这样一个文件gradlew,如图所示

在这里插入图片描述
这个脚本的作用是设置Java虚拟机的运行参数,并启动Gradle Wrapper主类来执行Gradle项目构建任务。
如果你已经有被wrap的gradle,那么就使用已经有的,如果没有就下载下来进行使用。gradlew 就是gradlewrapper的意思,就是可以通过wrapper去使用gradle。

好处:项目变小了,只需要指定需要版本的gradle,不需要将gradle放进项目里面,如果其他人要使用该项目,只需要使用使用其他人电脑上面的gradle即可,如果没有下载下来使用。

gradle-wrapper.properties:是一个配置文件,告诉gradle应该往哪儿放,去哪儿找,去哪儿下载。 这个只是配置文件,真正的gradle-wrapper是gradlew

在这里插入图片描述

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
gradle implementationcompile都是在项目使用的依赖管理关键字。 在旧版本的Gradle,使用的是compile关键字来引入项目所需要的依赖库。例如,使用compile 'com.android.support:appcompat-v7:28.0.0'来引入Android Support库的appcompat库。 然而,在Gradle 3.0及以上的版本compile已经被implementation所取代。这是由于implementation可以更好地处理依赖的传递性问题。所谓的传递性问题是指当一个库依赖另外一个库时,是否需要将被依赖的库也自动地引入到项目。 通过使用implementation关键字,Gradle能够更好地优化编译过程,只将直接使用的库引入项目,而不会将间接使用的库也引入项目。这可以有效减少项目的编译时间,并减少最终应用包的大小。 例如,假设库A依赖库B,而项目只直接使用了库A。如果使用compile关键字,则会将库B也引入到项目,即使项目并没有直接使用库B。但如果使用implementation关键字,则只会将库A引入项目,不会引入库B,从而减少了项目的依赖。 除了implementation之外,还有另外两个依赖管理关键字:api和testImplementationapi关键字可以将依赖库引入到项目的编译路径,并可以传递给依赖项目。而testImplementation关键字则是专门用于引入测试时所需的库。 总而言之,compile和implementation都是用于项目的依赖管理,但Gradle 3.0及以上的版本推荐使用implementation来更好地管理项目的依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值