Android轻松实现代码混淆

1、简介

代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。

混淆的目的是为了加大反编译的成本,但是并不能彻底防止反编译。

2、如何开启混淆

通常我们需要找到项目路径下app目录下的build.gradle文件,找到minifyEnabled这个配置,然后设置为true即可,如下:

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

3、proguard又是什么呢

这是java官网给出的定义:

ProGuard is a free Java Class file shrinker, optimizer, obfuscator, and preverifier. It detects and removes unused classes, fields, methods, and attributes. It optimizes bytecode and removes unused instructions. It renames the remaining classes, fields, and methods using short meaningless names. Finally, it preverifies the processed code for Java 6 or higher, or for Java Micro Edition.

作用:

  1. proguard是一个集文件压缩,优化,混淆校验等功能的工具
  2. 检测并删除无用的类,变量,方法和属性
  3. 优化字节码并删除无用的指令
  4. 通过将类名,变量名和方法名重命名为无意义的名称实现混淆效果
  5. 还校验处理后的代码

4、常见语句

-optimizationpasses 5

代码混淆压缩笔记,在0~7之间

-dontusemixedcaseclassnames

混淆后类名都小写

-dontskipnonpubliclibraryclasses

不去忽略非公共的库的类

-dontskipnonpubliclibraryclassmembers

不去忽略非公共的库的类的成员

-dontpreverify

不做预校验的操作

-verbose
-printmapping proguardMapping.txt

生成原类名和混淆后的类名的映射文件

-optimizations !code/simplification/cast,!field/*,!class/merging/*

指定混淆时采用的算法

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值