- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
据我所见所闻,如果有人真的想对您的软件进行逆向工程或反编译,ProGuard 不会阻止他们。但这至少是一种适度的威慑吗?我不确定稍后翻译我的堆栈跟踪是否值得。
最佳答案
我会推荐 ProGuard。即使没有混淆(这可以显着缩短常量池中使用的名称),它也可以删除使用过的库等的“死代码”(未使用的方法)(它也可以用于方便地将所有内容合并在一起)。
“正确”需要一些小技巧,尤其是。如果有动态加载的类——但非常推荐。然而,节省空间的实际好处“取决于”可以消除的内容,并且通常随着更多的外部库而增加。
现在,对于混淆 - 它与任何混淆器一样多:使“反编译”代码成为具有有意义名称的东西是不可能的。
混淆不会保存您的 super secret 算法或隐藏您的私钥,但是:如果 JVM(或转换后的 Dalvik)必须理解它,那么反编译器和任何真正 想获取访问权限即可。您的代码甚至可以以字节码形式提取并通过简单地使用。反射(想象一下一个零文档的可怕 API):任何真正想要访问的人都可以。但也许混淆会使这项任务在成本/支出方面变得不可行:“这取决于”。
不想翻译堆栈跟踪?很简单:不要将其用于调试(对于从用户那里获取踪迹没有那么有用)或不要启用混淆(其他好处仍然适用);-)
快乐编码。
关于android - 使用 ProGuard 值得这么麻烦吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5628077/
我正在生成代码,其中我恰好将 n 个单词从一个内存位置复制到另一个非重叠内存位置。 n 是静态已知的。 目前,我发出大量加载指令,然后是大量存储指令,但我怀疑从 n 的某个值开始,调用 memcpy会
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
用例如下: 我有一张 map ,其中将插入一些键/值。 该程序将查询该 map ,但是在第一个查询之后,我可以保证该 map 将完全不会被修改。 因为查询的结果完全是输入的函数,所以在查询方法上放置属
Helo 伙计们,我尝试使用 Refs 并在他的内部提供 this.setState 但它给出: Maximum update depth exceeded. This can happen when
在检查事件时,使用带有 switch 或 if 的代码块是很常见的事情。如果变得简单,它可以是干净的代码,但似乎仍然有比需要更多的行,并且可以使用 lambda 进行简化。 用 if 阻止: if(a
Amazon 最近宣布在其 RDS 产品线中支持 Oracle: http://aws.amazon.com/rds/oracle/ 我想知道是否有人使用过它,或者是否有令人信服的理由将我的数据从 M
我是一名优秀的程序员,十分优秀!