现在的位置: 首页 > 综合 > 正文

proguard代码混淆并通过ant进行apk打包

2014年11月19日 ⁄ 综合 ⁄ 共 2806字 ⁄ 字号 评论关闭

1:写完ant打包脚本后,并从网上找了代码混淆的代码进行混淆打包时,发现打包成功后,用手机安装后并不能正常使用,找了一天,发现还是混淆代码的问题,于是根据编译的部分提示进行修改,主要我用了两个外部包,android-support-v4.jar和fastjson-1.1.34.android.jar,故根据对其进行不不混淆打包处理,然后再对android项目中用到的接口,抽象类,泛型都进行了不混淆处理,修改完后终于可以正常打包,配置如下,供大家参考,谢谢。

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontskipnonpubliclibraryclasses
-dontpreverify
-ignorewarnings
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#泛型的处理
-keepattributes Signature
-keepattributes *Annotation*

-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
-keep public class * extends android.widget.LinearLayout

##对用到的抽象类、接口都进行不混淆处理
-keep public class com.xyou.gamestrategy.bean.Data
-keep public class * extends android.os.AsyncTask
-keep public class * extends com.xyou.gamestrategy.activity.BaseActivity
-keep public class * implements com.xyou.gamestrategy.http.HttpStack
-keep public class * implements com.xyou.gamestrategy.task.BaseTask

-keep class com.xyou.gamestrategy.** { *; }

-keep interface com.xyou.gamestrategy.** { *; }

-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-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-support-v4.jar的不混淆处理
-libraryjars libs/android-support-v4.jar
-dontwarn android.support.v4.**
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }

-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v4.app.FragmentActivity

-keepclassmembers class * extends android.app.Activity {
               public void *(android.view.View);
}
-keep public class com.xyou.gamestrategy.R$*{
                public static final int *;
}

#fastjson的不混淆处理
-libraryjars libs/fastjson-1.1.34.android.jar
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.** {*;}
-keep class com.alibaba.fastjson.annotation.** {*;}
-keep class com.alibaba.fastjson.parser.** {*;}
-keep class com.alibaba.fastjson.parser.deserializer.** {*;}
-keep class com.alibaba.fastjson.serializer.** {*;}
-keep interface com.alibaba.fastjson.util.** {*;}

网上参考:

http://blog.csdn.net/chinavfeng/article/details/7287362

http://blog.csdn.net/ma969070578/article/details/9465439

抱歉!评论已关闭.