2017-05-29 51 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 - 這個庫只會包含在爲運行單元測試而完成的構建中,並且在進行正常編譯時不會包含在您的應用中。

摘要

庫都不是無用。然而,它可能是你不需要任何爲你的目的。對於這兩個測試庫,您都可以放心地保留依賴關係,並且不會影響您的實際應用程序編譯。