Android Studio 几种依赖方式的区别。

本文深入解析Gradle构建系统中的各种依赖类型,包括implement、compile、compileOnly等,及其在不同场景下的应用,如单元测试、debug和release模式,以及annotationProcessor和kapt在注解处理中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.implement

概念 : 将该依赖隐藏在内部,而不对外部公开。比如项目中有一个 mudule 是 basekit ,其内部用 implement 指令依赖了 glide 这个库, 那么在 app mudule 中无法调用 glide 库中的方法.

2.compile

概念: android studio 3.0 版本后废弃该指令 改用 api 代替, api 完全等同于之前的 compile 指令, 也就是普通的依赖, 第三方库在 mudule 中依赖后其他 mudule 都可以使用该库.

官方推荐在不影响的前提下优先使用 implement 指令依赖.

3.compileOnly

只在编译时有效,不会参与打包.

4.runtimeOnly

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

5.testImplementation

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

6.debugImplementation

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

7.releaseImplementation

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

8.annotationProcessor

annotationProcessor是APT(Annotation Processing Tool)工具中的一种,随着Android Gradle 插件 2.2 版本的发布,Android Gradle 插件提供了名为 annotationProcessor 的功能来完全代替 android-apt,不需要引入,可以直接在build.gradle文件中使用。

annotationProcessor顾名思义是注解处理器的意思。它对源代码文件进行检测找出其中的Annotation,根据注解自动生成代码。 Annotation处理器在处理Annotation时可以根据源文件中的Annotation生成额外的源文件和其它的文件,之后将编译生成的源文件和原来的源文件一起生成class文件

annotationProcessor生成额外文件的规则是在依赖库里定义的,只在编译的时候执行,但是库最终不打包到apk中

了解了annotationProcessor和kapt后在去看一些第三方库时,从库的引用方式就可以简单地看出它有没有使用编译期注解的技术了

9. kapt

kpat--Kotlin Annotation Processing,顾名思义,就是服务于Kotlin的Annotation Processing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值