Dlaczego Proguard utrzymuje klasę aktywności w Androidzie?

zaaplikowałemProGuard do mojej aplikacji na Androida.

używam

android-studio/sdk/tools/proguard/proguard-android.txt

jako plik konfiguracyjny, nic się nie zmienia.

W tym pliku widzę jedyne stwierdzenie dotycząceCzynność:

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);
}

Z tego wynikaZajęcia nazwy klas są obfusctowane przez ProGuard, podczas gdy niektóre metody są zachowywane tak, jak są. To jest zrozumiałe.

Jednak w mojej aplikacji tworzę klasę aktywności z ciągu za pomocą

Class.forName("my.app.MyActivity")

potem zaczynam tę działalność i zaczyna się dobrze.

Ale to oznacza, że ​​klasy oparte na aktywności nie są zaciemnione?. Powinno się to nie udać, ponieważ ProGuard nie ma-keep class dyrektywa dlaActivity, ma tylko-keepclassmembers.

Czy ktoś może wyjaśnić, czy mogę polegać na zachowaniu, które obserwuję? Czy może źle rozumiem-keepclassmembers dyrektywa?

questionAnswers(2)

yourAnswerToTheQuestion