Sobes.tech
Junior

Co je ProGuard?

sobes.tech AI

Odpověď od AI

ProGuard je bezplatný open-source nástroj pro zmenšení, optimalizaci a obfuskaci Java bytekódu. V Android Studiu je standardně používán v režimu release sestavení ke zvýšení bezpečnosti a zmenšení velikosti APK/App Bundle.

Hlavní funkce ProGuard:

  • Zmenšení: Odstraňuje nepoužívané třídy, pole, metody a atributy.
  • Optimalizace: Analyzuje a optimalizuje bytekód, čímž jej činí efektivnějším. Například vkládá malé metody.
  • Obfuskace: Přejmenovává třídy, pole a metody na krátké nesmyslné názvy (například a, b, c), což ztěžuje reverzní inženýrství (dekompilaci) kódu.
  • Preverifikace: Přidává informace do bytekódu, které urychlují načítání JVM tříd.

Konfigurace ProGuard se provádí přes pravidlové soubory (například proguard-rules.pro), kde lze určit, co ponechat nedotčené (například třídy používané v manifestu, nativní metody, třídy pro Parcelable a Serializable). Bez těchto pravidel může ProGuard odstranit nebo přejmenovat komponenty potřebné pro správnou funkci aplikace.

Výsledkem práce ProGuard je kompaktnější, výkonnější a proti reverznímu inženýrství chráněný bytekód.