• as 开启代码混淆和自定义混淆规则


    app的builde.gradle的文件下,buildTypes节点添加release节点,minifyEnabled属性表示是否开启混淆,proguardFiles表示混淆依赖的文件,具体开启方法如下:

    buildTypes {
            release {
                minifyEnabled true //开启混淆
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//指定混淆配置文件为 proguard-rules.pro
    } }

      

    混淆配置:

    #官方的一些配置就不在这里说明了,这里只说下自定义混淆的简单配置方法,通过自定义注解类,保持所有被注解的类名、方法、变量不被混淆掉
    -keep class proguard.conf.MyKeep#自定义注解类不能混淆
    通过注解控制混淆,需要注意以下几点:
    1.如果整个类都需要保留,则在类上面增加注解,混淆配置为
    -keep @proguard.conf.MyKeep class *{*;}#包含类名
    -keepclassmembers @proguard.conf.MyKeep class *{*;}#不包含类名
    2.如果是类的全部成员变量都需要保留,在类上面增加注解,混淆配置为
    -keepclasseswithmembers @proguard.conf.MyKeep class *{<fields>;}#包含类名
    -keepclassmembers @proguard.conf.MyKeep class *{<fields>;}#不包含类名
    3.如果是类的全部方法都需要保留,在类上面增加注解,混淆配置为
    -keepclasseswithmembers @proguard.conf.MyKeep class *{<methods>;}#包含类名
    -keepclassmembers @proguard.conf.MyKeep class *{<methods>;}#不包含类名
    4.如果是类中的某个变量需要保留,在需要保留的变量上面增加注解,混淆配置为
    -keepclasseswithmembers class *{
    @proguard.conf.MyKeep <fields>;
    }#包含类名
    -keepclassmembers class *{
    @proguard.conf.MyKeep <fields>;
    }#不包含类名
    5.如果是勒种的某个方法需要保留,在需要保留的方法上面增加注解,混淆配置为
    -keepclasseswithmembers class *{
    @proguard.conf.MyKeep <methods>;
    }#包含类名
    -keepclassmembers class *{
    @proguard.conf.MyKeep <methods>;
    }#不包含类名

     关于其他的一些混淆,网上有很多参考资料,基本上都是基于保留  继承于某个类  或者实现了某个接口  的方式进行的保留,这边就不记载了,有需要网上再找吧

  • 相关阅读:
    [翻译]关于堆和堆栈
    sql 字符+数值 混合排序 lcs
    证明DataReader分页的可行性 lcs
    谈谈我对小公司、大公司及个人成长的见解 lcs
    sina 通用js代码说明 lcs
    Linux系统下生成证书 https证书
    【转】51单片机外部中断的C51编程
    【转】如何建立个人网站
    【转】关于C51的中断编程[原创]
    【转】毫不费力:破解加密PDF文档就使用这两三招
  • 原文地址:https://www.cnblogs.com/fengchuxiaodai/p/6888203.html
Copyright © 2020-2023  润新知