码迷,mamicode.com
首页 > 移动开发 > 详细

android 混淆文件proguard.cfg

时间:2014-10-09 14:44:08      阅读:492      评论:0      收藏:0      [点我收藏+]

标签:android   http   io   os   ar   java   strong   文件   sp   

1、ProGuard作用
ProGuard通过删除无用代码,将代码中类名、方法名、属性名用晦涩难懂的名称重命名从而达到代码混淆、压缩和优化的功能,跟JavaScript的混淆压缩类似。
压缩和优化使得编译后apk包更小。
混淆可以保证代码在被反编译后读懂的难度很大,防止逆向工程。这点也是我们在应用发布前需要ProGuard的一大原因。

参考资料: http://www.trinea.cn/android/proguard-use/

 

如果用eclipse export命令打包,会在<project_root>/proguard文件夹内。其中包含以下文件:

mapping.txt表示混淆前后代码的对照表,这个文件非常重要。如果你的代码混淆后会产生bug的话,log提示中是混淆后的代码,希望定位到源代码的话就可以根据mapping.txt反推。
dump.txt描述apk内所有class文件的内部结构
seeds.txt列出了没有被混淆的类和成员
usage.txt列出了源代码中被删除在apk中不存在的代码

 

 

 

 

-optimizationpasses 5
-dontusemixedcaseclassnames    【混淆时不会产生形形色色的类名 】
-dontskipnonpubliclibraryclasses  【指定不去忽略非公共的库类。 】
-dontskipnonpubliclibraryclassmembers
-dontpreverify  【不预校验】
-verbose
-dontoptimize
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  【优化】
-ignorewarnings

 

-dontwarn android.support.v4.**

 

-libraryjars libs/gson-2.2.4.jar

 

-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 class * implements java.io.Serializable.** {*;}   // 这个和下面某个类似,查下有什么不同

-keep class com.sina.weibo.**{*;}
-keep interface com.sina.weibo.**{*;}

 

-keepattributes *Annotation*,*Exceptions*,Signature

-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {*;}

 

public protected <methods>;  【所有方法不进行混淆】
}
-keep public class com.asqw.android{
public void Start(java.lang.String); 【对该方法不进行混淆】
}

-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 混淆文件proguard.cfg

标签:android   http   io   os   ar   java   strong   文件   sp   

原文地址:http://www.cnblogs.com/zhiqixue/p/4013210.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!