android混淆

Android代码混淆:

混淆就是将类中的变量名,方法名,类名修改为ABC之类无意义的名称,增加反编译时的阅读难度。
首先在project.properties中将
# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

前面的#取消,然后在在proguard-project.txt中编写混淆方式。

-optimizationpasses 5

-dontusemixedcaseclassnames 【混淆时不会产生形形色色的类名 】
-dontskipnonpubliclibraryclasses 【指定不去忽略非公共的库类。 】

-dontpreverify【不预校验】

-verbose

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*【优化】

#保留行号,这样显示错误时就不会显示Unknown Source
-keepattributes SourceFile,LineNumberTable

 

-keep public class * extends android.app.Activity 

-keep public class * extends android.app.Application

-keep public class * extends android.app.Service

-keep public class * extends android.content.BroadcastReceiver

-keep public class * extends android.content.ContentProvider

-keep public class * extends android.app.backup.BackupAgentHelper

-keep public class * extends android.preference.Preference

-keep public class com.android.vending.licensing.ILicensingService

 

-keepclasseswithmembernames class * {

native <methods>;

}

-keepclasseswithmembers class * {

public <init>(android.content.Context, android.util.AttributeSet);

}

-keepclasseswithmembers class * {

public <init>(android.content.Context, android.util.AttributeSet, int);

}

-keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}

-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}
这些是基本的混淆,对android四大组件不进行混淆,枚举不进行混淆。

如果项目中有其他第三方JAR包,必须进行特殊处理。

首先第三方包大部分都有进行混淆,如果进行二次混淆调用时就会出错。

 

第三方JAR包不混淆的操作如下:

首先#所有的jar

-libraryjars libs/alipay_msp.jar 保持不混淆的JAR

-dontwarn com.alipay.android.app.** 忽略所有的jar包错误

-keep class com.alipay.android.app.**{*; } 不混淆jar包类

默认的操作就是上面的三步,但是对于某些项目的包,还要具体问题具体分析

#Android-support-v4jar类库,

-keep public class * extends android.support.v4.*

-keep public class * extends android.app.Fragment

 

#gson有关的代码不能进行混淆不然会报错:比如实体类等等

-keep class com.test.**{*;}

-keepattributes Signature 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值