当前位置: 首页 > news >正文

Android Build 依赖项

在项目中的Build.Gradle文件中dependencies代码块中添加指定依赖项。

有三种不同类型的依赖项

本地模块依赖项

implementation project(':mylibrary')

这个mylibrary 必须在 settings.gradle 中使用的库名称相同

本地文件依赖项

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/foo.jar', 'libs/bar.jar')

gradle 中的路径使用的是build.gradle的相对路径
fileTree 依赖整个目录中的文件
files 依赖多个单独的文件

依赖远程二进制文件

implementation 'com.example.android:app-magic:12.3'

依赖项配置

implementation依赖配置

  • 编译打包:使用 implementation 添加的依赖 , 会 参与到 编译过程 , 并会 打包到 Apk 文件中 ;
  • 不会传递:此类依赖,不会传递给其他模块;

示例: A 项目 中使用 compile 依赖 B 依赖库 , 即 A 在 编译构建时需要 B 依赖库 , 最终 B 依赖库会打包到 A 项目的 Apk 文件中 ;
如果 C 项目 依赖 A 项目 , 由于 implementation 配置不会传递依赖 , C 项目是不知道 A 项目的 B 依赖库的 , 也无法访问 B 依赖库 ;
如果使用 compile 或者 api 添加依赖 , 则会有大量的依赖传递 , 构建效率 会 非常低 , 构建时会 不停的检查依赖树 , 发现依赖传递后 , 还要 添加依赖的依赖 ;因此 这两个 依赖方式 不常用 , implementation 依赖是当前最常见的依赖方式 ;

api依赖配置

  • 编译打包:依赖会参与到 编译 构建过程 , 并且会 打包到 Apk 文件 中 ;
  • 依赖传递: 如果其它工程依赖本模块 , 则会 将依赖传递到其它工程 中 ;

使用场景 : 应用中使用的 基础依赖库 , 如 : 公用模块 , 工具库 , 底层库等 , 每个项目都需要该依赖库 , 适合使用依赖传递 ;

compileOnly依赖配置

  • 编译过程 : 依赖只会 添加到编译路径中 , 参与 编译 构建过程 , 但是不会 打包到 Apk 文件 中 ;
  • 作用时机 : 该类型依赖 , 只在编译过程中做一些辅助类的工作 , 在工程中没有使用该依赖库 ;

参考:https://cloud.tencent.com/developer/article/2253906

http://www.lryc.cn/news/294199.html

相关文章:

  • SpringMVC精简知识点
  • 如何写好论文——(17)如何用批判性思维检阅文献
  • git将项目的某次签入遴选(Cherry-Pick)另一个项目
  • 开源节点框架STNodeEditor使用
  • 算法每日一题: Nim游戏 | 找规律
  • 分类预测 | Matlab实现GAF-PCNN-MATT格拉姆角场和双通道PCNN融合多头注意力机制的分类预测/故障识别
  • Dockerfile保留字
  • Linux的7个运行级别
  • Linux期末总复习( 详解 )
  • 【Linux系统化学习】进程等待
  • 前端学习笔记 | HTML5+CSS3静态网页制作的技巧(持续更新)
  • docker安装-centos
  • Redis入门指南
  • K8s之configMap
  • 提高 NFS Azure 文件共享性能
  • 【Django-ninja】使用schema
  • 【TCP/IP】用户访问一个购物网站时TCP/IP五层参考模型中每一层的功能
  • Unity 开发注意事项
  • [Unity Sentis] Unity Sentis 详细步骤工作流程
  • 力扣144 二叉树的前序遍历 Java版本
  • 《Vue3 基础知识》 使用 GoGoCod 升级到Vue3+ElementPlus 适配处理
  • c#string方法对比
  • Electron实战(一):环境搭建/Hello World/打包exe
  • 【C++】运算符重载详解
  • 评论区功能的简单实现思路
  • Java自救手册
  • ASM-HEMT参数提取和模型验证测试
  • 浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?
  • 2020年通信工程师初级专业实务真题
  • Linux常见面试题汇总