ProGuard (software)

ProGuard
Developer(s) Eric P.F. Lafortune[1]
Stable release
5.2 / January 2015 (2015-01)
Development status Stable
Written in Java
Operating system Cross-platform
License GPLv2.0[2]
Website proguard.sourceforge.net/index.html

ProGuard is an open source command-line tool that shrinks, optimizes and obfuscates Java code. It is able to optimize bytecode as well as detect and remove unused instructions.[3] ProGuard is free software and is distributed under the GNU General Public License, version 2.[2]

ProGuard is distributed as part of the Android SDK and runs when building the application in release mode.[4]

Features

Obfuscation

ProGuard obfuscates Java and Android programs by renaming classes, fields, and methods using meaningless names, making it harder to reverse-engineer the final application.[5]

Optimization

Besides removing unused instructions from the compiled bytecode, ProGuard optimizes it using techniques such as control flow analysis, data-flow analysis, partial evaluation, static single assignment, global value numbering, and liveness analysis.[5]

ProGuard can remove many types of unused and duplicated code, perform over 200 peephole optimizations, reduce variable allocation, inline constant and short methods, simplify tail recursion calls, remove logging code, among others.[5]

See also

References

  1. "Eric Lafortune home page". Retrieved November 24, 2015.
  2. 1 2 "ProGuard license page". Retrieved Nov 24, 2015.
  3. "ProGuard overview (official page)". Retrieved Nov 24, 2015.
  4. "Android Developers - ProGuard". Retrieved Nov 24, 2015.
  5. 1 2 3 "ProGuard FAQ". Retrieved Nov 24, 2015.
This article is issued from Wikipedia - version of the 9/29/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.