我已经混淆了我的应用程序很长一段时间了,用下面的设置像咒语一样,因为它们是谷歌的推荐
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*然而,有一天,我错误地评论了这一行,应用程序被正确构建,而且“显然”起作用了。我做了很多测试,但没能让它崩溃。
所以我想知道是否需要那些禁用的优化设置..。
proguard.cfg,指示要保留相关的问题类,等等。这里涉及到这个问题的大多数答案都有相互冲突的信息,并且与相当老的API版本有关。
逐个:
!代码/简化/算术
我在谷歌集团上发现了一个讨论,他们说在安卓甜甜圈之后,SDK不需要simplification/arithmethic。那么,我可以安全地启用这个优化。
类别/合并/*
在启动了这个优化之后,它看起来在我的项目中做得很好:
[proguard] Number of vertically merged classes: 296
[proguard] Number of horizontally merged classes: 445除了堆栈跟踪不正确之外,还有其他副作用吗?我的意思是,与应用程序崩溃相关的副作用,而不是调试问题。我找到了这个相关的问题,但它不能断定它是否安全。
字段/*和代码/简化/转换
我读到在这个问题上的作者回答说,这些都是为了避免早期版本的bug。那么在ProStere5.1上激活它们安全吗?
发布于 2015-10-02 08:46:25
一般建议:不能保证优化不起作用,但总是有风险的。默认的Android程序保护设置所要做的是提供一种将风险降到最低的配置,因此它们对于您的特定情况显得如此保守。
启用这些优化只是意味着,如果某些东西崩溃了,您就不能像对根本原因那样确定。一般说来,对于输出相对于输入而言,这个步骤没有那么有力的保证,这是程序中不确定的一个来源。代码中的小变化可能会导致运行时行为发生显著不同的变化,并且在实际运行程序之前是不可能知道的,这取决于您的配置。
总之,如果您可以运行您的APK,并且所有这些都可以工作-那么很好,优化对您来说是有效的。但是,他们不能保证。
https://stackoverflow.com/questions/26942430
复制相似问题