Как программно установить вариант сборки во время выполнения в Android Studio?

Можно ли изменить вариант сборки Программно во время выполнения в Android Studio?

У меня разные серверные среды (Release, Debug, Production, Dev, Dev1, Dev2, QA и т. д.). Сам код зависит от некоторых строк, инициализации SDK и адресов серверов, которые устанавливаются, когда я выбираю свой вариант сборки. Поэтому, когда я выбираю отладку для экземпляра, строка использует адрес сервера отладки и SDK. То же самое для выпуска. Но что, если я хочу иметь возможность выбирать среду во время выполнения?


person Atif AbbAsi    schedule 17.10.2019    source источник
comment
Вы пытались использовать productFlavors в файлах gradle? Используя варианты, вы можете выбрать тип приложения, которое хотите запускать во время сборки. Наряду с этим вы можете добавить определенную строку, которая будет работать только с этим вариантом.   -  person Umair    schedule 17.10.2019


Ответы (4)


Варианты сборки — это процесс времени сборки, то есть, если вы хотите изменить вариант сборки вашего apk, вам придется перестроить свой проект. Я вижу, вам нужно что-то, что эквивалентно setting.bundles, что является концепцией iOS. В Android нет таких концепций, хотя мы можем реализовать их с помощью Preference или managed-configuration во всех этих реализациях вам придется очистить кеш приложения. Я бы рекомендовал создать общий вариант сборки со всеми указанными URL-адресами и обрабатывать конфигурации во время выполнения.

person Zeeshan Shabbir    schedule 25.11.2019

Как вы можете прочитать в названии «вариант сборки», он используется во время сборки, а не во время запуска. Вы не можете изменить вариант сборки во время выполнения. Вы должны придумать другой подход, например, скрытое представление отладки, чтобы изменить параметры во время выполнения.

person Traendy    schedule 17.10.2019

Нет, вы можете изменить только время выполнения.

Кроме того, вы можете создать singleton для класса вариантов и создать список вариантов. Выберите вариант из представления и сохраните его в кеше, и когда приложение запустится, вы сможете получить этот вариант. Перезапустите приложение.

person Wajhia Maqsood    schedule 14.11.2019

Создайте собственный класс POJO для своих вариантов и попробуйте сохранить нужный вариант в общих настройках, а затем просто перезапустите приложение для Android. Загрузите значение в объект Singelton Variant из кеша и делайте все, что хотите, со своим приложением.

person Sardar Behram    schedule 19.11.2019