Android Studio3.0之前的6种依赖方式和3.0之后新增的两种依赖方式

一 3.0之前的6种方式

  • 共发现6中方式

Compile,Provided,APK,Test compile,Debug compile,Release compile

AS显示6种

1.1 Compile

对所有的build type以及favlors 编译并且打包 到apk

1.2 Provided

对所有的build type以及favlors 只编译,不打包到apk 类似eclipse中的external-libs

1.3 APK

只会打包到apk不参与编译,比如引用jar中的类或者方法, 编译时就会报错

1.4 Test compile

仅对 单元测试的代码和打包的测试APK 有效,而对debug或者release apk包无效

1.5 Debug compile

仅对 debug模式的编译和打包的debug APK 有效,而对test或者debug apk打包无效

1.6 Release compile

仅对 Release模式的编译和打包的Release APK 有效,而对test或者debug apk打包无效

二 3.0之后新增的两种方式

新建一个项目时,会在 Moudle 中发现 dependencies 中有所变化, compile变成了implementation,如下所示

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

新版本 Gradle plugin 3.0 中 讲明 compile 已过时,替换它的是implementation 和 api 两个关键字,其中api完全等同于compile, 而implementation 和 api/compile的区别如下:

2.1 api关键字

等同于compile, 用api指令编译,Piccaso依赖对app Module 是可见的,即等同app Module可以使用Piccaso依赖

这里写图片描述

2.2 implementation 关键字

特点是将该依赖隐藏在内部,而不对外部公开

这里写图片描述

用implement指令编译, Piccaso依赖对app Module 是不可见的,app Module不可以直接使用Piccaso
这里写图片描述

2.2.1 implementation 的两个好处

  1. 提高编译速度
  2. 对外隐藏不必要的接口

2.2.2 implementation 提高编译速度的原因:

大型项目一般含有多个 Moudle 模块, 比如改动 LibraryC 接口的相关代码

1 如果使用implement, 这时候编译只需要单独编译 LibraryA 模块就行

2 如果使用 api 或者旧时代的 compile,由于App Moudle 也可以访问到 LibraryC ,所以 App Moudle 部分也需要重新编译

2.2.3 Google IO 的建议

依赖首先设置为implement

如果无错,那就用implement , 这样会使编译速度有所增快

如果有错,那么使用api指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值