Android_混淆_常用混淆(3)

1,整体分类

#-----------------------------------实体类-----------------------------------------
# TODO ADD2
#-----------------------------------第三方包-----------------------------------------
# TODO ADD3
#-----------------------------------与js交互调用的类-----------------------------------------
# TODO ADD4
#-----------------------------------反射相关的类-----------------------------------------
# TODO ADD5
#-----------------------------------Jni调用的类----------------------------------------
# TODO ADD6
#-----------------------------------基础配置-----------------------------------------
# TODO ADD7
#-----------------------------------Manifest内配置相关的量------------------------------------------
# TODO ADD8

以上分类,之后会分类的分别贴上,个人工程中使用的


2,实体类(Model类要求继承 Serializable)

1)Parcelable

#保持 Parcelable 不被混淆
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

2)Serializable

#保持 Serializable 不被混淆
-keepnames class * implements java.io.Serializable


3,第三方包(尽可能找的官方的链接)

1)OkHttp3:3.8.1

#########OkHttp3,link:https://github.com/square/okhttp
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**
-dontwarn org.conscrypt.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase

2)Fresco:1.5.0

#########Fresco,link:https://www.fresco-cn.org/docs/proguard.html
# See http://sourceforge.net/p/proguard/bugs/466/
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
-keep,allowobfuscation @interface com.facebook.soloader.DoNotOptimize
# Do not strip any method/class that is annotated with @DoNotStrip
-keep @com.facebook.common.internal.DoNotStrip class *
-keepclassmembers class * {
    @com.facebook.common.internal.DoNotStrip *;
}
# Do not strip any method/class that is annotated with @DoNotOptimize
-keep @com.facebook.soloader.DoNotOptimize class *
-keepclassmembers class * {
    @com.facebook.soloader.DoNotOptimize *;
}
# Keep native methods
-keepclassmembers class * {
    native <methods>;
}
-dontwarn okio.**
-dontwarn com.squareup.okhttp.**
-dontwarn okhttp3.**
-dontwarn javax.annotation.**
-dontwarn com.android.volley.toolbox.**
-dontwarn com.facebook.infer.**
3) org.greenrobot.eventbus:3.0.0
#########org.greenrobot:eventbus,link:http://greenrobot.org/eventbus/documentation/proguard
-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

4)glide

#########Glide
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
# for DexGuard only
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule

5)picasso:2.5.2

同 OkHttp3

6)网易云信

##########网易云信,link:http://dev.netease.im/docs/product/%E9%80%9A%E7%94%A8/NRTC/android_nrtc?kw=%E6%B7%B7%E6%B7%86&pg=1&pid=0#混淆配置
-dontwarn com.netease.**
-keep class com.netease.** {*;}

7)Pinyin4j - 2.5.0

##########Pinyin4j - 2.5.0
#jar包
-libraryjars libs/pinyin4j-2.5.0.jar
#demo
-dontwarn demo.**
-keep class demo.**{*;}
#net
-dontwarn net.sourceforge.pinyin4j.**
-keep class net.sourceforge.pinyin4j.**{*;}
-keep class net.sourceforge.pinyin4j.format.**{*;}
-keep class net.sourceforge.pinyin4j.format.exception.**{*;}

8)com.umeng.message,3.1.1

##########com.umeng.message,3.1.1,link:http://dev.umeng.com/push/android/integration#2_2_8
#引用
-dontwarn com.taobao.**
-dontwarn anet.channel.**
-dontwarn anetwork.channel.**
-dontwarn org.android.**
-dontwarn org.apache.thrift.**
-dontwarn com.xiaomi.**
-dontwarn com.huawei.**
#注解
-keepattributes *Annotation*
#第三方
-keep class com.taobao.** {*;}
-keep class org.android.** {*;}
-keep class anet.channel.** {*;}
-keep class com.umeng.** {*;}
-keep class com.xiaomi.** {*;}
-keep class com.huawei.** {*;}
-keep class org.apache.thrift.** {*;}
#参考
-keep class com.alibaba.sdk.android.**{*;}
-keep class com.ut.**{*;}
-keep class com.ta.**{*;}
#内部类
-keep public class **.R$*{
   public static final int *;
}
#(可选)避免Log打印输出
-assumenosideeffects class android.util.Log {
   public static *** v(...);
   public static *** d(...);
   public static *** i(...);
   public static *** w(...);
}

9)rxJava,1.2.1

##########rxjava1.2.1,link:https://github.com/artem-zinnatullin/RxJavaProGuardRules/blob/master/rxjava-proguard-rules/proguard-rules.txt
#隐藏
-dontwarn sun.misc.**
#成员
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
   long producerIndex;
   long consumerIndex;
}
#类成员
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode producerNode;
}
#类成员
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
    rx.internal.util.atomic.LinkedQueueNode consumerNode;
}
#忽略
-dontnote rx.internal.util.PlatformDependent

10)com.tencent.mm.opensdk,5.1.0

##########com.tencent.mm.opensdk,5.1.0,link:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN
-dontwarn com.tencent.mm.opensdk.**
-keep class com.tencent.mm.opensdk.** {*;}


7,基础配置

#压缩时:指定代码的压缩级别,值在0-7之间
-optimizationpasses 5
#优化时:不优化输入的类文件
#-dontoptimize
#混淆时:包名不混合大小写;
-dontusemixedcaseclassnames
#指定 不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
#不做预校验
-dontpreverify
#混淆时是否记录日志
-verbose
# 混淆时,所采用的算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保护给定的可选属性,例如LineNumberTable, LocalVariableTable, SourceFile, Deprecated, Synthetic, Signature, InnerClass
#不混淆泛型
-keepattributes Signature
#不混淆Annotation
-keepattributes *Annotation* 
#抛出异常时保留代码行号
-keepattributes SourceFile,LineNumberTable
#忽略警告,避免打包时某些警告出现
#-ignorewarning
#------记录生成的日志数据,build/outputs/mapping/release目录下-------
#apk 包内所有 class 的内部结构
-dump class_files.txt
#混淆前后的映射
-printmapping mapping.txt
#未混淆的类和成员
-printseeds seeds.txt
#列出从 apk 中删除的代码
-printusage unused.txt

8,Manifest内配置相关的量

#Mainfest注册的类
-keep public class * extends android.app.Application
-keep public class * extends android.app.Activity
-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.preference.Preference
-keep public class * extends android.support.v4.**
-keep public class * extends android.support.annotation.**
-keep public class * extends android.support.v7.**
#如果引用了v4或者v7包
-dontwarn android.support.**

以上的部分叠加在一起就是目前,项目添加的部分












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值