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

Должен ли я использовать ProGuard?

Я хочу создать подписанный APK в Android Studio, и он предлагает мне возможность запускать ProGuard. Он просит указать путь к файлу конфигурации, но у меня нет файла конфигурации. Как его создать? Должен ли я использовать ProGuard? Можете ли вы и легко ли распаковать APK файл, который не использует ProGuard?

EDIT: Спасибо за ваши ответы, но я не могу найти файл proguard.cfg в любом месте. Только файл свойств, который у меня есть в корневой директории проекта, - файл local.properties, и когда я открываю его в Android Studio, я получил следующее:

# This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.

# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=C:/.../...
4b9b3361

Ответ 1

Сложно перепроектировать приложения для Android, поэтому, если вы хотите предотвратить это, да, вы должны использовать ProGuard для своей основной функции: obfuscation.

ProGuard также имеет две другие важные функции: сокращение, что устраняет неиспользуемый код и, очевидно, очень полезно, а также оптимизация. Однако оптимизация работает с байт-кодом Java, и поскольку Android работает на байт-коде Dalvik, который преобразован из байт-кода Java, некоторые оптимизации не будут работать так хорошо. Поэтому вы должны быть осторожны.

Существуют инструкции о том, как использовать proguard на веб-сайте Android. Главное, что вам нужно проверить, это то, что у вас есть строка

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

в вашем файле project.properties. Поскольку вы упоминаете, что используете Android Studio, и у вас нет этого файла, но вас спрашивают о файле конфигурации, попробуйте выбрать тот, который находится в Android SDK (tools/proguard/proguard-android.txt).

Ответ 2

Необязательно использовать ProGuard, и используете ли вы его или нет, довольно просто распаковать apk и получить на свои ресурсы (графику и другие активы). Если вы не используете ProGuard, код приложения также может быть легко реконструирован, ProGuard становится очень трудным и громоздким, чтобы попытаться понять, что происходит там (хотя это и невозможно, учитывая достаточное количество времени и усилий).

Будьте осторожны, чтобы тщательно протестировать ваше приложение после обфускации, так как это изменение в приложении, а иногда и непредвиденные вещи могут произойти, особенно если oyu сильно используют отражение.

Ответ 3

Одним из важных случаев для обфускации ProGuard является то, что некоторые плохие парни распаковывают apk и добавляют/заменяют модуль покупки на свои. Мы не можем ожидать, что все пользователи загружат apk только из Play Маркета, и пользователи могут украсть свою учетную запись.

Ответ 4

Прогон ProGuard полностью необязателен, но рекомендуется.

Здесь вы можете найти все, что вам нужно: http://developer.android.com/tools/help/proguard.html

Также вы можете удалить следующую строку из файла default.properties в корневой папке проекта:

proguard.config = proguard.cfg