如何不混淆类名,但无论如何都能得到正确的simplename



我有20多个从MyFragment扩展而来的片段,例如:

  • LoginFragment extends MyFragment
  • UploadFragment extends MyFragment
  • CameraFragment extends MyFragment
  • 等等

和CCD_ 4依次从CCD_。因此,在我的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()

我使用

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

解压缩aar和classes.jar,并检查seeds.txt和mapping.txt的build-folder以查看混淆

将以下内容添加到您的proguard配置文件中。

-keep,allowobfuscation class  * extends com.you.package.name.MyFragment

相关内容

最新更新