Android gradle编译指令(implementation、api、provided 等)

网友投稿 1364 2022-05-29

Android Studio 3.0 开始废弃(obsolete)了很多原有的指令,并使用新的指令来代替它们。目的是为了加快编译构建的速度。

新旧指令对比

Android Studio 3.X 的依赖关系

Unit Test implementation 输出为 testImplementation

Test implementation 输出为 androidTestImplementation

apk & runtimeOnly

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

provided & compileOnly

provided只提供编译支持,但是不会写入apk。使用provide可以避免支持包版本冲突。

例如:

客户提供了一个接口文档,所有厂商都必须按这份接口文档做。做好之后不要将这份公共的接口 jar 包打包进去。这时候就可以这种依赖方式了。

compile & api、implementation

compile 是和 api 对应的,两者效果相同。

api 与 implementation 的区别在于对外的可见性。

例如:

A api B,B api C

那么 A 模块不仅可以引用 B 模块,还可以引用 C 模块的接口和类。

A implementation B,B implementation C

那么 A 模块只能引用 B 模块的接口和类,不能引用 C 模块,也就是说 C 对于 A 是不可见的。这样做的好处是提高了编译和链接的速度。

testCompile(testImplementation)

testCompile 只在单元测试代码时有效。

debugCompile(debugImplementation)

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

releaseCompile(releaseImplementation)

Android gradle编译指令(implementation、api、provided 等)

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

Android API Gradle

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python爬虫应用实战案例-xpath正则表达式使用方法,爬取精美壁纸
下一篇:新书来了 | 邀您一起来看看
相关文章