Android代码混淆那些事

代码混淆的作用就不说了。这里以BaiduMapDemo作为例子说一下代码混淆:

这是这个工程大致轮廓:


(1)没有混淆apk反编译之后的情况:


具体到每个包下的情况:

        


可以看出来混淆的只是第三方的jar包,这并不是我们混淆的,而是第三方的jar包自带的混淆。

(2)那我们就开始混淆:

分两步走:

(|)   第一步:打开project.properties



原来这个文件是这样的:


看到第11行了吧,把第11行前面的#去掉。

变成了这样:


到了这里我们的却是已经混淆了。混淆的结果是这样的:


可以看到android.support.v4 被混淆(本来不应该混淆也没必要),第三方jar包混淆(本来人家自己已经混淆,然后你又进行了混淆)。

要解决上面的问题就必须自己指定那些东西混淆那些东西不去混淆,如下:

在proguard-project中添加:

-libraryjars libs/baidumapapi_v3_2_0.jar

-dontwarn com.baidu.mapapi.**
-dontwarn com.baidu.platform.**
-dontwarn com.baidu.location.**
-dontwarn com.baidu.vi.**
-dontwarn vi.com.gdi.bgl.android.**
-dontwarn com.baidu.lbsapi.**
-dontwarn com.baidu.android.**

-dontwarn android.support.v4.**

-keep class com.baidu.mapapi.** {*; }
-keep class com.baidu.platform.** {*; }
-keep class com.baidu.location.** {*; }
-keep class com.baidu.vi.** {*; }
-keep class com.baidu.lbsapi.** {*; }
-keep class vi.com.gdi.bgl.android.** {*; }
-keep class com.baidu.android.** {*; }

-keep class android.support.v4.** {*; }
-keep interface android.support.v4.app.** { *; }   
具体的含义可以参考:

http://www.cnblogs.com/sw926/p/3314165.html

注意代码混淆只是在你apk签名的时候才会执行,你在平常调试的时候是不会执行混淆的。











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值