Использование средства ProGuard для оптимизации и противостояния пиратству
Средство ProGuard может также распознавать такую оптимизацию, как замена умножения некоторого значения на поразрядным сдвигом влево на бит. За счет удаления отладочной информации и изменения имен результирующий скомпилированный файл.apk не будет показывать имена переменных, классов, методов и т.п., что существенно затруднит выяснение того, как функционирует код, и его похищение с целью модификации и выпуска под другим именем.
Если вы указываете в качестве целевой платформы Android. и выше, приложение должно автоматически получить файл proguard.cfg. Содержимое этого файла по умолчанию выглядит так, .
Возможно, понадобится также указать местоположение файла proguard.cfg в свойстве proguard.config внутри файла default.properties приложения. Эта строка выглядит примерно так:
proguard.config=proguard.cfg
Как уже упоминалось, средство ProGuard удаляет определенные вещи из кода. Иногда оно удаляет слишком много, и воспрепятствовать этому можно за счет указания в файле proguard.cfg конструкций -keep. Полученный файл.apk необходимо проверить, удостоверившись, что средство ProGuard не удалило что-то лишнее. Если обнаруживаются ошибки, вызванные отсутствием классов или методов, можно включить в файл proguard.cfg еще одну конструкцию -keep для отсутствующего элемента. Повторно соберите файл.apk и снова проверьте. Мы рекомендуем пользоваться пунктом Export Signed Application Package (Экспортировать подписанный пакет приложения) в меню Android Tools (Инструменты Android) среды Eclipse, поскольку при этом обеспечивается вызов средства ProGuard во время сборки файла.apk. Экспорт рассматривается в следующем разделе.
Если для сборки приложения используется инструмент Ant, его также можно сконфигурировать на выполнение обфускации с помощью ProGuard.
После того как ProGuard завершит свою работу, в дополнение к файлу.apk вы получите файл по имени mapping.txt. Сохраните этот файл, поскольку он необходим для деобфускации трассировки стека из приложения. Если для экспорта файла.apk используется Eclipse, обратите внимание на новый подкаталог proguard, созданный в каталоге проекта Eclipse. Файл mapping.txt будет находиться в нем. Также нужно будет выдать команду retrace, которая доступна в подкаталоге tools/proguard/bin внутри Android SDK. В качестве аргументов команде retrace передаются файл mapping.txt и файл трассировки стека, причем для этих файлов должны быть указаны полные путевые имена. Кроме того, необходимо отслеживать соответствие между версиями приложения и файла mapping.txt.
Опубликовал katy
February 21 2015 15:04:22 ·
0 Комментариев ·
4281 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.