ProGuard — утиліта командного рядка із відкритим програмним кодом, призначена для оптимізації та обфускації Java коду. Вона може здійснити оптимізацію байт-коду, а також виявлення та видалення невикористовуваних інструкцій.. ProGuard — це вільне програмне забезпечення, яке розповсюджується під ліцензією GNU General Public License, версія 2.

ProGuard розповсюджується як частина Android SDK та запускається при компіляції додатку на стадії випуску програмного продукту (release mode).

Функції

Оптимізація байт-коду. Робота із Java Micro Edition та Android;

Обфускація ProGuard здійснює обфускацію Java та Android додатків шляхом перейменування імен класів, полів та методів у «беззмістовні» імена, ускладнюючи цим зворотню розробку (reverse-engineer) додатку.

Оптимізація Наряду із видаленням невикористовуваних команд із скомпільованого байт-коду, ProGuard здійснює його оптимізацію використовуючи такі техніки як: аналіз потоку керування, аналіз потоку даних, часткове виконанню, SSA (Static Single Assignment form), нумерація значень і аналіз часу життя даних. ProGuard може видалити багато типів невикористовуваного і дуплікованого коду, виконати більше 200 peephole оптимізацій, зменшити використання змінних, рядкових констант та коротких методів, спростити хвостову рекурсію, видалити код для логування та багато іншого.

Див. також Java (programming language) Program optimization Obfuscation (software)

Примітки

Посилання ReTrace ProGuard Protected StackTrace Online