ProGuard (додаток)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
ProGuard
РозробникEric P.F. Lafortune
Стабільний випуск5.3 (вересень 2016 року)
Операційна системаCross-platform
Мова програмуванняJava
Стан розробкиактивний
ЛіцензіяGPLv2.0
Репозиторійgithub.com/Guardsquare/proguard
Вебсайтproguard.sourceforge.net/index.html

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

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

Функції

[ред. | ред. код]

Обфускація

[ред. | ред. код]

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

Оптимізація

[ред. | ред. код]

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

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. ProGuard overview (official page). Архів оригіналу за 2 листопада 2016. Процитовано 3 листопада 2016.
  2. ProGuard license page. Архів оригіналу за 3 грудня 2016. Процитовано 3 листопада 2016.
  3. Android Developers - ProGuard. Архів оригіналу за 4 листопада 2016. Процитовано 3 листопада 2016.
  4. а б в ProGuard FAQ. Архів оригіналу за 28 жовтня 2016. Процитовано 3 листопада 2016.

Посилання

[ред. | ред. код]