在同一设备上的 android 到 运行 中为不同的风格创建单独的 apk

Create separate apk for separate flavor in android to run on same device

我已经问过类似的问题但是找不到我要找的东西。于是再次询问。 我想 运行 同时在同一台设备上分离风味 apk。

我已经使用 build.gradle(app) 创建了不同风格的 apk。但是安装不同风格的相同 apk 会覆盖前一个。我想在同一台设备上同时为 运行 创建不同的 apk。我想用不同的 appicon 创建不同的 apk,这些 apicon 可以同时安装在同一设备上 运行。感谢任何 link 或教程或直接帮助。

我的build.gradle如下

 productFlavors {
    production {
        applicationId
        "com.abc.def"
        buildConfigField 'String', 'HOST', '"http://example.com/api/"'
    }
    staging {
        applicationId
        "staging.com.abc.def"
        buildConfigField 'String', 'HOST', '"http://example.com/api/"'
    }
    backendtesting {
        applicationId
        "backendtesting.com.abc.def"
        buildConfigField 'String', 'HOST', '"http://example.com/api/"'
    }

}

不同口味可以设置不同的applicationId。这样不同的口味将被视为不同的应用程序,并且在您将它们安装在同一设备上时不会相互覆盖。

例如,以下代码段将使用不同的应用程序包创建两种风格,prod 和 dev。您可以将它们一起安装在设备上。

productFlavors {
        dev {
            applicationId "com.swagata.devbuild"
        }

        prod {
            applicationId "com.swagata.prodbuild"
        }
    }

本文 post 逐步解释了如何配置目录结构和 gradle 文件。

主要步骤是:

  1. 将产品风味容器添加到应用 build.gradle 文件

    productFlavors { free { applicationId "antoniocappiello.com.buildvariantsexample.free" } paid { applicationId "antoniocappiello.com.buildvariantsexample.paid" } }

  2. 在 src 中创建一个目录,其中包含您希望与主要变体看起来不同的产品风味的确切名称,例如,在步骤 1 中的配置中,目录名称可以是付费的或免费的.在该目录中创建子文件夹 res/drawable,您将在其中放置新应用程序 启动器图标

Directory structure example

不要在 gradle 命令和它的参数之间放置换行符。它将单独读取每一行,因为换行符是 gradle 的命令分隔符。(就像 ; 是 java 的方式一样)

例如,使用:

applicationId "com.abc.def"

而不是

applicationId
"com.abc.def"