Android Studio依赖方式

最近将Android Studio升级到了3.X版本,同时Gradle也升级到了4.X,发现现在默认的依赖方式为implementation方式,以前使用的compile方式已经不推荐使用了,这里将2.x和3.x版本所有的依赖方式进行总结下。

compile(2.0)和api(3.0)

compile是对所有的build type以及favlors都会参与编译并且打包到最终的apk文件中。

provided(2.0)和compileOnly(3.0)

Provided是对所有的build type以及favlors只在编译时使用,类似eclipse中的external-libs,只参与编译,不打包到最终apk。

apk(2.0)和runtimeOnly(3.0)

只会打包到apk文件中,而不参与编译,所以不能再代码中直接调用jar中的类或方法,否则在编译时会报错。应该是在运行时通过反射来调用吧。

implementation(3.0)

Android Studio 3.0 新增的依赖模式,例如项目依赖某个Module,而Module又依赖于某个库,如果使用implementation的方式,则主项目不能访问Module所依赖的库。

debugCompile(2.0)和debugApi(3.0)和debugImplementation(3.0)

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

releaseCompile(2.0)和releaseApi(3.0)和releaseImplementation(3.0)

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

testCompile(2.0)和testApi(3.0)和testImplementation(3.0)

testCompile 仅仅是针对单元测试代码的编译编译以及最终打包测试apk时有效,而对正常的debug或者release apk包不起作用。

androidTestCompile(2.0)和androidTestApi(3.0)和androidTestImplementation(3.0)

android单元测试时有效,正常的debug和release包无效。

文章目录
  1. 1. compile(2.0)和api(3.0)
  2. 2. provided(2.0)和compileOnly(3.0)
  3. 3. apk(2.0)和runtimeOnly(3.0)
  4. 4. implementation(3.0)
  5. 5. debugCompile(2.0)和debugApi(3.0)和debugImplementation(3.0)
  6. 6. releaseCompile(2.0)和releaseApi(3.0)和releaseImplementation(3.0)
  7. 7. testCompile(2.0)和testApi(3.0)和testImplementation(3.0)
  8. 8. androidTestCompile(2.0)和androidTestApi(3.0)和androidTestImplementation(3.0)
|