ProGuardは、「リリース」モードでビルドを実行したときにのみ起動します。 これを行う方法がわからない人(Eclipse):プロジェクトのコンテキストメニューを右クリックし、[ エクスポート ] -> [Android]-> [Androidアプリケーションのエクスポート]を選択します 。 プロジェクトを作成すると、構成ファイルはルートにproguard.cfgという名前で自動的に表示されます。 お持ちでない場合は、SDKを含むフォルダー内のユーティリティを確認してください。
次に、アセンブリの前に難読化ツール自体を有効にするには、 proguard.config = / path / proguard.cfgの形式の行を/root_of_your_project/default.propertiesファイルに追加する必要があります。pathはファイルへのパスです。 したがって、多数のプロジェクトの1つの構成をドラッグできます。
そのため、アセンブリの「リリース」後、ProGuardは次のいずれかのフォルダーで少し汚れます。
- / root_of_your_project / proguard -Eclipseを使用する場合
- / root_of_your_project / bin / proguard -Antを使用する場合
ファイルが作成されます:
- dump.txt- * .apkのすべてのクラスファイルの内部を説明します
- mapping.txt-ソースと難読化されたクラス、クラスフィールド、メソッド間のマッピングを表します。
- seeds.txt-焦点の合っていないクラスのリスト
- usage.txt- * .apkから取得したコード
また、developer.android.comでは、ProGuardコードを処理する際に、 ClassNotFoundExceptionの形で合併症が発生する可能性があると警告しています。 これを回避するには、構成に行を追加できます。
-keep public class <MyClass>
設定の詳細については、 こちらをご覧ください 。 実際、そこにはいくつかのサンプルがあります 。
さらに、フォルダー/ path_to_your_SDK / tools / proguard / binには、 retrace.batと呼ばれる特定のスクリプトがあります (Linux / Mac OS Xの場合-retrace.sh )。 上記のmapping.txtを使用して、難読化されたものを読み取り可能に変換できます。
使用構文:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
例:
retrace.bat -verbose mapping.txt obfuscated_trace.txt
スクリプトが<stacktrace_file>へのパスを書き込むのが面倒な場合、標準の手動テキスト入力も受け入れます。
ProGuard(デフォルト設定)を使用して「リリース」モードで最初に起動したときにエラーコード1が飛んでいる場合、SDKへのパスにスペースが含まれている可能性があります。
難読化をお楽しみください!