クイックスタート•機能•貢献•ライセンス
ProGuard は、Java バイトコード用の無料の圧縮機能、最適化機能、難読化機能、および事前検証機能を備えています。
未使用のクラス、フィールド、メソッド、属性を検出して削除します。
バイトコードを最適化し、未使用の命令を削除します。
残りのクラス、フィールド、メソッドの名前は、意味のない短い名前に変更されます。
結果として得られるアプリケーションとライブラリは、より小さく、より高速になります。
実際のバグやクラッシュなどを報告するには、問題トラッカーを使用してください。
まず、GitHub リリースから最新リリースをダウンロードします。
Linux/MacOS で ProGuard を実行するには、次のように入力します。
bin/proguard.sh < options... >
または Windows の場合:
binproguard.bat <options...>
通常、ほとんどのオプションを構成ファイル ( myconfig.pro
など) に入れて、単に呼び出します。
bin/proguard.sh @myconfig.pro
または Windows の場合:
binproguard.bat @myconfig.pro
利用可能なオプションはすべて、マニュアルの設定セクションに記載されています。
ProGuard は Gradle のタスクとして実行できます。 proguard タスクを使用する前に、Gradle がビルド時にクラスパス内で proguard タスクを見つけられることを確認する必要があります。 1 つの方法は、Maven Central から ProGuard をダウンロードする次の行をbuild.gradle
ファイルに追加することです。
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
ディレクトリに生成されます。次に、 bin
内のスクリプトを使用して ProGuard を実行できます。次に例を示します。
bin/proguard.sh
以下を使用してアーティファクトをローカル Maven リポジトリに公開できます。
./gradlew publishToMavenLocal
どちらのプロジェクトでも、貢献、問題、機能のリクエストを歓迎します。貢献したい場合は、問題ページと貢献ガイドを気軽にチェックしてください。
著作権 (c) 2002-2023 ガードスクエア NV。 ProGuard は、多くのプロジェクトに認められる例外を除き、GNU General Public License バージョン 2 に基づいてリリースされています。