Android 代码混淆后有什么用

1.在Eclipse中新建HelloWorld的Android工程,里面只有MainActivity.java和UserBean.java。因为MainActivity是启动类,是不能被混淆的。我将演示下如何将UserBean混淆掉。

Android 代码混淆后有什么用_第1张图片

Android 代码混淆后有什么用_第2张图片

2.然后开始混淆,这步略,想知道怎么混淆,请看 Android如何代码混淆

3.混淆完后,开始用dex2jar反编译,用jd-gui查看源代码

Android 代码混淆后有什么用_第3张图片

Android 代码混淆后有什么用_第4张图片

可以看到UserBean被混淆掉了,查看Eclipse在工程的根目录下面生成了一个progurad的文件夹。打开这个文件夹可以看到4个文件。其中有一个是“mapping.txt”,这里面列出了混淆前后的对应关系。可以看到我们的UserBean被混淆成了a,里面的成员变量id被混淆成了a,name被混淆成了b。在MainActivity中也能看出来。同时,proguard还把方法调用优化成了直接引用成员变量。

Android 代码混淆后有什么用_第5张图片

这只是一个简单的例子,所以看上去还没觉的很混乱。

对源码做混淆是一种非常常用的保护源码的方式,不仅如此,proguard还会对源码做一些优化、字节码进行缩减体积等


你可能感兴趣的:(android,ProGuard,混淆)