Как не запутывать имена классов, но в любом случае получить правильное симплен-имя?

У меня есть более 20 фрагментов, которые простираются от MyFragment, например:

  • LoginFragment extends MyFragment
  • UploadFragment extends MyFragment
  • CameraFragment extends MyFragment
  • так далее..

а также MyFragment в свою очередь простирается от Fragment, Так что в моем приложении для Android, и всякий раз, когда я раздуваю одно из них, я вызываю в своем абстрактном классе showFragment(MyFragment f) где я запускаю событие Adjust,

AdjustEvent event = new AdjustEvent(EVENT_LOAD_FRAGMENT);
// Add callback parameters to this parameter.
event.addCallbackParameter("LoadFragment", 
f.getClass().getSimpleName());
Adjust.trackEvent(event);

так что я могу измерить, какой фрагмент как часто используется как пара значений kay. Пока все хорошо, и на этапе отладки все работает хорошо.

Как вы можете себе представить, getClass().getSimpleName() запутывается в производственной среде. Я не хочу трогать все 20 фрагментов, и было бы хорошо, если уроки были запутаны. Но я все еще хотел бы получить класс 'действительным getSimpleName() Строка..

Как я могу получить действительные классы getSimpleName() после того как это было запутано?

1 ответ

Я использовал

-keepnames class  * extends com.you.package.name.MyFragment

распаковал aar и classes.jar и проверил forlder сборки на наличие seed.txt и mapping.txt, чтобы увидеть запутывание

Добавьте ниже в ваш конфигурационный файл proguard.

-keep,allowobfuscation class  * extends com.you.package.name.MyFragment
Другие вопросы по тегам