Mobile Development 12 min read

Android Code Obfuscation: ProGuard vs R8 and Configuration Guide

This article explains Android code obfuscation, compares ProGuard and R8, details their four core functions, shows how to enable or disable them via Gradle settings, discusses ProGuard rule syntax and sources, and provides best practices for modular projects and componentized obfuscation.

Sohu Tech Products
Sohu Tech Products
Sohu Tech Products
Android Code Obfuscation: ProGuard vs R8 and Configuration Guide

Code obfuscation is an essential step for Android developers when building release APKs, typically enabled by setting minifyEnabled true . The article explains the underlying principles, the evolution of obfuscation compilers (ProGuard and its successor R8), and how they integrate with the Android Gradle Plugin.

It outlines the timeline of ProGuard and R8 support across AGP versions, showing when each became default. The four core functions—shrink (compress), optimize, obfuscate, and preverify—are described, with differences between ProGuard and R8 highlighted.

Configuration examples demonstrate how to explicitly enable or disable R8/D8, control minifyEnabled , shrinkResources , and specify ProGuard rule files. Sample build.gradle snippets illustrate settings for preview, release, and debug build types.

The article details ProGuard rule syntax, common directives such as -keep , -dontshrink , -dontoptimize , and how annotations like @Keep affect rule generation. It also explains the three sources of rule files: Android Gradle plugin, AAPT2, and module‑specific files.

For modular projects, the impact of module‑level obfuscation is examined. Tests show that only the App module’s ProGuard rules are applied to the final APK, while library module rules require consumerProguardFiles to be merged. Componentized obfuscation strategies and their trade‑offs are discussed.

In summary, ProGuard is a general Java bytecode optimizer, whereas R8 is Android‑specific and combines shrinking, optimization, obfuscation, desugaring, and DEX conversion into a single step, offering better build performance and smaller artifacts.

AndroidR8GradleBuild ToolsDexcode obfuscationProGuard
Sohu Tech Products
Written by

Sohu Tech Products

A knowledge-sharing platform for Sohu's technology products. As a leading Chinese internet brand with media, video, search, and gaming services and over 700 million users, Sohu continuously drives tech innovation and practice. We’ll share practical insights and tech news here.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.