Подтвердить что ты не робот

Как узнать, выполнила ли Proguard свою работу

Я загрузил proguard, инкапсулированный в zip файл, и распаковал его на свой жесткий диск. Я не устанавливал его каким-либо образом (потому что я не знал, как это сделать). Затем я добавил proguard.config=proguard.cfg в файл project.properties. Затем я сделал "приложение для экспортных приложений", полностью ожидая, что затмение будет жаловаться, что оно не знает, где была моя установка для защиты, но жалобы не было. Действительно, в моем хранилище ключей появился новый файл apk, и в моем подпрограмме proguard приложения появился набор файлов (dump.txt и т.д.). Файл mapping.txt выглядит как хороший список отображений от моих длинных имен переменных до одной и двух буквенных переменных. Все это должно быть убедительным доказательством того, что proguard как-то сработало - моя единственная забота в том, что apk почти не меньше, чем раньше. Есть ли способ проверить, что apk включает obfuscations proguard?

4b9b3361

Ответ 1

Обычно размер будет указывать, работал ли ProGuard, но вы можете: -

  • Используйте Dex2Jar для преобразования apk в файл jar.
  • Откройте полученный файл Jar с помощью Jd-Gui, чтобы просмотреть его код.

Ответ 2

Альтернативой методу @Kuffs было бы сравнить ваш новый APK со старым. Откройте их обоих (с помощью 7zip или вашего предпочтительного инструмента) и сравните размер файлов classes.dex в каждом из них.

Несколько простых причин, по которым вы, возможно, не видите значительную экономию:

  • Несоблюдение классов .dex удалось сжать гораздо больше, чем запутанное. Это всегда верно в некоторой степени.
  • Вы не создали релиз. Proguard только запускается в сборках релизов, поскольку отладка запущенного кода - это кошмар.
  • Настройки Proguard, которые вы используете, не приносят пользы (по крайней мере, с точки зрения размера кода) для вашего проекта. Я на самом деле видел, что настройки прокрутки кода proguard увеличивают размер файлов jar раньше!