Android ProGuard可以通过配置文件来指定哪些类、方法和字段需要保留,以及需要进行混淆。如果希望保留源文件和行信息,可以在ProGuard配置文件中添加以下代码:
-keepattributes SourceFile,LineNumberTable
这将告诉ProGuard保留源文件和行号信息。在混淆过程中,源文件和行号将保持不变。
示例的完整ProGuard配置文件如下:
# 保留源文件和行号信息
-keepattributes SourceFile,LineNumberTable
# 保留特定的类、方法和字段
-keep class com.example.MyClass {
public void myMethod();
public int myField;
}
# 其他ProGuard配置项...
在上面的示例中,我们保留了com.example.MyClass
类中的myMethod()
方法和myField
字段,以及源文件和行号信息。
请注意,尽管保留了源文件和行号信息,但还是建议在发布正式版本时关闭ProGuard的调试选项,以提高应用程序的安全性和性能。可以通过在构建配置文件(例如build.gradle)中将minifyEnabled
设置为true
来启用ProGuard,并将debuggable
设置为false
以禁用调试。
android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable false
}
}
}
这样,将只在发布的版本中启用ProGuard,并保留了源文件和行号信息。