2017-05-29 3 views
0

Ich sehe viele Abhängigkeiten, wenn ich ein Android Studio-Projekt erstelle. Also habe ich beschlossen, diejenigen zu entfernen, von denen ich glaube, dass sie nicht benutzt werden. Ich frage mich, wofür diese Abhängigkeiten verwendet werden, und können sie sicher entfernt werden?Warum gibt es so viele nutzlose Abhängigkeiten? Welche Abhängigkeiten können sicher entfernt werden?

meine build.gradle wie diese (Navigationsansicht Aktivität) sah

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' 

und nach dem 'ungenutzt' Abhängigkeiten zu entfernen, bin ich mit links:

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

Meine app kompiliert und läuft gut nach dem Entfernen dieser. Sind sie wirklich nutzlos?

+0

Wenn Sie Ihre Anwendung automatisch testen und JUnit-Tests erstellen möchten, können Sie diese Abhängigkeiten möglicherweise nicht entfernen. Weitere Informationen finden Sie hier: https://developer.android.com/training/testing/start/index.html – Prexx

+0

Recherchiere einfach jede Abhängigkeit, was sie tut. Und Sie können daraus entscheiden, ob Sie es entfernen möchten oder nicht. Sie sind alle optional. Aber einige bieten Funktionen, die Sie wünschen. – Doomsknight

Antwort

1

Keine der Abhängigkeiten ist eigentlich obligatorisch zum Kompilieren und Ausführen einer Android-Anwendung. Android Studio legt nur einige Abhängigkeiten fest, die ein Entwickler wahrscheinlich in jedem Projekt verwenden wird. Hier

ist die Liste der Abhängigkeiten Sie entfernt haben:

  • 'com.android.support.test.espresso: Espresso-Kern: 2.2.2' - der Espresso Test-Framework, das bietet APIs zum Schreiben von UI Tests. Nur erforderlich, wenn Sie UI-Tests für Ihre -Anwendung schreiben möchten;

  • 'junit: junit: 4.12' - die JUnit Test-Framework für das Schreiben Ihrer Einheit oder Integrationstests. Nicht erforderlich, wenn Sie keine Tests schreiben;

  • 'com.android.support.constraint: constraint-layout: 1.0.2' - eine ViewGroup, mit der Sie große und komplexe Layouts mit einer flachen Ansichtshierarchie (keine verschachtelten Ansichtsgruppen) erstellen können. Diese Abhängigkeit ist erforderlich, wenn Sie ConstraintLayout in Ihrem Projekt verwenden möchten. Wenn Sie es nicht benötigen, können Sie diese Abhängigkeit löschen.

0

Die Bibliothek entfernt Anliegen ConstraintLayout, eine Möglichkeit, Layout mit der grafischen Oberfläche von AndroidStudio einfacher zu erstellen.

Und die Bibliotheken zum Erstellen von Unit und UI-Test.

Sie sind nicht unentbehrlich, aber sie sind auch nicht nutzlos. In der Tat haben Sie nicht einen Punkt viele Abhängigkeiten.

Entschuldigung für mein Englisch.

Hoffe diese Hilfe.

+0

Bitte bearbeiten Sie Ihre Antwort, ich habe nie die Design-Bibliotheken entfernt. – user8069029

+0

@ user8069029 Sie haben 'com.android.support.constraint: constraint-layout: 1.0.2' entfernt. Es ist eine Abhängigkeit, das neue Beschränkungslayout zu verwenden. Wenn Sie es nicht verwenden, können Sie diese Abhängigkeit ebenfalls entfernen. – Prexx

0

Lassen Sie uns über jede von ihnen gehen:

Espresso

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

Dies ist ein Test-Bibliothek. Sie können automatisierte Tests schreiben, die wie ein Benutzer durch Ihre App laufen und bestimmte Bedingungen testen.Beachten Sie die androidTestCompile - dies bedeutet, dass es nur aufgenommen wird, wenn Sie Ihre Anwendung für die Automatisierung Tests kompilieren und nicht, wenn Sie eine normale Kompilierung tun

Constraint-Layout

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

Dies ist die neue ViewGroup die Google empfiehlt jetzt, dass Sie anstelle von RelativeLayout verwenden. Es ist viel flexibler und kann zu Leistungsverbesserungen bei sehr komplizierten Layouts führen. Sie müssen es nicht verwenden, wenn Sie es nicht möchten.

JUnit

testCompile 'junit:junit:4.12'

Dies ist ein weiterer Test Bibliothek. Dieser wird zum Ausführen von Komponententests verwendet. Beachten Sie erneut die testCompile - diese Bibliothek wird nur in Builds enthalten, die zum Ausführen von Komponententests ausgeführt werden, und wird nicht in Ihrer App enthalten sein, wenn Sie eine normale Kompilierung durchführen.

Zusammenfassung

Keiner der Bibliotheken ist nutzlos. Es kann jedoch sein, dass Sie keine davon für Ihre Zwecke benötigen. Für beide Testbibliotheken können Sie die Abhängigkeiten sicher an Ort und Stelle lassen und es hat keine Auswirkungen auf Ihre eigentliche App-Kompilierung.

Verwandte Themen