私はAndroid用のアプリを開発しており、Proguardを使用してコードを難読化しています。
現在、ProGuard構成を使用しています。
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
レイアウトXMLで使用されるカスタムコンポーネント名を維持するには:
-keep public class custom.components.**
デバッグログを削除するには:
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
レイアウトのonClickで呼び出されるメソッドの名前を変更しないようにするには:
-keepclassmembers class * {
public void onClickButton1(android.view.View);
public void onClickButton2(android.view.View);
public void onClickButton3(android.view.View);
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
質問は(あります):
他のタグをお勧めしますか?なぜそして何のために?
proguard.cfgファイルにコメントを付けることは可能ですか?他の開発者が私が追加した理由について疑問を持たないように、いくつかの行が何をしているのかについてコメントを付けてもらいたいと思います。
また、プロガードでは、ファイルのコメントヘッダーを(著作権で)維持することは可能ですか?そうでない場合、またはそれが適切なポリシーではない場合、どこに著作権を追加する必要がありますか?