Android Proguard не удаляет все сообщения журнала

Это около 7 МБ пространства стека. В визуальной студии вы должны использовать / STACK: ###, ###, чтобы отобразить нужный размер. Если вы действительно хотите получить огромный стек (это может быть хорошей причиной, используя LISP или что-то еще :), даже куча ограничена небольшими ассигнованиями, прежде чем заставить вас использовать VirtualAlloc), вы также можете настроить PE для создания с помощью / LARGEADDRESSAAWARE (компоновщик Visual Studio снова), но этот заголовок PE вашего конфигуратора позволяет вашему скомпилированному двоичному файлу обращаться к полному 4 ГБ 32-битного адресного пространства (если выполняется в WOW64). Если вы построите действительно массивные двоичные файлы, вам также, как правило, нужно будет сконфигурировать / bigobj в качестве дополнительного параметра-линкера.

И если вам все еще нужно больше места, вы можете радикально нарушить соглашение, используя что-то simular to (снова ссылка MSVC ) / merge :, который позволит вам упаковать один раздел в другой, так что вы можете использовать каждый отдельный байт для отдельного разделяемого раздела / данных. Естественно, вам также нужно будет настроить разрешения SECTIONS в файле def или с помощью #pgrama.

23
задан Community 23 May 2017 в 12:09
поделиться

2 ответа

Конфигурация Android Proguard по умолчанию отключает оптимизацию. Чтобы включить его, в файле project.properties вашего проекта используйте proguard-android-optimize.txt вместо proguard-android.txt

18
ответ дан Gallal 23 May 2017 в 12:09
поделиться

Если у вас есть Android Studio, вы должны изменить build.gradle вашего основного приложения.

В вашем файле Gradle вы должны указать использование proguard-android-optimize.txt в качестве файла по умолчанию.

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

        // With the file below, it does not work!
        //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

На самом деле, в файле proguard-android.txt по умолчанию оптимизация отключена с двумя флагами:

-dontoptimize
-dontpreverify

Файл proguard-android-optimize.txt не добавляет эти строки, поэтому теперь assumenosideeffects может работа.

Затем, как сказано в других ответах на Eclipse или просто, вам просто нужно добавить в ваш основной файл proguard строку:

-assumenosideeffects class android.util.Log {
    public static *** d(...);
    public static *** e(...);
}
10
ответ дан Vincent Hiribarren 23 May 2017 в 12:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: