В проекте android, build.gradle, я прошел через эту строку
dexOptions{
javaMaxHeapSize "4g"
}
Я хотел бы узнать точную цель этого javaMaxHeapSize и что это означает 4g. Какие другие ценности я могу дать?
В проекте android, build.gradle, я прошел через эту строку
dexOptions{
javaMaxHeapSize "4g"
}
Я хотел бы узнать точную цель этого javaMaxHeapSize и что это означает 4g. Какие другие ценности я могу дать?
Как уже упоминалось в ответе выше, просто указать максимальный пул распределения памяти для виртуальной машины Java (JVM) для работы с dex. И это то же самое, что и предоставить java аргумент -xmx
. Из-за этого исходные коды из здесь, он выглядит следующим образом:
if (theJavaMaxHeapSize.matches("\\d+[kKmMgGtT]?")) {
javaMaxHeapSize = theJavaMaxHeapSize
} else {
throw new IllegalArgumentException(
"Invalid max heap size DexOption. See `man java` for valid -Xmx arguments.")
}
Итак, вы можете видеть, что принятое значение должно соответствовать шаблону \d+[kKmMgGtT]?
, и, следовательно, нет, оно даже относится к man java
, чтобы узнать, как установить -xmx
. Здесь вы можете прочитать справочную страницу. И он говорит, что этот флаг:
Укажите максимальный размер пула распределения памяти в байтах. Это значение должно быть кратно 1024 больше, чем 2 МБ. Добавьте букву k или K, чтобы указать килобайты, или m или M, чтобы указать мегабайты. Значение по умолчанию выбирается во время выполнения на основе конфигурации системы.
В вашем примере 4g
- 4 гигабайта, и это максимальный размер кучи для операции dex.
Это недокументированная опция увеличения размера кучи для операции dex: https://groups.google.com/d/msg/adt-dev/P_TLBTyFWVY/4TPJ2YY6khUJ
это максимальный Ram, который может использовать gradle при создании сборки (файл apk). Это может быть изменено в соответствии со структурой и размером проекта, всегда безопасно иметь по крайней мере разрешенный "4g" Ram, однако иногда нам также нужно поднимать его так, как если бы мы хотели использовать флаг minifyEnabled true или shrinkResources true в gradle для выпуска строить
dexOptions{
javaMaxHeapSize "4g"
}
после записи в build.gradle
перейдите к gradle.properties
и включите эту строку:
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8