Intereting Posts
Масштабировать изображение, сохраняя его соотношение сторон в фоновом режиме Buggy ListView меня огорчает Скрыть мягкую клавиатуру после отклонения диалога Изменить цвет заливки на векторный актив в Android Studio Как создать диагональную границу в React Native? Не удалось найти стиль vpiCirclePageIndicatorStyle Как получить ширину строки на Android? Проблемы с конкретным узлом Ndk-cygwin Рисованные форматы на устройствах Samsung по умолчанию на черном фоне Какова реальная точность акселерометров телефона при использовании для позиционирования? Пользовательский календарный день в android Android AppWidgetManager метод updateAppWidget не может установить намерения, загрузить данные. И это происходит случайным образом Как сделать Android-телефон Bluetooth-гарнитурой? «Посланник» Facebook имеет приемник SMS-вещания, который имеет наивысший приоритет после перезагрузки Android Wear WearableListView в GridViewPager

Gradle строит для каждой папки ресурсов

Возможно ли настроить Gradle для создания нескольких файлов apk для Android, где каждый будет использовать только одну папку ресурса?

Я имею в виду:

  • строить-hdpi.apk
  • строить-mdpi.apk
  • строить-xhdpi.apk

Я знаю, что я мог бы просто удалить определенные папки перед созданием, но было бы неплохо, если бы я мог сделать это «автоматически».

Можно ли использовать градиентные «ароматы»?

Solutions Collecting From Web of "Gradle строит для каждой папки ресурсов"

Теперь мы также можем использовать api splits http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits

Пример из ссылки документа:

android { ... splits { density { enable true exclude "ldpi", "tvdpi", "xxxhdpi" compatibleScreens 'small', 'normal', 'large', 'xlarge' } } 
  • Enable: позволяет использовать механизм разделения плотности
  • Exclude: По умолчанию все плотности включены, вы можете удалить некоторые плотности.
  • Включают: укажите, какие плотности должны быть включены
  • Reset (): сбросить список плотностей, которые будут включены в пустую строку (это позволяет в союзах с include указывать, какой из них использовать, а не те, которые игнорировать)
  • CompatibleScreens: указывает список совместимых экранов. Это введет соответствующий узел в манифест. Это необязательно.

Пример в AOSP: https://android.googlesource.com/platform/tools/base/+/2101d189d85dd46f865726b9b7aa0012832a6d9c/build-system/tests/regular/densitySplit/build.gradle

Его еще не возможно, но 0.7.0 будет иметь эту функцию.

Вам нужно будет создать 3 продукта (или больше, если вы хотите поддерживать все плотности), и у вас будет свойство вкуса, чтобы ограничить количество пакетов в apk.

0,7,0 выйдут в ближайшее время.

Обратите внимание, что поддержка Multi APK в Play Store не поддерживает плотность как фильтр, который будет отображаться как 3 разных приложения в магазине, которые вам не нужны. Изменить: это фактически поддерживается несколькими Apks: http://developer.android.com/google/play/publishing/multiple-apks.html

Edit2: теперь, когда отсутствует 0,7 +, вы можете сделать следующее:

 android { productFlavors { mdpi { resConfigs "mdpi", "nodpi" } hdpi { resConfigs "hdpi", "nodpi" } xhdpi { resConfigs "xhdpi", "nodpi" } } }