android 代码混淆

        android对app进行代码混淆

    自2.3版本后,新生成的项目中,没有proguard。cfg文件,只有proguard-

project.text,功能一样。

    如果要求不是太高我们可以启用系统定义的混淆器。

    在项目根目录下的project.properties文件中把

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

前面的#去掉,在project.properties文件中#表示注释。这个混淆器在我们的sdk中的相应目录

下。

    如果系统的混淆器不足以满足自己需求,可以自定义自己的混淆器。你可以把混淆器文件

放到任意的位置,并指定它的绝对路径。proguard.config=/path/to/proguard.cfg。

 混淆器大致api作用    

 

-libraryjars libs/gdx.jar 第三方jar包
-optimizationpasses 5   优化代码的次数,可以设置大于5的数,因为当到了代码不能优化的时候会自动停止。
-dontusemixedcaseclassnames//混淆时不会产生形形色色的类名     Aa aA 
-dontskipnonpubliclibraryclasses//如果应用程序引入的有jar包,并且想混淆jar包里面的class    
-dontpreverify//不预校验   
-verbose   //混淆后生产映射文件 map 类名->转化后类名的映射
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*//混淆采用的算法. 
-dontoptimize// 不使用优化方案
-keepattributes Signature-dontskipnonpubliclibraryclassmembers-dontskipnonpubliclibraryclasses //保留签名,解决泛型问题
-dontwarn android.support.v4.**// 这里不对v4的jar包的提出WARN 
-keepattributes *Annotation* //会保留Activity的被@Override注释的方法onCreate、onDestroy方法

//不进行混淆保持原样   
-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 class com.badlogic.** {
*;
}  
//保护指定的类和类的成员的名称,如果所有指定的类成员出席   
-keepclasseswithmembernames class * {   
    native <methods>;   
}  
// 所有方法不进行混淆
-keep public abstract interface com.asqw.android.Listener{
public protected <methods>; 
}
//保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在   
-keepclasseswithmembers class * {   
    public <init>(android.content.Context, android.util.AttributeSet);   
}  
//对该方法不进行混淆 
-keep public class com.asqw.android{
public void Start(java.lang.String);
}  
   
-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 *;   
}

    


    

    

转载于:https://my.oschina.net/shenwenze/blog/657321

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值