返回介绍

7.2 ProGuard 工作原理

发布于 2024-08-17 23:46:12 字数 520 浏览 0 评论 0 收藏 0

ProGuard由shrink、optimize、obfuscate和preverify四个步骤组成,其中每个步骤都是可选的,我们可以通过配置脚本来决定执行其中的哪几个步骤,如图7-1所示。

图7-1 ProGuard执行流程

这里,我们引入Entry Point的概念。Entry Point是在ProGuard过程中不会被处理的类或方法。在压缩的步骤中,ProGuard会从上述的EntryPoint开始递归遍历,搜索哪些类和类的成员在使用。对于没有被使用的类和类的成员,就会在压缩阶段丢弃。

接下来在优化的步骤中,那些非EntryPoint的类、方法都会被设置为private、static或final,不使用的参数会被移除,此外,有些方法会被标记为内联的。在混淆的步骤中,ProGuard会对非EntryPoint的类和方法进行重命名。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文