Android: программно изменить SourceSet на основе пользовательских настроек - PullRequest
1 голос
/ 10 июня 2019

Я создаю приложение, которое имеет режимы администратора и пользователя, и каждый режим имеет свои собственные макеты, строки и файлы ресурсов для рисования.Я хочу знать, как изменить ресурсы SourceSet в зависимости от режима приложения, который может переключаться пользователем во время выполнения.

В настоящее время я использую 2 варианта продукта для этого.Но проблема с ароматами в том, что это время сборки, и мне нужно создать 2 разных apk, по одному для каждого аромата.Таким образом, возможность изменить SourceSet во время выполнения означает, что у меня может быть только 1 apk.

Обновление: Я просто хочу, чтобы textview вызвал R.string.title, и это вызовет другую строкуфайлы на основе пользовательского режима (администратор или пользователь).Это то же самое, что изменение языка локали (например, en против fr) вызовет соответствующий файл без необходимости изменения кода.

Ответы [ 2 ]

1 голос
/ 10 июня 2019

Я хочу знать, как изменить ресурсы SourceSet в зависимости от режима приложения, который может переключаться пользователем во время выполнения.

Это невозможно. Исходные наборы являются конструкцией времени компиляции. APK содержит содержимое исходных наборов на основе варианта сборки, который вы выбрали при компиляции APK & mdash; содержимое других исходных наборов не находится в этом APK.

Я создаю приложение, которое имеет режимы администратора и пользователя, и каждый режим имеет свои собственные макеты, строки и файлы ресурсов для рисования.

Тогда либо это два приложения (и два APK), либо вам нужно, чтобы все эти ресурсы были в одном наборе источников, входящем в ваш один APK.

Обычно режим администрирования также включает выделенный код Java / Kotlin (например, выделенные фрагменты), и, таким образом, простого обмена ресурсами в любом случае будет недостаточно.

Если вы распространяете исключительно через Play Store, вы можете использовать динамические функциональные модули, если вас беспокоит размер APK с пользовательским и административным кодом / ресурсами в нем.

0 голосов
/ 10 июня 2019

Решение, которое работало для меня, в случае, если были корпоративные приложения, в которых была заблокирована панель запуска по умолчанию, и пользователь запускал экран входа в систему, по умолчанию было два отдельных приложения, которые переключались в зависимости от роли пользователя.В другом приложении, где один apk я только что сделал разные экраны запускает с его собственной логикой, основанной на роли пользователя.Но это также может помочь вам Динамическое создание вкусов продуктов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...