Android Interview Review

@AndroidSobes Нравится 2 1 500

Популярные вопросы и ответы с собеседований на Android-разработчика.
Канал для Java-разработчиков @JavaSobes
Связаться с нами @SobesAdmin
https://itsobes.ru
Гео и язык канала
Россия, Русский
Категория
Образование


Написать автору
Гео канала
Россия
Язык канала
Русский
Категория
Образование
Добавлен в индекс
18.03.2019 05:12
25 Dec 2019, 18:01 (57 дней назад)
Как Proguard обфусцирует код?

Обфускация кода – это переименование пакетов, классов, методов, полей и переменных, что позволяет усложнить исследование исходного кода программы после декомпиляции.

Proguard запускает обфускацию после удаления неиспользуемого кода. Переименовываются все компоненты программы, кроме тех, что были явно исключены в файле Proguard-правил.

После обфускации кода Proguard генерирует файл mapping.txt, который содержит маппинг новых имен к старым. Этот файл используется для декодирования обфусцированных стектрейсов. Обычно его загружают на сервис крэш-репортов (например Crashlytics), который автоматически декодирует логи.
Для ручного декодирования используется инструмент Retrace.

Proguard использует новые обфусцированные имена при каждом следующем билде. Поэтому, во-первых, надо сохранять файл mapping.txt для каждой версии программы. Во-вторых, нельзя использовать динамические имена классов как ключи для сохранения данных в персистентном хранилище.

Также обфускация делает невозможным обращение к членам класса через Reflection.
Для сохранения имен используется правило -keep.

#Build