البداية السريعة • الميزات • المساهمة • الترخيص
ProGuard عبارة عن أداة تقليص ومُحسِّن وأداة تعتيم ومُسبقة مجانية لرمز Java الثانوي:
يكتشف ويزيل الفئات والحقول والأساليب والسمات غير المستخدمة.
يعمل على تحسين الرمز الثانوي وإزالة التعليمات غير المستخدمة.
يقوم بإعادة تسمية الفئات والحقول والأساليب المتبقية باستخدام أسماء قصيرة لا معنى لها.
التطبيقات والمكتبات الناتجة أصغر وأسرع.
الرجاء استخدام أداة تعقب المشكلات للإبلاغ عن الأخطاء الفعلية، والأعطال ، وما إلى ذلك.
أولاً، قم بتنزيل أحدث إصدار من إصدارات GitHub.
لتشغيل ProGuard، على Linux/MacOS، فقط اكتب:
bin/proguard.sh < options... >
أو على نظام التشغيل Windows:
binproguard.bat <options...>
عادةً، ستضع معظم الخيارات في ملف التكوين (على سبيل المثال، myconfig.pro
)، ثم اتصل فقط
bin/proguard.sh @myconfig.pro
أو على نظام التشغيل Windows:
binproguard.bat @myconfig.pro
تم توضيح جميع الخيارات المتاحة في قسم التكوين بالدليل.
يمكن تشغيل ProGuard كمهمة في Gradle. قبل أن تتمكن من استخدام مهمة proguard، عليك التأكد من أن Gradle يمكنه العثور عليها في مسار الفصل الخاص به في وقت الإنشاء. إحدى الطرق هي إضافة السطر التالي إلى ملف build.gradle
الخاص بك والذي سيقوم بتنزيل ProGuard من Maven Central:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath ' com.guardsquare:proguard-gradle:7.6.1 '
}
}
يمكنك بعد ذلك تحديد مهمة بالتكوين:
tasks . register( ' proguard ' , ProGuardTask ) {
configuration file( ' proguard.pro ' )
injars(tasks . named( ' jar ' , Jar ) . flatMap { it . archiveFile })
// Automatically handle the Java version of this build.
if ( System . getProperty( ' java.version ' ) . startsWith( ' 1. ' )) {
// Before Java 9, the runtime classes were packaged in a single jar file.
libraryjars " ${ System.getProperty('java.home') } /lib/rt.jar "
} else {
// As of Java 9, the runtime classes are packaged in modular jmod files.
libraryjars " ${ System.getProperty('java.home') } /jmods/java.base.jmod " , jarfilter : ' !**.jar ' , filter : ' !module-info.class '
// libraryjars "${System.getProperty('java.home')}/jmods/....."
}
verbose
outjars(layout . buildDirectory . file( " libs/ ${ baseCoordinates } -minified.jar " ))
}
يشبه التكوين المضمن إلى حد كبير تكوين ProGuard القياسي. يمكنك العثور على مزيد من التفاصيل في صفحة إعداد Gradle.
يعمل ProGuard مثل مترجم تحسين متقدم، وإزالة الفئات والحقول والأساليب والسمات غير المستخدمة، وتقصير المعرفات، ودمج الفئات، وأساليب التضمين، ونشر الثوابت، وإزالة المعلمات غير المستخدمة، وما إلى ذلك.
تعمل التحسينات عادةً على تقليل حجم التطبيق بنسبة تتراوح بين 20% و90%. يعتمد التخفيض في الغالب على حجم المكتبات الخارجية التي يمكن لـ ProGuard إزالتها كليًا أو جزئيًا.
قد تؤدي التحسينات أيضًا إلى تحسين أداء التطبيق بنسبة تصل إلى 20%. بالنسبة لأجهزة Java الافتراضية الموجودة على الخوادم وأجهزة سطح المكتب، لا يكون الفرق ملحوظًا بشكل عام.
يستطيع ProGuard أيضًا إزالة كود التسجيل، من التطبيقات ومكتباتها، دون الحاجة إلى تغيير كود المصدر - في الواقع، دون الحاجة إلى كود المصدر على الإطلاق!
تغطي الصفحات اليدوية (تخفيض السعر، html) ميزات واستخدام ProGuard بالتفصيل.
يعد إنشاء ProGuard أمرًا سهلاً - ستحتاج فقط إلى تثبيت Java 8 JDK. للإنشاء من المصدر، انسخ نسخة من مستودع ProGuard وقم بتشغيل الأمر التالي:
./gradlew assemble
سيتم إنشاء القطع الأثرية في دليل lib
. يمكنك بعد ذلك تنفيذ ProGuard باستخدام البرامج النصية الموجودة في bin
، على سبيل المثال:
bin/proguard.sh
يمكنك نشر القطع الأثرية إلى مستودع Maven المحلي الخاص بك باستخدام:
./gradlew publishToMavenLocal
المساهمات والقضايا وطلبات الميزات هي موضع ترحيب في كلا المشروعين. لا تتردد في مراجعة صفحة المشكلات ودليل المساهمة إذا كنت ترغب في المساهمة.
حقوق الطبع والنشر (ج) 2002-2023 Guardsquare NV. تم إصدار ProGuard بموجب رخصة جنو العامة، الإصدار 2، مع استثناءات ممنوحة لعدد من المشاريع.