我在当前的项目中使用ProGuard,并决定尝试优化的安卓配置(使用gradle):
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'我没有找到任何关于proguard和android版本所执行的与它们兼容的优化的清晰文档:
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/* 如果app min版本是11,它们是最新的吗?
所以我决定重写它,让它在proguard-rules.pro中试一试
-optimizations **
-printconfiguration "result.pro"但最终的配置并不像我预期的那样。它包含所有合并的规则:
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*,**那么,如何在ProGuard中正确地重写选项呢?或者这一行可能等于-optimizations **?
发布于 2017-01-27 01:50:55
我试了一下,但最终还是发现了。要覆盖默认的ProGuard优化,例如,应用除code/simplification/arithmetic之外的所有内容:
-optimizations行添加到ProGuard文件中,并使用*表示所有内容。例如,下面一行:
-optimizations!代码/简化/算术,*
意思是“启用除code/simplification/arithmetic之外的所有优化”。可用优化列表在官方网站中可用,您可以使用*来启用/禁用优化类(例如,!field/*)。proguard-rules.pro和getDefaultProguardFile('proguard-android.txt')的顺序,以便proguard-rules.pro首先出现:
getDefaultProguardFile('proguard-android.txt') { buildTypes { minifyEnabled false proguardFiles‘pro卫士规则’,buildTypes}输出现在应该如下所示:
Optimizing...
Number of finalized classes: 68
Number of unboxed enum classes: 1
Number of vertically merged classes: 0
Number of horizontally merged classes: 3
Number of removed write-only fields: 0 (disabled)
Number of privatized fields: 58
Number of inlined constant fields: 375
Number of privatized methods: 13
Number of staticized methods: 37
Number of finalized methods: 210
Number of removed method parameters: 290
Number of inlined constant parameters: 236
Number of inlined constant return values: 239
Number of inlined short method calls: 35
Number of inlined unique method calls: 114
Number of inlined tail recursion calls: 0
Number of merged code blocks: 4
Number of variable peephole optimizations: 723
Number of arithmetic peephole optimizations: 10
Number of cast peephole optimizations: 0
Number of field peephole optimizations: 0
Number of branch peephole optimizations: 42
Number of string peephole optimizations: 35
Number of simplified instructions: 369
Number of removed instructions: 5019
Number of removed local variables: 154
Number of removed exception blocks: 0
Number of optimized local variable frames: 201https://stackoverflow.com/questions/29643847
复制相似问题