Как я могу предотвратить ненужное хранение ресурсов во вкусах продукта? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть приложение с 5 разными вкусами.Они используют очень большие ресурсы.Первоначально, те, которые были необходимы, были реплицированы в каждом аромате, но было так много избыточности, что я нашел, что лучше поместить их все в main и определить, какие ресурсы использует каждый аромат.

Скажем, есть 100 ресурсов, которыевместе равняется 1 ГБ.Я поместил файл keep.xml в папку res каждого аромата, который предположительно должен препятствовать включению ненужных ресурсов в сборку этого аромата.Например:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
       tools:keep="@raw/x, @raw/y, @raw/z"
       tools:discard="@raw/a, @raw/b, ..."
/>

Однако, даже если аромат использует только один ресурс, его размер apk все равно остается тем же, что и аромат, который использует их все.Более того, я даже не могу собрать все это успешно, потому что у меня не хватает JM Tenure Space, хотя я установил в build.gradle значение 32 ГБ, что на намного больше, чем размериз моих ресурсов, даже умноженных на количество ароматов.Я установил его, используя:

dexOptions {
    javaMaxHeapSize "32g"
}

Я также вставил gradle.properties

org.gradle.jvmargs=-Xmx1536m -XX\:MaxHeapSize\=32g

Как (при сохранении ресурсов в main) я могу предотвратить использование некоторых ресурсовупакованы в apk данного аромата и избегать максимизации кучи?(Между прочим, это прекрасно для создания полной версии ресурсов, или даже двух или трех - поэтому я знаю, что моя куча JM достаточно велика, чтобы обрабатывать все - она ​​просто создает больше вариантов, чем та, которая становится проблемой, даже если ониВы не должны использовать более одного элемента res, потому что по какой-то причине они все равно включаются).

...