安卓包4.0 (好像是4.0 )以后容易混淆,所以更简单
1、在project.properties.txt中删除以下评论
proguard.config=$ { SDK.dir }/tools/proguard/proguard-Android.txt : proguard-project.txt
2、在项目中加入消除混乱的声明:
#需要混淆的jar包所依赖的jar包
- library jars ' f :eclipseADT-bundle-windows-x86-2013 09 17SDKplatformsAndroid-19 Android .
-优化过程5
#即使混淆,也不会生成各种类名
-dontusemixedcaseclassnames
#指定不忽略非公共库类
- dontskipnonpubliclibraryclasses
#不预先检查
-dontpreverify
-verbose
#优化
-优化! code/simplification/arithmetic! field/*, class/merging/*
从Activity、Application、Service、BroadcastReceiver、ContentProvider、BackupAgentHelper、Preference、ILicensingService继承
- 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.broadcast receiver
- keep public class * extends Android.content.content provider
- keep public class * extends Android.app.backup.backupagenthelper
- keep public class * extends Android.preference.preference
- keeppublicclasscom.Android.vending.licensing.ilicensingservice
- keep public class * extends Android.support.v4.app.fragment activity
- keep public class * extends Android.support.v4.app.frag men
保留包含native方法的类
- keepclasseswithmembernamesclass * {
空;
}
#actionbarSherlock这里请注意
- keepclassandroid.support.v4.app.* * { *; }
- keepinterfaceandroid.support.v4.app.* * { *; }
- keepclasscom.actionbarsherlock.* * { *; }
- keepinterfacecom.actionbarsherlock.* * { *; }
-keepattributes*Annotation*
#构造函数保存从xml构建的类。 一般是View的子类)
- keepclasseswithmembernamesclass * {
公共(Android.content.context,android.util.AttributeSet );
}
#构造函数保存从xml构建的类。 一般是View的子类)
- keepclasseswithmembernamesclass * {
Public(Android.content.context,android.util.AttributeSet,int );
}
#保护指定类的成员。 如果这样的类受到保护,他们会得到更好的保护
- keepclassmembersclass * extends Android.app.activity {
Ublicvoid*(Android.view.view );
}
#保留枚举类型的values和valueOf的静态方法
-keepclassmembersenum*{
publicstatic**[]values (;
public static * * value of (Java.lang.string );
}
保存继承Parcelable的交叉进程数据类
- keep class * implements Android.OS.parcelable {
publicstaticfinalandroid.OS.parcelable $ creator *;
}
#保留用于反射的类别和方法,届时根据情况进行变更
#逆编译测试时有效,运行时也与没有混淆的情况相同
-keepclassmembersclass包名称. **{
公共*;
受保护*;
私有*;
}
3、施工中混淆处理第三方jar包或. so文件。
- libraryjarslibs/apns _1.0.6. jar
- libraryjarslibs/arme ABI/libbaidumapsdk _ v2 _3_1. so
- libraryjarslibs/arme ABI/liblocsdk4. so
- libraryjarslibs/baidumapapi _ v2 _3_1. jar
-libraryjarslibs/core.jar
- libraryjarslibs/gesture-imageview.jar
-libraryjarslibs/gson-2.0.jar
4、在其他反射中调用的java类和方法
使用反射时,请注意,您可能会确定没有调用proguard,并在代码优化过程中将其重命名或删除。 使用反射的位置必须由proguard-project.txt组成,并且不要优化调用反射的类和方法
开始打包。 (请不要打包。 就算设置了其实也没有混淆。 如果你不相信,试着消除混淆。 成功消除了混淆。 )
二、请在jdk的悟空目录下生成. keystore证书,输入相关资料,记住密码。
二.右键—安卓工具—exportsignedapplicationpackage