How do I know the properties in applicationVariants of android gradle plugin?

醉酒当歌 提交于 2019-11-30 12:04:51

问题


I'm using Android Studio with gradle plugin to develop applications. I learn some usage of android gradle plugin on DSL Reference. But one thing I found is that the applicationVariants part on doc is hard to understand. It only gives such a description:

DomainObjectSet<ApplicationVariant> applicationVariants

The list of Application variants. Since the collections is built after evaluation, it should be used with Gradle's all iterator to process future items.

But what's the properties in the ApplicationVariant? I don't know. And I found nothing reference link to describe the ApplicationVariant.

Only in the Gradle Plugin User Guide at the very bottom of the page. It documents the available properties in applicationVariants, libraryVariants and testVariants. But I found quite some of these properties are deprecated for a long time, and Android didn't update this page.

So where do I find the most updated properties in ApplicationVariant?


回答1:


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

I had a hard time finding it too. Here's the interface incase it moves: It will also have any props you define in your flavor, like the versionName, 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)
}

And to print the props of any object:

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

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



回答2:


The link in @CaptRespect's answer is to a specific build. Here are the links to the public API in the master branch:

/gradle/api/ApplicationVariant.java
(derives from) /gradle/api/ApkVariant.java
(derives from) /gradle/api/BaseVariant.java




回答3:


Here's some documentation on those:

  • ApplicationVariant:
  • BaseVariant
  • ApkVariant


来源:https://stackoverflow.com/questions/36672469/how-do-i-know-the-properties-in-applicationvariants-of-android-gradle-plugin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!