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.

Посилання[ред. | ред. код]