首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免在android中混淆单个实例变量

避免在android中混淆单个实例变量
EN

Stack Overflow用户
提问于 2016-07-27 22:04:47
回答 2查看 437关注 0票数 2

在这种情况下,我有一个实例变量TAG,它只是我使用MainActivity.class.getsimpleName()方法获取的类名。

例如:public static final String TAG=MainActivity.class.getsimpleName();

我正在使用这个TAG变量来跟踪我的谷歌分析。事实上,由于pro guard,我的变量是obfuscated,我得到了一些无用的字符串作为我的类名来跟踪,因此分析是不可能的,我有100个类来硬编码每个类的所有TAG变量(我将作为我最后的手段)。

我还想对代码进行混淆,以维护我的应用程序的一些安全性。有没有办法让TAG变量不被混淆,或者有什么办法让我的分析更有意义。

我怎样才能有效地解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2016-07-27 22:30:00

public static final String TAG = "MainActivity";

如果您想要更改TAG的值,让AndroidStudio为您重构它。

这是唯一的可能性,因为TAG没有被混淆。这是被混淆的TAG所有者。

如果我是对的,那么您的活动对此没有问题(因为AndroidManifest需要精确的语法)。但你的碎片是。这对于重构来说仍然没有什么价值。

尝试使用regex AndroidStudio函数来节省您的时间,如下所示:

查找:TAG = (.+).class.getSimpleName\(\); replace :TAG = "$1";

票数 3
EN

Stack Overflow用户

发布于 2016-07-28 16:22:50

作为一个缺点,这样的解决方案在很大程度上取消了大小/混淆的改进,因为代码现在再次包含原始的类名,尽管是间接的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38615254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档