2017-05-29 53 views
0

当我创建一个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' 

我的应用程序编译并运行删除之后罚款。他们真的无用吗?

+0

如果您决定自动测试您的应用程序并创建JUnit测试,那么您可能不会删除这些依赖关系。更多的信息可以在这里找到:https://developer.android.com/training/testing/start/index.html – Prexx

+0

只是研究每个依赖项,它做什么。你可以从中决定是否要删除它。他们都是可选的。但有些提供了您可能希望的功能。 – Doomsknight

回答

1

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

这里是你已经去掉了依赖关系的列表:

  • 'com.android.support.test.espresso:咖啡核:2.2.2' - 的 Espresso测试框架,它提供用于编写UI 测试的API。仅在您要为您的 应用程序编写UI测试时才需要;测试框架 或集成测试。如果您不打算写任何测试,则不需要;

  • 'com.android.support.constraint:constraint-layout:1.0.2' - 一个ViewGroup,它允许您创建具有平面视图层次结构(没有嵌套视图组)的大而复杂的布局。如果您想在项目中使用ConstraintLayout,则需要此依赖项。如果你不需要它,你可以删除这个依赖。

0

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

并创建单元和UI测试的库。

它们不是必不可少的,但它们也不是无用的。实际上你没有很多依赖关系。

对不起,我的英语。

希望得到这个帮助。

+0

请编辑您的答案,我从不删除设计库。 – user8069029

+0

@ user8069029您确实删除了'com.android.support.constraint:constraint-layout:1.0.2'。这是使用新约束布局的依赖关系。如果你不使用它,你也可以删除这个依赖。 – Prexx

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这谷歌现在建议您使用,而不是RelativeLayout。它非常灵活,可以在非常复杂的布局上提高性能。如果你不想要,你不需要使用它。

的JUnit

testCompile 'junit:junit:4.12'

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

摘要

库都不是无用。然而,它可能是你不需要任何为你的目的。对于这两个测试库,您都可以放心地保留依赖关系,并且不会影响您的实际应用程序编译。