Android Studio3.0正式版已经出来了,相比2.x的版本,Gradle版本也升级为了3.x,编译速度提高了不少。
在gadle3.0之后,默认的依赖由之前的compile更改为implementation

  • 对比表

    Android Studio 2.X Android Studio 3.X
    apk runtimeOnly
    provided compileOnly
    compile api
    没有对应 implementation
    debugCompile debugImplementation
    releaseCompile releaseImplementation
    androidTestCompile androidTestImplementation
  • api (compile)

    • 依赖向上传递
    • 若A api B, B api C,C module对A module可见
  • implementation (新指令: 具备依赖可见性)

    • 依赖不向上传递

    • 若A implementation B, B implementation C,C module对A module不可见

    • 若A implementation B, B api C,C module对A module可见

    • 功能同api,区别仅仅是增加了依赖可见性

  • compileOnly(provided)

    • 只在编译时有效,不会参与打包
    • 若A implementation C,打包后apk(A + C);而A compileOnly C,打包后apk(A);该指令实质:A module假装依赖了C module通过欺骗编译器编译时检测以避免java.lang.ClassNotFoundException编译报错
    • 使用情形
      • A implementation C,B implementation C,打包时A module生成aar(A + C),B module生成aar(B + C)
      • 若改成A implementation C,B compileOnlyC,打包时A module生成aar(A + C),B module生成aar(B)
      • 最终apk包(A + B + C),结果一致
      • 虽然aar(B)不真实依赖C module,但B module确实用到了C module的api。没有运行时错误的原因:aar(A + C)与aar(B)合并生成apk,B module运行时找到并调用aar(A + C)中的C module
  • runtimeOnly(apk)

    只在生成apk的时候参与打包,编译时不会参与,很少用。

  • debugImplementation(debugCompile)

    debugImplementation 只在debug模式的编译和最终的debug apk打包时有效。

  • releaseImplementation(releaseCompile)

    releaseImplementation 仅仅针对release 模式的编译和最终的release apk打包。

  • androidTestImplementation(androidTestCompile)

    androidTestImplementation 只在单元测试代码的编译以及最终打包测试apk时有效。

作者:Dsiner
链接:https://www.jianshu.com/p/83ddb81e73f9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最新文章

  1. Android进程间通讯
  2. DES对称性加密
  3. jsonp get 和 post
  4. 架构设计--逻辑层 vs 物理层
  5. Intel XDK问题
  6. C语言里的文件函数
  7. 盗链网易163、腾讯QQ、新浪sina、百度Baidu的图片之PHP独立版
  8. 2013年12月26日 星期四 doxygen入门--很好
  9. Visual Studio Team Services使用教程--Readers tfs组checkin权限修改
  10. Sharepoint 2013 左右"SPChange"一个简短的引论
  11. U盘启动盘安装Windows10操作系统详解
  12. Mergeable Stack ZOJ - 4016(list)
  13. zabbix3.2自动发现批量监控redis端口状态
  14. BUAA面向对象设计与构造——第一单元总结
  15. 如何在Github创建repository
  16. 爬起点小说 day02
  17. linux系统--用户和用户组
  18. 【Postgres】PostgreSQL配置远程连接
  19. JavaScript计算星期几
  20. learngin uboot design parameter recovery mechanism

热门文章

  1. Unity接入微信登录 微信分享 微信支付 支付宝SDK
  2. pypy安装与使用
  3. 已知X,Y独立,那么X^2与Y也独立
  4. Android 编译 product 分区
  5. linux环境,无dig命令-bash: dig: command not found?
  6. Learning Face Age Progression: A Pyramid Architecture of GANs-1-实现人脸老化
  7. 009-MySQL循环while、repeat、loop使用
  8. [LeetCode] 123. Best Time to Buy and Sell Stock III 买卖股票的最佳时间 III
  9. java的byte[]与String相互转换
  10. TCP/IP学习笔记13--IP地址的构成,广播地址,IP多播,子网掩码