2016-04-17 6 views
4

Ich benutze Android Studio mit Gradle-Plugin, um Anwendungen zu entwickeln. Ich lerne etwas Verwendung von Android Gradle Plugin auf DSL Reference. Aber eine Sache, die ich fand, ist, dass die applicationVariants Teil auf Doc ist schwer zu verstehen. Es gibt nur eine solche Beschreibung:Wie kann ich die Eigenschaften in applicationVariants von Android Gradle Plugin kennen?

DomainObjectSet <ApplicationVariant> applicationVariants

Die Liste der Anwendungsvarianten. Da die Sammlungen nach der Auswertung erstellt werden, sollten sie mit dem gesamten Iterator von Gradle verwendet werden, um zukünftige Elemente zu verarbeiten.

Aber was sind die Eigenschaften in der ApplicationVariant? Ich weiß es nicht. Und ich habe keinen Referenzlink gefunden, um die ApplicationVariant zu beschreiben.

Nur in der Gradle Plugin User Guide am Ende der Seite. Es dokumentiert die verfügbaren Eigenschaften in applicationVariants, libraryVariants und testVariants. Aber ich habe festgestellt, dass einige dieser Eigenschaften für eine lange Zeit veraltet sind und Android diese Seite nicht aktualisiert hat.

Wo finde ich die am häufigsten aktualisierten Eigenschaften in ApplicationVariant?

Antwort

8

https://android.googlesource.com/platform/tools/build/+/8dca86a/gradle/src/main/groovy/com/android/build/gradle/internal/ApplicationVariant.groovy

hatte ich eine harte Zeit, es zu finden. Hier ist die Schnittstelle einhüllen es sich bewegt: Es wird auch keine Requisiten haben Sie in Ihrem Geschmack zu definieren, wie die version, applicationId etc

public interface ApplicationVariant { 
    String getName() 
    String getDescription() 
    String getDirName() 
    String getBaseName() 
    VariantConfiguration getConfig() 
    boolean getZipAlign() 
    boolean isSigned() 
    boolean getRunProguard() 
    FileCollection getRuntimeClasspath() 
    FileCollection getResourcePackage() 
    Compile getCompileTask() 
    List<String> getRunCommand() 
    String getPackage() 
    AndroidBuilder createBuilder(AndroidBasePlugin androidBasePlugin) 
} 

und die Requisiten eines Objekts drucken:

def filtered = ['class', 'active'] 

println theObject.properties 
      .sort{it.key} 
      .collect{it} 
      .findAll{!filtered.contains(it.key)} 
      .join('\n') 
+0

Thanks a Menge. Es hilft. Aber ich habe noch eine Frage. Es scheint nur Anzeigeeigenschaften in ApplicationVariant. Wie wäre es mit LibraryVariant? Ich habe es nicht über den Link gefunden, den du mir oben gegeben hast. –