Android包4.0(好像是4.0)以后混淆更加简单

1、在project.properties.txt将以下内容注释去掉

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt


2、在proguard-project中加入取消混淆的声明:

#需要混淆的jar包所依赖的jar包

-libraryjars'F:\eclipse\adt-bundle-windows-x86-20130917\sdk\platforms\android-19\android.jar'

-optimizationpasses5

#混淆时不会产生形形色色的类名

-dontusemixedcaseclassnames

#指定不去忽略非公共的库类

-dontskipnonpubliclibraryclasses

#不预校验

-dontpreverify

-verbose

#优化

-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*

#保留了继承自Activity、Application、Service、BroadcastReceiver、ContentProvider、BackupAgentHelper、Preference和ILicensingService的子类。因为这些子类,都是可能被外部调用的。

-keeppublicclass*extendsandroid.app.Activity

-keeppublicclass*extendsandroid.app.Application

-keeppublicclass*extendsandroid.app.Service

-keeppublicclass*extendsandroid.content.BroadcastReceiver

-keeppublicclass*extendsandroid.content.ContentProvider

-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper

-keeppublicclass*extendsandroid.preference.Preference

-keeppublicclasscom.android.vending.licensing.ILicensingService

-keeppublicclass*extendsandroid.support.v4.app.FragmentActivity

-keeppublicclass*extendsandroid.support.v4.app.Fragmen

#保留了含有native方法的类

-keepclasseswithmembernamesclass*{

native<methods>;

}

#actionbarSherlock 这里要注意了

-keepclassandroid.support.v4.app.**{*;}

-keepinterfaceandroid.support.v4.app.**{*;}

-keepclasscom.actionbarsherlock.**{*;}

-keepinterfacecom.actionbarsherlock.**{*;}

-keepattributes*Annotation*

#保留构造函数从xml构造的类(一般为View的子类)

-keepclasseswithmembernamesclass*{

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

}

#保留构造函数从xml构造的类(一般为View的子类)

-keepclasseswithmembernamesclass*{

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

}

#保护指定类的成员,如果此类受到保护他们会保护的更好

-keepclassmembersclass*extendsandroid.app.Activity{

publicvoid*(android.view.View);

}

#保留枚举类型中的values和valueOf静态方法

-keepclassmembersenum*{

publicstatic**[]values();

publicstatic**valueOf(java.lang.String);

}

#保留继承Parcelable的跨进程数据类

-keepclass*implementsandroid.os.Parcelable{

publicstaticfinalandroid.os.Parcelable$Creator*;

}

#保留反射中用到的类和方法,到时根据具体情况再改

#反编译测试的时候有效,运行时也与未混淆情况一样

-keepclassmembersclass包名.**{

public*;

protected*;

private*;

}

3、工程中含有第三方jar包,或者.so文件混淆处理。

-libraryjarslibs/apns_1.0.6.jar
-libraryjarslibs/armeabi/libBaiduMapSDK_v2_3_1.so
-libraryjarslibs/armeabi/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的bin目录下生成.keystore证书,输入相关资料,记住口令。

二、右键—>AndroidTools>ExportsignedApplicationpackage


更多相关文章

  1. android setWebChromeClient和setWebViewClient的使用区别
  2. 浅析Android手机卫士关闭自动更新
  3. Android(安卓)点9图片 Can't have more than one marked region
  4. Android调用第三方库的方法
  5. Android(安卓)AutoSearchBug自动捕获异常,联网查询异常解决方法
  6. Android的生命周期中的方法的执行场景
  7. 笑谈Android之Shared Preferences
  8. Android(安卓)JNI 篇 - JNI回调的三种方法(精华篇 ndk)
  9. 启动Activity时的方法调用(应用层)(MVC模式)

随机推荐

  1. Tinker
  2. android HorizontalScrollView的简单使用
  3. ROOT android 原理。 基于(zergRush)
  4. Android-6.0之PMS安装APK上篇
  5. Android(安卓)使用自定义Dialog打造Actio
  6. Layout_weight
  7. 深入学习百度地图Android(安卓)SDK v4.0.
  8. 内存3
  9. Android(安卓)proguard.flags
  10. android 自学日记(六) ——SAX解析中换行问