数控解锁数控解密在这里,我们可以思考一个问题:如果apk构建过程中,没有任何keep规则,那么代码会不会全部被裁剪掉?答案是肯定的,*终apk中不会有任何代码。可能有同学会说,我用Android Studio新建一个app工程,开启了Proguard但是没有配置任何keep规则,为什么*终apk中会包含一些代码?这个是由于Android Gradle Plugin在构建apk过程中,会自动生成一些混淆规则,关于所有keep规则的来源问题,在后面的章节会讲到。
好了,继续回到keep配置上来。keep配置支持的规则非常复杂,在这里将其分为以下几类:
1、直接保留类、方法、变量;
-keep。被保留类、方法、变量,不允许shrink(裁剪),不允许obfuscate(混淆);
2、如果类被保留(未裁剪掉),则保留指定的变量、方法;
3、如果方法/变量,均满足指定条件,则保留对应类、变量、方法;
完整keep规则格式如下,感受下复杂度:
# 此外,不同位置均支持不同程度的通配符,不详述.
在实际工作中,一般不会用到非常复杂的keep规则,所以完整用法不必刻意学习,遇到时能够通过查文档看懂即可。举一个比较有意思的例子,来结束本小节。
这里要讲的辅助文件,是指progaurd生成的一些文件,用于了解处理结果,对排查裁剪、混淆相关问题很有帮忙(必要)。
配置项集合,汇总了所有配置信息,并对某些配置进行“展开”。由于配置项可以在多个文件、多个工程中定义(后面会讲到所有来源),因此配置项集合方便我们对此集中查看。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。