📜  如何在 Android 中创建不同的构建变体?

📅  最后修改于: 2022-05-13 01:58:44.093000             🧑  作者: Mango

如何在 Android 中创建不同的构建变体?

在 Android 应用程序的开发和发布阶段,我们通常需要各种 APK 或不同版本的 APK。例如,您可能需要一个不带 proguard 的调试 APK 和一个带 proguard 的调试 APK,或者您可能需要一个免费用户的 APK 和一个付费用户的 APK,或者您可能需要一个适用于 Android 6 及更高版本的 APK 和一个适用于 Android 版本的 APK Android 版本低于 6,以及许多其他选项。但问题是,您将如何生成所有这些不同版本的应用程序?每周冲刺会生成一个 Android APK 文件。我们可能需要根据应用程序的类型(免费或付费)构建多个版本的 APK 文件,依此类推。

在 Android 中构建变体

在开发 Android 应用程序时,我们会生成几种构建类型,例如“调试”“发布”。同时,我们可能会为同一个应用开发不同的产品风格,例如免费用户的免费产品风格和付费用户的高级产品风格。因此,Android Studio 包含一个称为 Build Variants 的功能,可以将其视为所有构建类型和产品风格的笛卡尔积。

另一方面,构建风格通常描述为模块的每个版本创建的内容(例如构建中要包含哪些资源和源代码文件)。最初,这两个版本的设计方式是,它们仅在每个目标所需的资源(例如布局和字符串值)方面在视觉上有所不同。然后将扩展该项目以演示每种风格如何利用各种源代码库来提供不同的应用程序行为。

您所要做的就是在您的模块级 build.gradle 文件中包含几种构建类型,然后在开发或生产期间,您可以简单地选择您希望测试或发布的构建变体。

如何添加构建类型?

默认情况下,当您启动一个新项目时,Android Studio 会为其创建两种构建类型: “调试”和“发布”。但是,要添加新的构建类型,您必须将它们添加到模块级 build.gradle 文件和 buildTypes 块内。以下是极客应用程序的示例极客

android {
    defaultConfig {
        applicationId "com.gfg.variants"
        versionCode 1
        versionName "GeeksforGeeks_Rel"
        ...
    }
    buildTypes {
        debug {
            versionNameSuffix ".rel"
            minifyEnabled false
            shrinkResources false
        }
        production {

            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
 
        }
        finalRelease{
            versionNameSuffix ".debug"
            debuggable true
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            ...
        }
     }
  
}

结论

上面的方法是在你的 android 项目中添加不同的产品变体,你可以查看 Github 上的任何演示项目,甚至是你的 android 应用程序的 build.gradle 文件,以查看它用于开发的所有变体,这通常是一个更好的主意划分它们以在您的应用程序中获得更好的功能,例如总是不需要缩减资源,因为它会占用时间和资源,那么为什么不在版本中完全避免它呢?