# BugUtils2 **Repository Path**: rulerbug/BugUtils2 ## Basic Information - **Project Name**: BugUtils2 - **Description**: 一个自用的安卓库,一个自用的安卓库 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-10-25 - **Last Updated**: 2023-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #依赖 ``` api 'com.google.code.gson:gson:2.8.9' api "androidx.core:core-ktx:1.9.0" api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10" //image cache api "com.github.bumptech.glide:glide:4.12.0" api "com.github.bumptech.glide:okhttp3-integration:4.11.0" api 'org.greenrobot:eventbus:3.2.0' api 'com.google.android:flexbox:2.0.1' api 'com.github.xuexiangjys:XUI:1.1.8' //blankj utils api 'com.blankj:utilcodex:1.31.0' ``` #混淆 ``` #1.基本指令区 -optimizationpasses 5 -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -dontskipnonpubliclibraryclassmembers -dontpreverify -verbose -optimizations !code/simplification/cast,!field/*,!class/merging/* -keepattributes *Annotation*,InnerClasses -keepattributes Signature -keepattributes SourceFile,LineNumberTable #2.默认保留区 -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 * extends android.view.View -keep class android.support.** {*;} -keepclasseswithmembernames class * { native ; } -keepclassmembers class * extends android.app.Activity{ public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep public class * extends android.view.View{ *** get*(); void set*(***); public (android.content.Context); public (android.content.Context, android.util.AttributeSet); public (android.content.Context, android.util.AttributeSet, int); } -keepclasseswithmembers class * { public (android.content.Context, android.util.AttributeSet); public (android.content.Context, android.util.AttributeSet, int); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -keep class **.R$* { *; } -keepclassmembers class * { void *(**On*Event); } #3.webview -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } -keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); public boolean *(android.webkit.WebView, java.lang.String); } -keepclassmembers class * extends android.webkit.webViewClient { public void *(android.webkit.webView, jav.lang.String); } -keepattributes Signature -keepattributes *Annotation* -keep class com.squareup.okhttp.* { *; } -keep interface com.squareup.okhttp.** { *; } -dontwarn com.squareup.okhttp.** # okhttp 3 -keepattributes Signature -keepattributes *Annotation* -keep class okhttp3.** { *; } -keep interface okhttp3.** { *; } -dontwarn okhttp3.** #EventBus -keepattributes *Annotation* -keepclassmembers class ** { @org.greenrobot.eventbus.Subscribe ; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } # Only required if you use AsyncExecutor -keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent { (java.lang.Throwable); } -keep class org.greenrobot.eventbus.** { *; } -keep class com.xuexiang.xui.widget.edittext.materialedittext.** { *; } -keep class com.blankj.** { *; } -keep class com.rulerbug.** { *; } -keep class com.wang.avi.** { *; } -keep class com.wang.avi.indicators.** { *; } -keep public class com.alibaba.android.arouter.routes.**{*;} -keep public class com.alibaba.android.arouter.facade.**{*;} -keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;} # 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口 -keep interface * implements com.alibaba.android.arouter.facade.template.IProvider # 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现 # -keep class * implements com.alibaba.android.arouter.facade.template.IProvider ##Glide -dontwarn com.bumptech.glide.** -keep class com.bumptech.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 *; } -keep public class * implements com.bumptech.glide.module.GlideModule -keep class * extends com.bumptech.glide.module.AppGlideModule { (...); } -keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; } -keep class com.bumptech.glide.load.data.ParcelFileDescriptorRewinder$InternalRewinder { *** rewind(); } # for DexGuard only #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule -keep class *.bean.** { *; } -keep enum *.** { *; } #注解的keep -keepclassmembers class * { @com.rulerbug.bugutils.nas_library_utils.exts.ext.intent.Extra ; } ``` ``` allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` ``` dependencies { implementation 'com.gitee.rulerbug:BugUtils2:x.x.x' } ```