Что такое обфускация

«Что такое обфускация» — вопрос из категории Gradle и сборка, который задают на 27% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример в Android (ProGuard):

# Сохранение важных классов/методов
-keep class com.example.MyClass { *; }

Основные методы:

  • Переименование классов, методов, переменных (a, b, c)
  • Удаление отладочной информации
  • Оптимизация и минимизация кода

Популярные инструменты:

  • ProGuard (встроен в Android Studio)
  • R8 (более современная замена ProGuard)
  • DexGuard (платный, с расширенными возможностями)