• 代码混淆


    混淆的作用:

    1. 【优化】 他可以优化java的字节码,使程序运行更快
    2. 【压缩】 减少App大小,在混淆过程中会找出未被使用过的类和类成员并删除它们
    3. 【混淆】使我们的java代码中的类、函数、变量名随机变成无意义的代号形如:a, b ,c之类的

    混淆配置文件:proguard-rules.pro

    混淆规则:

    -keepattributes {name}  保护给定的属性不被混淆,
      如:-keepattributes *Annotation*


    -dontwarn {name}  不要警告指定库中找不到的引用。混淆在默认情况下会检查每个库的引用是否正确,但是有些第三方库里面会有用不到的类,有些没有正确引用,所以需要对第三方库取消警告 否则会报错,而且有可能混淆时间会很长。
      如:-dontwarn org.codehaus.jackson.**


    -keep {Modifier} {class_specification}  保留指定的类名、类成员不被混淆


    -keepclassmembers {modifier} {class_specification}   保留指定的类成员不被混淆


    -keepclasseswithmembers {class_specification}   保留指定的类名、类成员不被混淆


    -keepnames {class_specification}   保留指定的类名、类成员的名称不被混淆


    -keepclasseswithmembernames {class_specification}   保留指定的类名、类成员名称不被混淆(如果存在的话)

    -keepattributes SourceFile, LineNumberTable                    crash日志里面保留类名称 和 行号

    混淆成功后:

    dump.txt : 混淆后类的内部结构说明

    mapping.txt : 混淆前与混淆后名称对应关系

    seeds.txt    :  经过一系列keep语句的保持,没有被混淆的类,成员的名称列表文件

    usage.txt    : 经过压缩后被删除的没有使用的代码, 方法。。。等名称的文件列表

     
  • 相关阅读:
    文件权限命令
    复制、移动文件及目录命令
    创建、删除文件及目录命令
    绝对路径和相对路径
    查找文件命令
    链接命令
    文本搜索命令
    编辑器 vim
    有参装饰器与迭代器
    闭包函数与装饰器
  • 原文地址:https://www.cnblogs.com/acg88688/p/11870558.html
Copyright © 2020-2023  润新知