ProGuard по-прежнему отображает полное название активности

Я использую Proguard и в своем приложении использую этот код

            System.out.println("ACTIVITY NAME IS " + activity.getLocalClassName());

Он выводит имя действия в режиме выпуска. Я думал, что предполагается запутать все имена классов?

Это нормальное поведение?


person JayVDiyk    schedule 12.04.2016    source источник
comment
В чем твоя проблема?   -  person Nguyễn Trung Hiếu    schedule 12.04.2016
comment
Возможный дубликат Почему Proguard сохраняет класс Activity в Android?   -  person George Mulligan    schedule 12.04.2016


Ответы (1)


Да это нормальное поведение. Имена действий никогда не запутываются, поскольку на них есть ссылки в manifest.xml. и Android получают доступ к этим действиям через отражение, поэтому их имена нельзя изменить. проверьте эту ссылку https://stackoverflow.com/a/20620108/1320616

person Ankit Aggarwal    schedule 12.04.2016
comment
О, спасибо, есть ли способ проверить, был ли код успешно запутан? - person JayVDiyk; 12.04.2016
comment
Я использую для проверки это с помощью онлайн-декомпиляторов, таких как decompileandroid.com, загружаю туда apk и получаю обратно декомпилированную папку. Там можно проверить, обфусцирован код или нет. - person Ankit Aggarwal; 12.04.2016
comment
Вы также можете использовать опцию «Анализ APK» в Android Studio, чтобы узнать, можете ли вы увидеть свой код после создания apk. - person Atmaram; 31.10.2017