Я пытаюсь обернуть голову вокруг этого, но я просто не понимаю, почему это происходит: согласно файлу proguard.cfg по умолчанию я определяю следующее правило:
-keep public class * extends android.app.Activity
Насколько я понимаю, это означает: сохраняйте любой класс Activity
в качестве точки входа, но не стесняйтесь сжимать / запутывать / оптимизировать все, что находится внутри него (в противном случае я должен был бы использовать, например, подстановочный знак <methods>
для методы сохранения тоже не так ли?).
Теперь моя тестовая активность выглядит так:
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
...
}
public void unusedMethod() {
}
}
Если я теперь экспортирую подписанный APK и вызову ProGuard, он удалит unusedMethod
, как и ожидалось, но сохранит метод onCreate
и не будет скрывать его имя. Почему это?