ProGuard会根据Entry Points来确定哪些代码会被保留、移除、混淆,而Entry Points的来源是我们的配置文件。

  • 在压缩阶段,ProGuard会递归遍历上述的Entry Points,查询出哪些类和成员在使用,并且移除未被使用的类和成员。

  • 在优化阶段,ProGuard进一步优化代码,不在Entry Points中的类和方法会被设置为private、static或final,未使用的参数会被移除,一些方法会被内联。

  • 在混淆阶段,不在Entry Points中的类和成员变量会被重命名,这个过程会确保Entry Points中的类和方法 可以使用以前的名字被访问,即Entry Points中的类和方法不会被混淆,名字保持原来一致。

  • 在预检验中不需要关心Entry Points。

    最后我们需要知道,ProGuard不会混淆native代码、drawable、xml。

results matching ""

    No results matching ""