M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

ProGuardマニュアル(13) 保全オプションの概観

原文は、ProGuard Manual”(Eric Lafortune)です(2011年3月29日取得)。

イントロダクションと索引はこちら

******************************

保全オプションの概観

はじめ、ダウンサイジングと難読化のための種々の-keepオプションについては、ちょっと混乱するかもしれません。しかしそれら多彩なオプションの背後にはパターンが隠されています。これらのオプションがどのように関係し合っているかをまとめたの次の表です。

下記のものを右記の処理から保全する 削除もしくはよび名前変更から 名前変更から
クラスとクラス・メンバーを -keep -keepnames
クラス・メンバーだけを -keepclassmembers -keepclass
membernames
もしそれらが削除されていなければクラスとクラス・メンバーを -keepclasses
withmembers
-keepclasses
withmembernames

これらの-keepオプションは、それに続いて指定されたクラスおよびクラス・メンバー(フィールドとメソッド)に対して適用されます。

どのオプションが必要であるか不確かであるならば、たぶん単純に-keepオプションを使用すべきでしょう。これにより指定したクラスとクラス・メンバーは、ダウンサイジングのステップでは削除されず、難読化のステップでは名前変更されないようになります。

いつも念頭に置いておいてください:
  • クラスのみを指定した場合、エントリーポイントとして保護されるのはクラスだけです。すべてのクラス・メンバーは、依然として削除と最適化と、難読化の対象となります。
  • クラス・メンバーのみを指定した場合、エントリーポイントとして保護されるのはそれらのクラス・メンバーだけです。関連するいかなるコードも、依然として最適化と変更処理の対象となります。

******************************

ProGuardマニュアル(14)につづく。