我正在开发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文件中添加注释吗?我想要将某些行的注释添加到文件中,以便其他开发者不会对我添加的原因产生疑问。
此外,在proguard中,是否可以保留文件的注释头(版权)?如果不行,或者这不是一个好的政策,那么我应该在哪里添加版权信息?