Android混淆详解

本文详细介绍了Android的混淆配置,包括在gradle文件中设置minifyEnabled为true,以及ProGuard的压缩、优化和混淆三大作用。混淆后的重要文件mapping.txt用于反推源代码。文章还讲解了如何保持特定类、内部类、方法不被混淆,提供了各种混淆规则的示例,并强调了混淆时需要注意的事项,如JNI方法、反射、AndroidManifest中的类、与服务端交互的类等不应混淆。
摘要由CSDN通过智能技术生成

Android混淆

基本配置

在工程应用目录的gradle文件中设置minifyEnabled为true即可。然后就可以到proguard-rules.pro文件中加入我们的混淆规则了,代码如下:

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

以上示例代码表示对release版本就行混淆处理。

下面先来简介下ProGuard的三大作用,并简要说明下它们常用的命令。

ProGuard作用

  • 压缩(Shrinking):默认开启,用以减小应用体积,移除未被使用的类和成员,并且会在优化动作执行之后再次执行(因为优化后可能会再次暴露一些未被使用的类和成员)。

    -dontshrink 关闭压缩
  • 优化(Optimization):默认开启,在字节码级别执行优化,让应用运行的更快。

    -dontoptimize  关闭优化
    -optimizationpasses n 表示proguard对代码进行迭代优化的次数,Android一般为5
  • 混淆(Obfuscation):默认开启,增大反编译难度,类和类成员会被随机命名,除非用keep保护。
  • -dontobfuscate  关闭混淆

    混淆后默认会在工程目录app/build/outputs/mapping/release下生成一个mapping.txt文件,这就是混淆规

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值