LMT*_*LMT 6 android gradle android-studio-3.0
无法理解gradle在Android Studio 3.0实现,api,compileonly和runtimeonly 中引入的最新依赖配置.
Gau*_*ngh 13
请参阅android开发者官方网站上提供的链接:Android Studio 3.0 New Gradle Configuration.
根据上面链接中提到的描述:
- 实现:当您的模块配置实现依赖项时,它让Gradle知道模块不希望在编译时将依赖项泄漏给其他模块.也就是说,依赖性仅在运行时可用于其他模块.使用此依赖项配置而不是api或compile可以显着缩短构建时间,因为它减少了构建系统需要重新编译的项目数量.例如,如果实现依赖项更改其API,则Gradle仅重新编译该依赖项以及直接依赖于它的模块.大多数应用和测试模块都应使用此配置.
- api:当模块包含api依赖项时,它让Gradle知道模块想要将该依赖项传递到其他模块,以便它们在运行时和编译时都可用.此配置的行为与compile(现在已弃用)类似,您通常只应在库模块中使用它.这是因为,如果api依赖项更改其外部API,Gradle将重新编译在编译时有权访问该依赖项的所有模块.因此,拥有大量的api依赖项可以显着增加构建时间.除非您希望将依赖项的API公开给单独的测试模块,否则应用程序模块应该使用实现依赖项.
- compileOnly: Gradle仅将依赖项添加到编译类路径中(它不会添加到构建输出中).这在您创建Android库模块时非常有用,并且在编译期间需要依赖项,但在运行时可以使用它是可选的.也就是说,如果使用此配置,那么库模块必须包含运行时条件以检查依赖项是否可用,然后优雅地更改其行为,以便在未提供时仍可以正常运行.这有助于通过不添加不重要的瞬态依赖项来减小最终APK的大小.此配置的行为与提供的一样(现已弃用).
- runtimeonly: Gradle仅将依赖项添加到构建输出,以便在运行时使用.也就是说,它不会添加到编译类路径中.此配置的行为与apk(现已弃用)相同.
| 归档时间: |
|
| 查看次数: |
3887 次 |
| 最近记录: |