mel*_*kim 18 dependencies android gradle android-library android-gradle-plugin
添加依赖项有哪些优点/缺点build.gradle,而不是将它们添加为依赖库?
dependencies {
compile project(':library')
...
compile 'com.stackoverflow.android:some-great-library:1.0'
...
}
Run Code Online (Sandbox Code Playgroud)
在开发Android项目的过程中,我经常遇到一些很棒的库,它们都是我一直在寻找的精确解决方案.然而,正如我所需要的只是这些特定图书馆所提供的一小部分,我担心如果添加它们就像Gradle dependencies是一种过度杀伤力.
是否添加依赖项:
以明显的速度减慢编译时间?
增加release-apk和debug-apk的大小,增加依赖的大小?
在Gradle中,依赖项被分组为配置作为依赖项配置.外部依赖项是对在当前构建之外构建的某些文件的依赖,并存储在某种类型的存储库中,例如Maven中心,或公司Maven或Ivy存储库,或目录在本地文件系统中.
依赖类型:
外部模块依赖:
某个存储库中对外部模块的依赖.
项目依赖:
依赖于同一构建中的另一个项目.
文件依赖:
依赖于本地文件系统上的一组文件.
客户端模块依赖:
依赖于外部模块,其中工件位于某个存储库中,但模块元数据由本地构建指定.当您想要覆盖模块的元数据时,可以使用这种依赖关系.
Gradle API依赖:
依赖于当前Gradle版本的API.在开发自定义Gradle插件和任务类型时,可以使用此类依赖关系.
本地Groovy依赖:
依赖于当前Gradle版本使用的Groovy版本.在开发自定义Gradle插件和任务类型时,可以使用此类依赖关系.
优点添加依赖项:
在Gradle中,您只需声明依赖项的"名称",其他层确定从哪里获取这些依赖项.
可以在SubProject中进行代码更改.
清除直接依赖关系,包括所
管理的已使用的库清除间接依赖关系的版本(即,使用的库使用另一个库 - POM文件){来自用户Robert Halter).
在线可用性依赖
require sdk库已与项目同步进行编译.
缺点:
因此,它没有任何缺点,但在初始阶段添加依赖项时我们必须同步它,这比简单地拖放jar文件需要一些时间.
以明显的速度减慢编译时间?
不,因为库仅在同步时编译.
增加release-apk和debug-apk的大小,增加依赖的大小?
不,但实际上是的,因为它只需要构建文件(二进制大小)的大小,这几乎不会增加字节大小或kb几乎无法跟踪.
因此,当我们只需要使用特定库的一小部分时,最后将它们添加为Gradle依赖项是一种过度的做法?
肯定会有一种情况,例如你的情况下只使用一个库的子集.因此,在这种情况下启用ProGuard优化字节码级别,内部和跨方法的执行分析,以帮助使您的应用程序更小,运行更快,没有过度杀伤.
主要关注的是你的 Android 应用程序的大小。许多方法或类可能会提高 dex 文件的 64k 限制,并且大多数需要启用多重 dex 或 jumbo 模式。如果您的客户非常过时,这可能会给您带来一些兼容性问题。
有时您可能想通过仅提取所需的类来解决这个问题,但有时这并不是一件容易的事。
如果启用了混淆器,则可以系统地删除未使用的类。
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |