我已將ProGuard應用於我的Android應用程序。爲什麼Proguard在Android中保留Activity類?
我使用
android-studio/sdk/tools/proguard/proguard-android.txt
作爲配置文件,變着法子。
在這個文件中,我可以看到關於活動唯一的語句:
We want to keep methods in Activity that could be used in the XML attribute onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
它不同於活動類名被ProGuard的obfusctated而被保留的一些方法,因爲它們是如下。這是可以理解的。
然而,在我的應用程序,然後使用
Class.forName("my.app.MyActivity")
然後我開始這個活動的字符串創建活動類,它開始罰款。
但這意味着活動派生的類不會被混淆?。它應該失敗,因爲ProGuard沒有指令Activity
,它只有-keepclassmembers.
有人請解釋,如果我可以依靠我觀察到的行爲?或者我誤解-keepclassmembers
指令?
您應該發佈整個文件,因爲僅有這一行不足以解釋爲什麼它保留活動名稱 – Raffaele