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

相关推荐
TimeFine2 小时前
AI 编码工作流的设计
android·ai编程
骑着蜗牛撵大象3273 小时前
C++20 协程 × 屏障:手写一个 co_await 版 Barrier,让等待不再钉死线程
android·c++20·协程·并发编程·co_await·屏障同步
山东孙燕姿4 小时前
设备台账重构:从一张表到三层模型
android·java·网络·低代码·重构·rxjava
蒸鱼Yuzheng5 小时前
移动端 CPU 调度分析:线程亲和性、大小核迁移与卡顿
android·perfetto·性能分析·线程优化·cpu调度
booboosui6 小时前
安卓唤醒词:12 维 MFCC 加 DTW,阈值 1.8
android
传奇开心果6 小时前
Compose Multiplatform 共享边界实战:架构契约、互操作同步与可回退设计
android·kotlin
事圆则缓6 小时前
从开机到首帧:Android 系统与应用启动流程源码分析
android
AI吃大瓜6 小时前
指针压力表读数4:Android实现指针压力表读数(可实时检测)
android·指针读数·指针压力表·压力表·压力表读数
fengci.6 小时前
CTF2刷题记录(困难部分)
android·开发语言·前端·学习·php
hunterandroid7 小时前
[Android 从零到一] ARouter 路由框架原理:APT 生成路由表与组件化通信
android