我的情况是我有一个实例变量TAG
,它只是我使用方法MainActivity.class.getsimpleName()
获取的类名。
EG。 public static final String TAG=MainActivity.class.getsimpleName();
我正在使用此TAG
变量进行谷歌分析跟踪。事实上因为pro guard
我的变量是obfuscated
而我得到一些无用的字符串作为我的跟踪类名,因此分析是不可能的,我有100个类的类硬编码每个类的所有TAG
变量(我将作为我的最后手段)。
我还想混淆代码以保持我的应用程序的安全性。有没有办法我只能排除TAG
变量被混淆或以任何方式让我的分析有意义。
我如何才能有效地解决这个问题?
答案 0 :(得分:3)
public static final String TAG = "MainActivity";
如果您想更改TAG
的值,请让AndroidStudio为您重构。
这是TAG
未被混淆的唯一可能性。这是您的TAG
所有者,会被混淆。
如果我是对的,你的活动对此很好(因为AndroidManifest需要确切的语法)。但你的碎片是。重构的价值仍然较低。
尝试使用正则表达式替换所有AndroidStudio功能,以节省您的时间,例如:
查找:TAG = (.+).class.getSimpleName\(\);
替换:TAG = "$1";
答案 1 :(得分:0)
作为一个缺点,这样的解决方案在很大程度上抵消了大小/混淆改进,因为代码现在再次包含原始类名,尽管是间接的。