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

相关推荐
私人珍藏库1 小时前
[Android] 一木百宝箱-万能百宝箱+抖音去水印等几百种功能
android·人工智能·app·软件·多功能
wupa2 小时前
在 enableEdgeToEdge 模式下处理软键盘与自定义面板协同
android
plainGeekDev3 小时前
ProGuard → R8
android·java·kotlin
雨白4 小时前
C 语言字符串:从字符数组、指针到核心操作实战
android
Java小白笔记5 小时前
MySQL中存储过程大表分批删除历史数据
android·mysql·adb
aidou13145 小时前
Kotlin中沉浸式状态栏显示布局
android·kotlin·windowmanager·沉浸式状态栏·insetslistener·insetscompat·systembars
我命由我123456 小时前
Android 构建项目问题:XML 片段出错,com.ctc.wstx.exc.WstxUnexpectedCharException
android·xml·android studio·android jetpack·android-studio·android runtime
阿pin6 小时前
Android随笔-pipe是什么?
android·linux·pipe
帅次6 小时前
Android 高级工程师面试:Flow 与状态流 近1年高频追问 22 题
android·面试·职场和发展
雨季余静6 小时前
RustDesk Android APK 从零编译全步骤
android