zoukankan      html  css  js  c++  java
  • 代码混淆

    混淆的作用:

    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    : 经过压缩后被删除的没有使用的代码, 方法。。。等名称的文件列表

     
  • 相关阅读:
    Markdown引用图片,且不使用网上链接的解决方法
    测试
    sudo用户权限添加问题
    windows安装ipython
    ansible基本操作
    mysql用户权限操作
    解决windows7系统的快捷方式无法添加到任务栏
    linux下查看磁盘分区的文件系统格式
    mail客户端POP和IMAP协议
    linux设置history历史记录
  • 原文地址:https://www.cnblogs.com/acg88688/p/11870558.html
Copyright © 2011-2022 走看看