2017-11-18 2 views

Antwort

2

Bitte beziehen Sie sich auf den Link: Android Studio 3.0 New Gradle Configuration verfügbar bei Android-Entwickler offiziellen Website.

Basierend auf Beschreibung in Link oben erwähnt:

  • Implementierung: Wenn Ihr Modul eine Implementierung Abhängigkeit konfiguriert, es läßt Gradle wissen, dass das Modul nicht zu will die Abhängigkeit zu anderen Modulen auslaufen zur Kompilierzeit. Das heißt, die Abhängigkeit steht anderen Modulen nur zur Laufzeit zur Verfügung. Die Verwendung dieser Abhängigkeitskonfiguration anstelle von api oder Kompilieren kann zu einer erheblichen Verbesserung der Buildzeit führen, da dadurch die Anzahl der Projekte verringert wird, die das Buildsystem neu kompilieren muss. Wenn beispielsweise eine Implementierungsabhängigkeit ihre API ändert, kompiliert Gradle nur die Abhängigkeit und die Module, die direkt davon abhängen. Die meisten App- und Testmodule sollten diese Konfiguration verwenden.
  • api: Wenn ein Modul eine api Abhängigkeit enthält, es läßt Gradle wissen, dass das Modul will den Export nach transitively dass Abhängigkeit zu anderen Modulen, so dass es sowohl bei Laufzeit ihnen zur Verfügung steht und die Zeit kompilieren. Diese Konfiguration verhält sich genau wie kompilieren (die jetzt veraltet ist), und Sie sollten dies normalerweise nur in Bibliotheksmodule verwenden. Wenn eine API-Abhängigkeit die externe API ändert, kompiliert Gradle alle Module neu, die Zugriff auf diese -Abhängigkeit zur Kompilierungszeit haben. Also, eine große Anzahl von API-Abhängigkeiten kann deutlich Build-Zeiten erhöhen. Wenn Sie nicht möchten, dass die API einer Abhängigkeit einem separaten Testmodul verfügbar macht, sollten die App-Module Implementierungsabhängigkeiten verwenden.
  • compileOnly: Gradle fügt die Abhängigkeit nur dem Kompilierungsklassenpfad hinzu (es wird nicht zur Buildausgabe hinzugefügt). Dies ist nützlich , wenn Sie ein Android-Bibliotheksmodul erstellen, und Sie benötigen die Abhängigkeit während der Kompilierung, aber es ist optional, bei Laufzeit zu haben. Das heißt, wenn Sie diese Konfiguration verwenden, muss Ihr Bibliothekmodul eine Laufzeitbedingung enthalten, um zu überprüfen, ob die -Abhängigkeit verfügbar ist, und dann das Verhalten so ändern, dass es weiterhin funktioniert, wenn es nicht bereitgestellt wird. Dies hilft, die Größe von der endgültigen APK zu reduzieren, indem keine vorübergehenden Abhängigkeiten hinzugefügt werden, die nicht sind. Diese Konfiguration verhält sich wie bereitgestellt (jetzt veraltet).
  • LaufzeitNur: Gradle fügt die Abhängigkeit nur der Build-Ausgabe zur Verwendung während der Laufzeit hinzu. Das heißt, es wird dem Compile-Klassenpfad nicht hinzugefügt. Diese Konfiguration verhält sich genau wie apk (jetzt veraltet).
Verwandte Themen