我正在为 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中,是否可以维护文件的注释头(具有版权)?如果不是,或者这不是一个好的政策,我应该在哪里添加版权?