为什么有那么多无用的依赖?哪些依赖项可以安全删除?

时间:2017-05-29 11:51:31

标签: android android-studio

当我创建一个android studio项目时,我看到很多依赖项。所以我决定删除那些,我相信没有被使用。我想知道,这些依赖项用于什么,是否可以安全删除?

我的build.gradle看起来像这样(导航视图活动)

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'

并删除未使用的'依赖关系,我留下:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'

我的应用程序编译,删除后运行正常。他们真的没用吗?

3 个答案:

答案 0 :(得分:1)

编译和运行Android应用程序实际上都不需要依赖项。 Android Studio只是放置了一些依赖项,开发人员可能会在每个项目中使用它们。

以下是您已删除的依赖项列表:

  • ' com.android.support.test.espresso:浓咖啡核:2.2.2' - Espresso测试框架,提供用于编写​​UI的API 试验。仅在您要为自己编写UI测试时才需要 应用

  • ' junit的:的junit:4.12' - 用于编写单元的JUnit测试框架 或集成测试。如果您不打算进行任何测试,则不需要;

  • ' com.android.support.constraint:约束的布局:1.0.2' - ViewGroup,允许您使用平面视图层次结构创建大型复杂布局(无嵌套视图组)。如果要在项目中使用ConstraintLayout,则需要此依赖项。如果您不需要,可以删除此依赖项。

答案 1 :(得分:0)

图书馆删除了关注ConstraintLayout,这是一种使用AndroidStudio的图形界面更轻松地创建布局的方法。

创建单元和UI测试的库。

它们不是必不可少的,但它们也不是无用的。事实上,你没有这一点很多依赖。

抱歉我的英文。

希望得到这个帮助。

答案 2 :(得分:0)

让我们来看看每个人:

<强>咖啡

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' })

这是一个测试库。它允许您编写自动化测试,以用户身份运行您的应用程序并测试某些条件。请注意androidTestCompile - 这意味着只有在编译应用程序进行自动化测试时才包含它,而不是在进行正常编译时包含

约束布局

compile 'com.android.support.constraint:constraint-layout:1.0.2'

这是新版ViewGroup,Google现在建议您使用而不是RelativeLayout。它更加灵活,可以在非常复杂的布局上实现性能提升。如果您不想这样做,则不需要使用它。

<强> JUnit的

testCompile 'junit:junit:4.12'

这是另一个测试库。这个用于运行单元测试。再次注意testCompile - 此库仅包含在为运行单元测试而完成的构建中,并且在您进行正常编译时不会包含在您的应用程序中。

<强>摘要

没有一个库无用。但是,您可能不需要其中任何一个用于您的目的。对于这两个测试库,您可以安全地保留依赖项,并且它不会影响您的实际应用程序编译。