R8 (современная замена ProGuard в AGP) сжимает, оптимизирует и обфусцирует bytecode release-сборки: удаляет неиспользуемый код, переименовывает классы, иногда инлайнит.
Разбор
- Правила keep нужны для reflection, Gson/Moshi, JNI, Parcelable.
- mapping.txt нужен для деобфускации крашей в Play/Crashlytics.
- minifyEnabled true в release; debug обычно выключен.
- Ошибки «ClassNotFound» после shrink — типичный keep miss.
Итог
R8 уменьшает APK и усложняет реверс; keep-правила — часть релизного чеклиста.