Создайте отдельный apk для отдельного аромата в android

Я использовал build.gradle (приложение) для создания различных разновидностей apk. Но установка разных версий одного и того же apk отменяет предыдущий. Я хочу создать разные apks для одновременной работы на одном устройстве. Я хочу создать разные apk с разными иконками приложений, которые можно установить на одном устройстве и запускать одновременно. Любая ссылка, учебник или прямая помощь приветствуются.

Заранее спасибо.


person SimpleCoder    schedule 14.10.2015    source источник
comment
изменить название пакета для каждого аромата   -  person Murtaza Khursheed Hussain    schedule 14.10.2015
comment
позвольте мне попробовать этот подход, скоро обновлю.   -  person SimpleCoder    schedule 14.10.2015
comment
@Murtaza, если имя пакета изменится, обращение к этим файлам в папке main- ›java будет обрабатываться вручную?   -  person SimpleCoder    schedule 14.10.2015
comment
@Mortaza, создает ли он 2 разных значка приложения в меню для Flavour1 и Flavour2 одновременно? Пробовал, но при установке они сменяют друг друга.   -  person SimpleCoder    schedule 15.10.2015


Ответы (3)


Измените PackageName аромата

Пример файла Gradle

apply plugin: 'com.android.application'

android {

    lintOptions {
        abortOnError false
    }


    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 16
    }

    buildTypes {
        debug {
            minifyEnabled false
            zipAlignEnabled true
        }
        release {
            minifyEnabled true
            zipAlignEnabled true
        }
    }
    productFlavors {
        Flavor1 {
            applicationId "com.falvor.one" //This is where you change the package name
        }
        Flavor2 {
            applicationId "com.falvor.two"
        }
    }
}

Иерархия вкусов в Android

- src/main/java
- src/flavor1
--------------Java
----------------Your java files
--------------res
----------------Drawable
  • SRC / аромат2 / Java

Для получения дополнительных сведений перейдите по этой ссылке.

person Murtaza Khursheed Hussain    schedule 14.10.2015
comment
где я могу определить значок для каждого аромата - person Ashish Agrawal; 14.10.2015
comment
Вам необходимо создать папку в src с именами Flavor1 и Flavor2 соответственно. в каждой из этих папок вам нужно создать ту же иерархию, что и в ГЛАВНОЙ папке - person Murtaza Khursheed Hussain; 14.10.2015
comment
не могли бы вы дать мне ссылку на github, где это делается, потому что я пробовал, но не добился успеха - person Ashish Agrawal; 14.10.2015
comment
@ Ashish, @Mortaza, создает ли он одновременно два разных значка приложения в меню для Flavour1 и Flavour2? Пробовал, но при установке они сменяют друг друга. - person SimpleCoder; 15.10.2015
comment
Тогда вы делаете это неправильно. Перейдите по ссылке в моем ответе, вы узнаете, как разделять файлы для каждой среды. - person Murtaza Khursheed Hussain; 15.10.2015
comment
Он работает на Mac, а не в Windows. Не знаю почему. - person SimpleCoder; 20.10.2015
comment
Это не имеет ничего общего с ОС. - person Murtaza Khursheed Hussain; 20.10.2015

Вам нужно создать новый productFlavors в вашем файле gradle, например:

productFlavors {
        Flavor1 {
            applicationId 'com.project.fl1'
            signingConfig signingConfigs.xx
            versionCode 1
        }
        Flavor2 {
            applicationId 'com.project.fl2'
            signingConfig signingConfigs.xx
            versionCode 1
        }
        Flavor3 {
            applicationId 'com.project.fl3'
            signingConfig signingConfigs.xx
            versionCode 1
        }
}

Здесь важно дать каждому уникальный applicationId, после чего их можно будет установить на один и тот же телефон.

person vguzzi    schedule 14.10.2015

Это сообщение точно объясняет как достичь желаемого шаг за шагом.

Самое главное:

  1. добавить контейнер ароматов продукта в файл приложения build.gradle

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

  2. создайте внутри src каталог с точным названием вкуса продукта, который вы хотите отличать от основного варианта, например, с конфигурацией на шаге 1 имя каталога может быть платным или бесплатно. И внутри этого каталога создайте подпапку res / drawable, в которой вы собираетесь разместить новый значок средства запуска приложений.

Пример структуры каталогов

person Antonio Cappiello    schedule 25.10.2015
comment
@SimpleCoder, вы искали учебник, и я вам его предоставил. Вам не понравился мой ответ stackoverflow.com/a/33332966/5485531? - person Antonio Cappiello; 27.10.2015