Android Studio 코드 혼동 - 타사jar 혼동 요약(지속적인 업데이트)

6245 단어
전언
Android에는 매우 많은 우수한 제3자 개원jar백이 있습니다. 우리는 항상 우리 프로젝트에서 적지 않은jar백을 사용했지만 왕왕 Release가 되면 제3자jar백을 혼동하는 것을 잊어버려서 개발에 많은 번거로움을 줄 수 있습니다. 여기서 비교적 핫한 제3자jar백의 혼동 방식을 모아서 여러분의 개발을 편리하게 합니다.이 글은 계속해서 업데이트될 것입니다. 만약 다른jar 패키지의 혼동 사용 방식이 있다면, 여러분에게 비교적 완전한 실례를 제공할 수 있도록 저에게 알려 주실 수 있습니다.이 블로그는 XueLong에 동시 게시된 블로그입니다.
상용 제3자 개원jar 패키지
순위는 선후를 가리지 않는다(알파벳순으로 배열)
Android-gif-drawable 링크
-keep public class pl.droidsonroids.gif.GifIOException{(int);}

-keep class pl.droidsonroids.gif.GifInfoHandle{(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.* ;
}
-keepclasseswithmembernames class * {    
   @butterknife.* ;
}

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 (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.* ;
}


RxJava 링크
-keep class rx.schedulers.Schedulers {
    public static ;
}
-keep class rx.schedulers.ImmediateScheduler {
    public ;
}
-keep class rx.schedulers.TestScheduler {
    public ;
}
-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.** {*;}


슬라이딩 Menu 링크
-dontwarn com.jeremyfeinstein.slidingmenu.lib.**
-keep class com.jeremyfeinstein.slidingmenu.lib.**{*;}

아주 괜찮은 코드 혼동과 관련된 소스 항목을 몇 개 보충하다
AndResGuard 링크
안드로이드 소스 혼동
android-proguard-snippets 링크
더 좋은 프로젝트는 거의 모든 흔히 볼 수 있는 제3자jar 패키지의 혼동 방식을 통합시켰다.
맨 마지막에 쓰다
이상은 현재 정리된 제3자jar백의 코드 혼동 방식입니다. 만약에 다른jar백의 사용 방식이 있으면 저에게 메시지를 남길 수 있다면 제가 추가하겠습니다.
만약 참고 과정에서 문제가 생기면 나의 연락처에서 나에게 질문을 할 수 있다.
안드로이드에 대한 지식을 계속 소개할 테니 제 블로그의 업데이트에 계속 관심을 가져 주십시오.
참고 자료
  • 안드로이드 혼동 구성 요약 - 지속적인 업데이트
  • 전재: XueLong의 블로그 안드로이드 Studio 코드 혼동 - 제3자jar 혼동 집합(계속 업데이트)

    좋은 웹페이지 즐겨찾기