2015-08-11 2 views
3

Я хотел бы использовать некоторые XML-файлы в качестве макетов для предварительного просмотра различных состояний макета, но я не хочу включать его в apk, потому что эти xml-файлы предназначены только для для предварительного просмотра. Я хотел бы сказать gradle, какие файлы/каталоги игнорировать для ресурсов.Исключить xml-файлы из компиляции android [сокращение ресурсов]

Было бы также полезно легко уменьшить размер apk для устройств с малой памятью, используя ароматы продуктов, аналогично тому, как объясняет this excellent article.

Может быть, защитник может помочь?

ответ

1

Мы называем это «Сокращение ресурсов». All info about it is here.

Посмотрите на shrinkResources true. Система сборки попытается найти неиспользуемые файлы ресурсов с этим флагом и удалит их из сборки. Вы можете добавить его в свой отладочный тип buildType и любой вкус сборки.

android { 
    ... 

    buildTypes { 
     release { 
      minifyEnabled true 
      shrinkResources true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 
1

Если вы используете студию Android, вы можете добавлять ресурсы, создавая ароматы вашего примера, вы можете добавить строковый ресурс только для сборки отладки и другого строкового ресурса для основной версии. Вы просто щелкните правой кнопкой мыши, добавьте ресурс xml, выберите тип ресурса и укажите исходный набор.

enter image description here

если добавить макет для отладки ароматизатора только и не в главном выпуске, то каждый раз, когда вы подписываете APK те раскладка не будут включены в APK. Надеюсь, это поможет :)

+0

Почему я не думал об этом раньше! :) Спасибо, это не так, как я думал, что смогу решить эту проблему, но это работающее решение :) Кроме того, если вы создаете всемирные приложения, пожалуйста, рассмотрите ссылку, которую я предоставил в своем вопросе, у меня только 8 ГБ на моем телефон, это боль, чтобы выбрать, какие приложения мне придется удалить, чтобы попробовать другой ... –

+0

@LouisCognault я ответил на ваш вопрос? В чем проблема, с которой вы столкнулись? Если я прав, proGuard удалит все неиспользуемые классы. –

+1

Да, вы ответили на мой вопрос, это просто займет немного времени, чтобы сконфигурировать эти сборки (и переместить импортированные значки материалов из плагина Android Drawable Importer, каждый раз, чтобы каждый раз по вкусу dirs). –

Смежные вопросы