为什么没有InstantAppVariants这样的东西?我怎么循环苏尔。即时应用gradle文件中的变体?

时间:2019-01-02 04:21:21

标签: android-gradle android-instant-apps

  • 在应用程序模块中,我们可以使用applicationVariants
  • 在功能模块中,我们可以使用featureVariants
  • 在库模块中,我们可以使用libraryVariatns

instantAppVariants在哪里

更新:回溯故事:我想为应用程序和即时应用程序分别生成BuildConfig和versionCode / String,但是它没有用,所以我尝试使用变体来查看是否有帮助,但是后来发现没有任何帮助InstantAppVariant让我循环浏览。变体并更新数据。

2 个答案:

答案 0 :(得分:1)

  

我想以不同方式生成BuildConfig和 versionCode / String   应用程序和即时应用程序

使用productFlavors,例如:

application模块:

productFlavors {
    instant {
        dimension rootProject.flavorDim
        minSdkVersion rootProject.minSdkInstant
        versionCode rootProject.versionCodeInstant
        versionName rootProject.versionNameInstant
    }
    installed {
        dimension rootProject.flavorDim
        minSdkVersion rootProject.minSdk
        versionCode rootProject.versionCode
        versionName rootProject.versionName
    }
}

feature模块:

productFlavors {
    instant {
        dimension rootProject.flavorDim
        minSdkVersion rootProject.minSdkInstant
    }
    installed {
        dimension rootProject.flavorDim
        minSdkVersion rootProject.minSdk
    }
}

现在您的:

  • 已安装的应用具有minSdk / versionCode/Name
  • 并且即时应用具有minSdkInstant / versionCodeInstant/NameInstant

您可以将其用于其他属性,但这是一些相关文章:

还有Configure build variants上的文档

但是,如果这不是您想要的,那么您将不得不给出一个使用示例。

答案 1 :(得分:0)

基于此site

  

当一个应用使用Instant Apps时,该应用被分为一个或   更多功能模块,每个功能模块都包含在一个单独的模块中   功能APK文件。每个功能都包含一个特定的区域   应用内的功能,通常涉及一个或多个活动   实例。然后将各个功能APK捆绑到   即时应用APK,然后将其上传到Google Play开发者   控制台。

这意味着应用程序模块和即时应用程序模块均充当构成应用程序的功能模块的容器。一个应用程序必须至少包含一个功能模块,并且还可能包含其他功能的其他模块。

另一方面,即时应用程序模块的build.gradle文件将使用com.android.instantapp插件为依赖项部分中引用的功能构建单独的功能APK文件。请注意,使用实现project()声明来引用功能依赖项:

apply plugin: 'com.android.instantapp'

dependencies {
    implementation project(':myappbase')
    implementation project(':myappfeature')
}