24

zipファイルにカプセル化されたproguardをダウンロードし、ハードディスクに解凍しました。私はそれをインストールしませんでした(方法がわからなかったため)。proguard.config=proguard.cfg次に、project.propertiesファイルに追加しました。次に、Eclipseが私のプロガードのインストール場所がわからないと文句を言うことを完全に期待して「Androidアプリケーションのエクスポート」を実行しましたが、文句はありませんでした。実際、新しいapkファイルがキーストアに表示され、一連のファイル(dump.txtなど)がアプリのproguardサブディレクトリに表示されました。mapping.txtは、私の長い変数名から1文字と2文字の変数へのマッピングの素晴らしいリストのように見えます。これはすべて、プロガードが何らかの形で機能したことの強力な証拠になるはずです-私の唯一の懸念は、apkが以前よりもほとんど小さくないことです。apkにプロガードが含まれていることを確認する方法はありますか?

4

2 に答える 2

45

通常、サイズはProGuardが機能したかどうかを示しますが、次のことができます:-

  1. Dex2Jarを使用してapkをjarファイルに変換します
  2. 結果のJarファイルをJd-Guiで開き、そこに含まれるコードを表示します
于 2012-04-17T12:33:44.997 に答える
1

@Kuffsメソッドの代わりに、新しいAPKを古いAPKと比較することもできます。それらを両方とも開き(7zipまたはお好みのツールを使用して)、それぞれのclasses.dexファイルのサイズを比較します。

サイズの節約があまり見られないかもしれないいくつかの簡単な理由:

  • 難読化されていないclasses.dexは、難読化されたものよりもはるかに圧縮することができました。これは常にある程度当てはまります。
  • リリースビルドは行いませんでした。難読化されたコードのデバッグは悪夢であるため、Proguardはリリースビルドでのみ実行されます。
  • 使用しているProguard設定は、プロジェクトに対して(少なくともコードサイズの点では)あまり効果がありません。私は実際に、proguardのコードインライン設定がjarファイルのサイズを大きくするのを見ました!
于 2012-04-17T12:46:41.367 に答える