Android Studio代码混淆-第三方jar混淆汇总(持续更新)
2017-08-16 20:06
357 查看
前言
Android有非常多的优秀的第三方开源jar包,我们经常在我们的项目中使用了不少jar包,但是往往到了release的时候就忘了混淆第三方jar包了,会给我们开发带来不少麻烦,所有在这里汇总一下一些比较热门的第三方jar包的混淆方式,方便大家开发。本篇文章会持续更新,如果你有其它jar包的混淆使用方式也可以告知我,以便可以更好的为大家提供一份较为完整实例。本博客同步发布于 XueLong的博客
常用第三方开源jar包
排名不分先后(按首字母顺序排列)Android-gif-drawable 链接
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int);} -keep class pl.droidsonroids.gif.GifInfoHandle{<init>(long,int,int,int);}
Android-Universal-Image-Loader 链接
#Universal Image Loader -keep class com.nostra13.universalimageloader.** { *; } -keepattributes Signature
ButterKnife 链接
-keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keep class **$$ViewInjector -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; }
Bugly 链接
-keep public class com.tencent.bugly.**{*;}
EventBus 链接
-keepclassmembers class ** { public void onEvent*(***); } # Only required if you use AsyncExecutor -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent { public <init>(java.lang.Throwable); } # Don't warn for missing support classes -dontwarn de.greenrobot.event.util.*$Support -dontwarn de.greenrobot.event.util.*$SupportManagerFragment
Fabric Twitter Kit 链接
-dontwarn com.squareup.okhttp.** -dontwarn com.google.appengine.api.urlfetch.** -dontwarn rx.** -dontwarn retrofit.** -keepattributes Signature -keepattributes *Annotation* -keep class com.squareup.okhttp.** { *; } -keep interface com.squareup.okhttp.** { *; } -keep class retrofit.** { *; } -keepclasseswithmembers class * { @retrofit.http.* *; }
Fastjson 链接
-dontwarn com.alibaba.fastjson.** -keepattributes Signature -keepattributes *Annotation*
Glide 链接
-keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * extends com.bumptech.glide.AppGlideModule -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *; } # for DexGuard only -keepresourcexmlelements manifest/application/meta-data@value=GlideModule
Gson 链接
# Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # For using GSON @Expose annotation -keepattributes *Annotation* # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.google.gson.examples.android.model.** { *; } # Prevent proguard from stripping interface information from TypeAdapterFactory, # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter) -keep class * implements com.google.gson.TypeAdapterFactory -keep class * implements com.google.gson.JsonSerializer -keep class * implements com.google.gson.JsonDeserializer
环信SDK 链接
-keep class com.easemob.** {*;} -keep class org.jivesoftware.** {*;} -keep class org.apache.** {*;} -dontwarn com.easemob.** #2.0.9后的不需要加下面这个keep #-keep class org.xbill.DNS.** {*;} #另外,demo中发送表情的时候使用到反射,需要keep SmileUtils -keep class com.easemob.chatuidemo.utils.SmileUtils {*;} #注意前面的包名,如果把这个类复制到自己的项目底下,比如放在com.example.utils底下,应该这么写(实际要去掉#) #-keep class com.example.utils.SmileUtils {*;} #如果使用easeui库,需要这么写 -keep class com.easemob.easeui.utils.EaseSmileUtils {*;} #2.0.9后加入语音通话功能,如需使用此功能的api,加入以下keep -dontwarn ch.imvs.** -dontwarn org.slf4j.** -keep class org.ice4j.** {*;} -keep class net.java.sip.** {*;} -keep class org.webrtc.voiceengine.** {*;} -keep class org.bitlet.** {*;} -keep class org.slf4j.** {*;} -keep class ch.imvs.** {*;}
LitePal 链接
-keep class org.litepal.** { *; } -keep class * extends org.litepal.crud.DataSupport { *; }
Okhttp 链接
-keepattributes Signature -keepattributes *Annotation* -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -dontwarn okhttp3.**
OkhttpUtils 链接
#okhttputils -dontwarn com.zhy.http.** -keep class com.zhy.http.**{*;} #okhttp -dontwarn okhttp3.** -keep class okhttp3.**{*;} #okio -dontwarn okio.** -keep class okio.**{*;}
Picasso 链接
-dontwarn com.squareup.okhttp.**
Retrofit2 链接
-dontwarn retrofit2.** -keep class retrofit2.** { *; } -keepattributes Signature -keepattributes Exceptions -keepclasseswithmembers class * { @retrofit2.http.* <methods>; }
RxJava 链接
-keep class rx.schedulers.Schedulers { public static <methods>; } -keep class rx.schedulers.ImmediateScheduler { public <methods>; } -keep class rx.schedulers.TestScheduler { public <methods>; } -keep class rx.schedulers.Schedulers { public static ** test(); }
ShareSDK 链接
-keep class cn.sharesdk.**{*;} -keep class com.sina.**{*;} -keep class **.R$* {*;} -keep class **.R{*;} -dontwarn cn.sharesdk.** -dontwarn **.R$* -dontwarn com.tencent.** -keep class com.tencent.** {*;}
SlidingMenu 链接
-dontwarn com.jeremyfeinstein.slidingmenu.lib.** -keep class com.jeremyfeinstein.slidingmenu.lib.**{*;}
补充几个非常不错的代码混淆相关的开源项目
AndResGuard 链接
Android 源混淆
android-proguard-snippets 链接
一个更棒的项目,几乎整合了所有常见的第三方jar包的混淆方式。
写在最后
以上就是目前所整理的第三方开源jar包的代码混淆方式,如果你有其他的jar包的使用方式可以给我留言,我会添加上去。如果你在参考过程中遇到问题,可以在我的联系方式中给我提问。
后面会继续介绍,Android的相关知识,欢迎继续关注我博客的更新。
参考资源
Android混淆配置总结-持续更新转载请注明:XueLong的博客 » Android Studio代码混淆-第三方jar混淆汇总(持续更新)
相关文章推荐
- 开发中常用代码片段汇总(持续更新)
- android studio 代码混淆如何忽略第三方jar包 The same input jar is specified twice
- IOS 常用工具代码汇总(持续更新中)
- PHP常用代码汇总,持续更新
- iOS 常用代码汇总(持续更新)
- [置顶] 一句话详细题解+优质题目及其博客(清真代码)链接 (持续更新)+知识点讲解汇总
- Android Studio 必备插件汇总(持续更新中......)
- 代码混淆收集-后续会持续更新
- 前端文档汇总(含代码规范、开发流程、知识分享,持续更新)
- HandyFuncs(个人上手代码汇总-持续更新)
- MAC下安装android studio问题汇总(持续更新)
- android studio 代码混淆如何忽略第三方jar包
- Android Studio 使用AndroidProguardPlugin插件实现代码混淆
- android 代码混淆 不混淆第三方jar包
- 算法代码块总结(持续更新)
- TCP/IP协议重要知识点汇总(持续更新中)
- windows系统问题汇总(持续更新)
- git命令汇总(持续更新)
- Android开发人员不得不收集的代码(持续更新中)
- Android Studio实现代码混淆