我怎么知道android gradle插件的applicationVariants中的属性?

Ton*_*een 16 android gradle android-gradle-plugin gradle-plugin

我正在使用带有gradle插件的Android Studio来开发应用程序.我在DSL Reference上学习了一些android gradle插件的用法.但我发现有一件事是doc上的applicationVariants部分很难理解.它只给出了这样的描述:

DomainObjectSet <ApplicationVariant> applicationVariants

应用程序变体列表.由于集合是在评估之后构建的,因此应该与Gradle的all迭代器一起使用来处理未来的项目.

但是ApplicationVariant中的属性是什么?我不知道.我没有找到任何引用链接来描述ApplicationVariant.

仅在页面底部的Gradle Plugin用户指南中.它记录了applicationVariants,libraryVariants和testVariants中的可用属性.但我发现其中一些属性已被弃用了很长时间,而且Android没有更新此页面.

那么我在哪里可以找到ApplicationVariant中最新的属性?

Cap*_*ect 19

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

我也很难找到它.这是它移动的界面:它还有你在你的风格中定义的任何道具,比如versionName,applicationId等

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)
}
Run Code Online (Sandbox Code Playgroud)

并打印任何对象的道具:

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

println theObject.properties
            .sort{it.key}
            .collect{it}
            .findAll{!filtered.contains(it.key)}
            .join('\n')
Run Code Online (Sandbox Code Playgroud)


Man*_*saW 9

@CaptRespect 答案中的链接指向特定版本。以下是 master 分支中公共 API 的链接:

/gradle/api/ApplicationVariant.java
(派生自) /gradle/api/ApkVariant.java
(派生自) /gradle/api/BaseVariant.java