เริ่มต้นอย่างรวดเร็ว • คุณสมบัติ • การสนับสนุน • ใบอนุญาต
ProGuard เป็นตัวลดขนาด, เครื่องมือเพิ่มประสิทธิภาพ, obfuscator และ preverifier ฟรีสำหรับ Java bytecode:
ตรวจจับและลบคลาส ฟิลด์ วิธีการ และคุณลักษณะที่ไม่ได้ใช้
มันเพิ่มประสิทธิภาพไบต์โค้ดและลบคำแนะนำที่ไม่ได้ใช้
โดยเปลี่ยนชื่อคลาส ฟิลด์ และเมธอดที่เหลือโดยใช้ชื่อสั้นๆ ที่ไม่มีความหมาย
แอปพลิเคชันและไลบรารีผลลัพธ์ที่ได้จะเล็กลงและเร็วขึ้น
โปรดใช้ ตัวติดตามปัญหา เพื่อรายงาน ข้อบกพร่องจริง ?, ข้อขัดข้อง ฯลฯ
ขั้นแรก ดาวน์โหลดรุ่นล่าสุดจาก 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 ยังสามารถลบรหัสบันทึกออกจากแอปพลิเคชันและไลบรารีได้โดยไม่จำเป็นต้องเปลี่ยนซอร์สโค้ด — จริงๆ แล้วไม่จำเป็นต้องใช้ซอร์สโค้ดเลย!
หน้าคู่มือ (markdown, html) ครอบคลุมคุณสมบัติและการใช้งานของ ProGuard โดยละเอียด
การสร้าง ProGuard เป็นเรื่องง่าย - คุณเพียงแค่ต้องติดตั้ง Java 8 JDK เท่านั้น หากต้องการสร้างจากแหล่งที่มา ให้โคลนสำเนาของที่เก็บ ProGuard และรันคำสั่งต่อไปนี้:
./gradlew assemble
อาร์ติแฟกต์จะถูกสร้างขึ้นในไดเร็กทอรี lib
จากนั้นคุณสามารถรัน ProGuard ได้โดยใช้สคริปต์ใน bin
เช่น:
bin/proguard.sh
คุณสามารถเผยแพร่อาร์ติแฟกต์ไปยังพื้นที่เก็บข้อมูล Maven ในเครื่องของคุณได้โดยใช้:
./gradlew publishToMavenLocal
ยินดีต้อนรับการมีส่วนร่วม ปัญหา และการร้องขอคุณสมบัติในทั้งสองโครงการ อย่าลังเลที่จะตรวจสอบหน้าปัญหาและคู่มือการมีส่วนร่วมหากคุณต้องการมีส่วนร่วม
ลิขสิทธิ์ (c) 2002-2023 Guardsquare NV ProGuard ได้รับการเผยแพร่ภายใต้ GNU General Public License เวอร์ชัน 2 โดยมีข้อยกเว้นสำหรับหลายโครงการ