Android Studio 3.0为了加快构建速度,使用了新的编译指令,原来的很多指令被弃用了。

Android Studio 2.x Android Studio 3.x
apk runtimeOnly
provided compileOnly
compile api
无对应值 implementation
debugCompile debugImplementation
releaseCompile releaseImplementation
androidTestCompile androidTestImplementation

一、 implementation与api的区别

这两者主要区别在于对module的可见性,而且可以加快编译速度

api:

A api B,B api C

A不仅可以引用B module的接口和类,而且还能直接引用C module的接口和类。

implementation:

A implementation B,B implementation C

这时A只可以引用B中的接口和类,不可以引用C中的接口和类。C 对 A 是不可见的!

二、compileOnly 和 api 区别

compileOnly 只提供编译支持,但是不会写入apk;
api不仅提供编译支持,而且会打入apk包体。

根据实际情况合理运用compileOnly和api指令,可以避免v7、v4等包的版本冲突和重复打包导致apk文件体积增大。

gradle命令中api和implement的区别相关推荐

  1. linux命令中:wq和:wq!区别

    [html] view plain copy //上面的命令只是在vi编辑命令中使用 首先使用esc(键退出)->:(符号输入)->wq(保存退出) :wq(保存编辑操作退出) :wq!( ...

  2. gi命令中reset,revert的区别和使用

    Git是一个分布式版本控制软件,最初的目的是更好的管理Linux内核开发设计,由林纳斯·托瓦兹创作. 现在的软件开发生产中,大部分都是基于git来管理的,相比于svn,有更多更好的特性.平时用来管理代 ...

  3. php chmod 777 chown,linux命令中chown与chmod的区别

    chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...

  4. JAVA中API和SPI的区别

    * API(Application Programming Interface ) 在java中,API是指可以用来完成某项功能的类.接口或者方法. SPI(Service Provider Inte ...

  5. Linux操作,su切换用户命令中有无横杠“-”的区别

    从root切换至oracle用户去登录oracle 切换用户和启动oracle命令如下: # 切换至oracle用户 [root@testdb ~]# su oracle # 登录数据 [oracle ...

  6. Servlet API中forward()与redirect()的区别?

    Servlet API中forward()与redirect()的区别? a.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这 ...

  7. linux基础:shell中的sh与bash区别与常用命令

    目录 一,什么是sh和bash? 二,shell的基本用法 2.1,变量 2.2,算术运算 2.3,使用 bash 计算器在shell脚本中进行浮点运算 2.4,shell中的条件判断命令test和[ ...

  8. 【转载】Gradle学习 第十一章:使用Gradle命令行

    转载地址:http://ask.android-studio.org/?/article/94 This chapter introduces the basics of the Gradle com ...

  9. api与implementation的区别

    一.从3.4版本的gradle开始,compile已经被api与implementation取代,官网也给出了三者之间的区别: 图1.api与implementation的区别 从官网介绍可以看出,i ...

  10. abortonerror_如何在多项目目录顶层的Android Gradle Plugin中禁用lint abortOnError

    我有一个顶级的 Android Gradle项目.这个项目下面嵌套了多个子项目(有时它们是2级深),即: top level project | project1 vendor libraries | ...

最新文章

  1. php封装pdo实例以及pdo长连接的优缺点
  2. Linux 系统编程
  3. 在清理卫生的时候面对奖状和过去的日记本应该怎么处理
  4. JVM源码阅读-Dalvik类的加载
  5. LeetCode 1954. 收集足够苹果的最小花园周长(数学)
  6. Cloud一分钟 |高通预在年底与苹果和解;比特币绝地反弹;广电拿下5G,或成第四大运营商...
  7. NLP将迎来黄金十年,7个案例带你入门(附Python代码)
  8. 考研编程练习----畅通工程
  9. 吴恩达机器学习logistic回归作业(python实现)
  10. 迎接蜕变,期待 Internet Exploer 9
  11. 2. crontab 的使用
  12. 录制软件obs的使用方法
  13. 专业商标制作,免费logo在线设计
  14. 一件虚拟连衣裙价值9500美元?然而这只是数字服装的开始……
  15. 微信有鸿蒙版的的吗,微信鸿蒙版本下载-微信鸿蒙版本下载最新官方版 v7.0.20-游人手游网...
  16. 谜底是计算机的谜语英语,英语谜语大全及答案
  17. SpringSecurity系列——会话管理,CSRFday8-1(源于官网5.7.2版本)
  18. FPGA数字信号处理(十三)锁相环位同步技术的实现
  19. 阿里云Mysql5.7 数据库恢复 qp.xb文件恢复数据
  20. 王杰与宣萱合作lt;老婆大人gt; 获封两个第一(图)

热门文章

  1. win7右键显示隐藏文件及扩展名
  2. 自然语言处理结合金融专业应用,主要在于资料搜集和处理。
  3. 交互设计如何为业务赋能——谈谈网易严选企业采购的主页设计
  4. 竖排文字的3种设计方法
  5. 三个月追求金牛全过程(图
  6. GigabitEthernet和Ethernet接口的区别
  7. SpringMVC下压缩文件下载
  8. n维球体,n维椭球体体积公式证明
  9. indexOf()用法
  10. uniapp 制作手机app程序, 使用uni.chooseVideo录制视频,视频播放模糊分辨率低的原因