# ProGuard

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/ProGuard
> Markdown URL: https://mediated.wiki/source/ProGuard.md
> Source: https://en.wikipedia.org/wiki/ProGuard
> Source revision: 1346431813
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Open-source Java obfuscation tool

ProGuard ProGuard GUI Developer Eric P.F. Lafortune[1] Stable release 7.9.1[2] / 9 April 2026; 2 months ago (9 April 2026) Written in Java Operating system Cross-platform License GPLv2.0[3] Website www.guardsquare.com/en/products/proguard Repository github.com/Guardsquare/proguard

**ProGuard** is an [open source](/source/Open-source_software) [command-line tool](/source/Command-line_interface) which shrinks, [optimizes](/source/Program_optimization) and [obfuscates](/source/Obfuscation_(software)) [Java](/source/Java_(programming_language)) code. It was created by Belgian software engineer Eric Lafortune and later formed the basis of Guardsquare, the mobile application security company he co-founded.[4] It is able to optimize [bytecode](/source/Bytecode) as well as detect and remove unused [instructions](/source/Instruction_set).[5] ProGuard is free software and is distributed under the [GNU General Public License](/source/GNU_General_Public_License), version 2.[3]

ProGuard was distributed as part of the [Android SDK](/source/Android_software_development#Android_SDK) and ran when [building](/source/Compiler) the application in [release mode](/source/Software_release_life_cycle#Release).[6]

## Features

- [Bytecode](/source/Bytecode)-level optimizations;

- Also works with [Java Micro Edition](/source/Java_Micro_Edition) and [Android](/source/Android_software_development#Android_SDK);

### Obfuscation Method

ProGuard obfuscates Java and Android programs by renaming [classes](/source/Class_(programming)), [fields](/source/Field_(computer_science)), and [methods](/source/Method_(computer_programming)) using meaningless names (an implementation of [security through obscurity](/source/Security_through_obscurity)), making it more difficult to [reverse-engineer](/source/Reverse_engineering#Reverse_engineering_of_software) the final application.[7]

### Optimization

Besides removing unused [instructions](/source/Instruction_set) from the [compiled](/source/Compiler) [bytecode](/source/Bytecode), ProGuard optimizes it using techniques such as [control flow analysis](/source/Control_flow_analysis), [data-flow analysis](/source/Data-flow_analysis), [partial evaluation](/source/Partial_evaluation), [static single assignment](/source/Static_single_assignment_form), [global value numbering](/source/Global_value_numbering), and [liveness analysis](/source/Live_variable_analysis).[7]

ProGuard can remove many types of unused and duplicated code, perform over 200 [peephole optimizations](/source/Peephole_optimizations), reduce [variable allocation](/source/Memory_management#Manual_memory_management), [inline](/source/Inline_expansion) constant and short [methods](/source/Method_(computer_programming)), simplify [tail recursion](/source/Tail_recursion) calls, remove [logging](/source/Debugging) code, amongst others.[7]

## See also

- [Free and open-source software portal](https://en.wikipedia.org/wiki/Portal:Free_and_open-source_software)
- [Computer programming portal](https://en.wikipedia.org/wiki/Portal:Computer_programming)

- [Java (programming language)](/source/Java_(programming_language))

- [Program optimization](/source/Program_optimization)

- [Obfuscation (software)](/source/Obfuscation_(software))

- [Dotfuscator](/source/Dotfuscator)

- [DashO (software)](/source/DashO_(software))

## References

1. **[^](#cite_ref-1)** ["Eric Lafortune home page"](http://www.lafortune.eu/). Retrieved November 24, 2015.

1. **[^](#cite_ref-wikidata-da37a67c1b645f99b8acc037d2cac82c3edf4ac4-v20_2-0)** ["Release 7.9.1"](https://github.com/Guardsquare/proguard/releases/tag/v7.9.1). April 9, 2026. Retrieved April 10, 2026.

1. ^ [***a***](#cite_ref-license_3-0) [***b***](#cite_ref-license_3-1) ["ProGuard license page"](https://proguard.sourceforge.net/license.html). February 2, 2015. Retrieved November 24, 2015.

1. **[^](#cite_ref-4)** ["Battery Ventures pays $29 million for a majority stake in Belgium's Guardsquare"](https://tech.eu/2019/01/30/battery-ventures-pays-29-million-for-a-majority-stake-in-belgiums-guardsquare/). *Tech.eu*. January 30, 2019. Retrieved March 31, 2026.

1. **[^](#cite_ref-5)** ["ProGuard overview (official page)"](https://proguard.sourceforge.net/index.html). February 2, 2015. Retrieved November 24, 2015.

1. **[^](#cite_ref-6)** ["Shrink your code and resources"](https://developer.android.com/studio/build/shrink-code). Retrieved June 10, 2018.

1. ^ [***a***](#cite_ref-faq_7-0) [***b***](#cite_ref-faq_7-1) [***c***](#cite_ref-faq_7-2) ["ProGuard FAQ"](https://web.archive.org/web/20161028095555/http://proguard.sourceforge.net/FAQ.html). February 2, 2015. Archived from [the original](https://proguard.sourceforge.net/FAQ.html) on October 28, 2016. Retrieved November 24, 2015.

---
Adapted from the Wikipedia article [ProGuard](https://en.wikipedia.org/wiki/ProGuard) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/ProGuard?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
