Android代码混淆需注意的事项2015-01-05 21:28:03
( 2人已投票,[高质量] )
为了加强对软件的保护,重点防御反编译,需要对代码进行混淆处理
结果是类方法名变为a b c等无意义字母
2.3以后工程会自动生成两个文件
1 Project.properties
这是一个配置文件,需要将那句注释解开放到target-10下面去
target=android-10
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
2 proguard-project.txt
这就是一个配置文件,其中配置哪些类可保持,例如extents activity的所有类不混淆
-keep 就是保持意思,还有好多的语法
对于引入的jar 或 so不可混淆,会提示找不到类,需特殊处理
下为一例proguard-project.txt内容
说明:需要添加为签名(sign)apk才能混淆
以下为其中一简单用例,希望举一返三哦
-optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontpreverify -verbose -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -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 com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclassmembernames enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; }