# Understanding the Android Build Pipeline with ProGuard and R8

DevFeed: [Understanding the Android Build Pipeline with ProGuard and R8](<https://devfeed.tech/articles/proguard-r8-part-1-32347.md>)

Original publisher: [Read original article](<https://dustn.dev/post/2019-11-6-understanding-the-android-build-pipeline/>)

Author: dustin@dustn.dev (Dustin Summers)

Published: 2019-11-06T12:08:40Z

Content type: tutorial

Language: en

Sources: [Dustin Summers](<https://devfeed.tech/sources/dustin-summers.md>)

Topics: [R8](<https://devfeed.tech/topics/r8.md>), [Code](<https://devfeed.tech/topics/code.md>), [obfuscation](<https://devfeed.tech/topics/obfuscation.md>), [software-development](<https://devfeed.tech/topics/software-development.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [obfuscation](<https://devfeed.tech/tags/obfuscation.md>), [proguard](<https://devfeed.tech/tags/proguard.md>), [proguard-android-r8-smali-dalvik-jvm-kotlin-art-gradle-java](<https://devfeed.tech/tags/proguard-android-r8-smali-dalvik-jvm-kotlin-art-gradle-java.md>), [r8](<https://devfeed.tech/tags/r8.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

## AI overview

A tutorial explaining the Android build pipeline and where ProGuard and R8 fit into it. It introduces compilation stages, optimization, shrinking, and code obfuscation, with an emphasis on understanding and diagnosing how these tools transform source code into bytecode.

## Source excerpt

Tools such as R8 and ProGuard are available for free, but to many they are a black box that code goes into and stuff comes out. My goal is to demystify the black box and teach developers how to properly diagnose the code going into and coming out of these build tools. It will also explain why you should care and why applying these tools should be a priority before shipping any code into the wild.