Android系列:AndroidStudio3.x中api、compile和implementation的区别
首先在AndroidStudio3.x中compile已经过时
由implementation和api来代替
其次compile与api完全等同 3.x中可以完全将compile换成api
mplementation与api的区别
implementation编译的依赖只作用于当前的module。即app module依赖了other module,
other module中使用implementation编译的三方库(如glide)只对other module起作用,
app module中无法使用该三方库(glide);
如果other module 使用implementation依赖了base module,则APP module中无法使用base module。
举个示例:
我们把其它module中的对com.alibaba.fastjson:1.2.6引用改成implementation
那么我们在app module里面是无法使用的 因为implementation 只对当前module生效
便会提示:错误: 程序包com.alibaba.fastjson不存在
总体介绍
compile(api)
这种是我们最常用的方式,使用该方式依赖的库将会参与编译和打包。
provided(compileOnly)
只在编译时有效,不会参与打包,可以在自己的moudle中使用该方式依赖。比如com.android.support,gson这些使用者常用的库,避免冲突。
apk(runtimeOnly)
只在生成apk的时候参与打包,编译时不会参与,很少用。
testCompile(testImplementation)
testCompile 只在单元测试代码的编译以及最终打包测试apk时有效。
debugCompile(debugImplementation)
debugCompile 只在debug模式的编译和最终的debug apk打包时有效。
releaseCompile(releaseImplementation)
releaseCompile 仅仅针对Release模式的编译和最终的Release apk打包。
微信:17873041739
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?