我有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