小工具知识网

当前位置: 首页 > 行业知识 > Android Proguard混淆

行业知识

Android Proguard混淆

2026-11-10 02:37:43 来源:互联网转载

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。

专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、概览
  • 三、语法规则
    • 3.1 输入/输出选项
    • 3.2 保留选项
    • 3.3 缩小选项
    • 3.4 优化选项
    • 3.5 混淆选项
    • 3.6 预验证选项
    • 3.7 常规选项
    • 四、过滤器
      • 4.1 增量混淆
      • 4.2 寻找未使用的代码及方法等(废弃代码)
      • 五、混淆基本原则
        • 5.1 系统相关类不要混淆
        • 5.2 部分项目相关类不要混淆
        • 5.3、添加混淆字典
        • 5.4 r8 & proguard
        • 六、 推荐阅读

          一、导读

          我们继续总结学习基础知识,温故知新。

          本文讲述Android Proguard 相关知识。

          二、概览

          Proguard 四部曲:

          shrink(删减):删减无用代码,包括类、变量、方法和属性,缩减了APK包的大小

          optimize(优化):优化方法字节码,并移除无用的构造方法

          obfuscate(混淆):混淆现有代码,将有意义的命名替换为无意义的命名

          preverify(预校验):给类添加预校验信息,这是J2ME和Java 6及以上要求的

          proguard 文档

          三、语法规则

          3.1 输入/输出选项

           @ filename

          “文件名”的缩写 ‘-include filename’.

           -include filename

          从给定文件filename递归读取配置选项

           -basedirectory directoryname

          指定这些配置参数或此配置文件中所有后续相对文件名的基目录

           -injars class_path

          指定要处理的应用程序的输入 jar(或 apks、aabs、aars、wars、ears、jmods、zip 或目录)。

          可以使用多个-injars选项指定类路径条目。

          -outjars class_path

          指定输出 jar 的名称(或 apks、aabs、aars、wars、ears、jmods、zips 或目录)。

          为了更好的可读性,可以使用多个-outjars选项指定类路径条目。如果没有任何-outjars选项,则不会编写任何 jars

          -libraryjars class_path

          指定要处理的应用程序的库 jar(或 apks、aabs、aars、wars、ears、jmods、zips、目录)

          -skipnonpubliclibraryclasses

          指定在读取库 jar 时跳过非公共类,以加快处理速度并减少 ProGuard 的内存使用量

          -dontskipnonpubliclibraryclasses

          指定不忽略非公共库类。从版本 4.5 开始,这是默认设置

          -dontskipnonpubliclibraryclassmembers

          指定不忽略包可见的库类成员(字段和方法)

          -keepdirectories [directory_filter]

          指定要保留在输出 jar 中的目录(或 apks、aabs、aars、wars、ears、jmods、zips 或目录)

          -target version

          已弃用:此选项仅适用于 Java 类文件版本

上一篇:宝塔面板怎么设置商城?

下一篇:git怎么挂服务器?