如何不混淆 class 名称但仍然获得正确的简单名称?
How to not obfuscate class names but get the right simplename anyway?
我有 20 多个从 MyFragment 扩展而来的 Fragment,例如:
LoginFragment extends MyFragment
UploadFragment extends MyFragment
CameraFragment extends MyFragment
- 等..
和 MyFragment
依次从 Fragment
延伸。因此,在我的 Android 应用程序中,每当我对其中一个应用程序进行充气时,我都会在我的抽象 class 中调用 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 个片段,如果 classes 被混淆就完全没问题了。但我仍然想获得 class' 有效的 getSimpleName()
字符串..
如何在混淆后得到一个 class 有效的 getSimpleName()
?
将以下内容添加到您的混淆器配置文件中。
-keep,allowobfuscation class * extends com.you.package.name.MyFragment
我用过
-keepnames class * extends com.you.package.name.MyFragment
解压 aar 和 classes.jar,并检查 seeds.txt 和 mapping.txt 的构建 forlder 以查看混淆
我有 20 多个从 MyFragment 扩展而来的 Fragment,例如:
LoginFragment extends MyFragment
UploadFragment extends MyFragment
CameraFragment extends MyFragment
- 等..
和 MyFragment
依次从 Fragment
延伸。因此,在我的 Android 应用程序中,每当我对其中一个应用程序进行充气时,我都会在我的抽象 class 中调用 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 个片段,如果 classes 被混淆就完全没问题了。但我仍然想获得 class' 有效的 getSimpleName()
字符串..
如何在混淆后得到一个 class 有效的 getSimpleName()
?
将以下内容添加到您的混淆器配置文件中。
-keep,allowobfuscation class * extends com.you.package.name.MyFragment
我用过
-keepnames class * extends com.you.package.name.MyFragment
解压 aar 和 classes.jar,并检查 seeds.txt 和 mapping.txt 的构建 forlder 以查看混淆