Android混淆

#指定代碼的壓縮級別

-optimizationpasses 5

#包明不混合大小寫

-dontusemixedcaseclassnames

#不去忽略非公共的庫類

-dontskipnonpubliclibraryclasses

#優(yōu)化? 不優(yōu)化輸入的類文件

-dontoptimize

#預(yù)校驗(yàn)

-dontpreverify

#混淆時是否記錄日志

-verbose

# 混淆時所采用的算法

-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#保護(hù)注解

-keepattributes *Annotation*

#如果有引用v4包可以添加下面這行

-keep public class * extends android.support.v4.app.Fragment

#忽略警告

-ignorewarning

##記錄生成的日志數(shù)據(jù),gradle build時在本項(xiàng)目根目錄輸出##

#apk 包內(nèi)所有 class 的內(nèi)部結(jié)構(gòu)

-dump proguard/class_files.txt

#未混淆的類和成員

-printseeds proguard/seeds.txt

#列出從 apk 中刪除的代碼

-printusage proguard/unused.txt

#混淆前后的映射

-printmapping proguard/mapping.txt

########記錄生成的日志數(shù)據(jù),gradle build時 在本項(xiàng)目根目錄輸出-end######

#如果引用了v4或者v7包

-dontwarn android.support.**

#保持 native 方法不被混淆

-keepclasseswithmembernames class * {

native ;

}

#保持自定義控件類不被混淆

-keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet);

}

-keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet, int);

}

#保持自定義控件類不被混淆

-keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}

-keep public class * extends android.view.View {

public (android.content.Context);

public (android.content.Context, android.util.AttributeSet);

public (android.content.Context, android.util.AttributeSet, int);

public void set*(...);

}

#保持 Parcelable 不被混淆

-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}

#保持 Serializable 不被混淆

-keepnames class * implements java.io.Serializable

#保持 Serializable 不被混淆并且enum 類也不被混淆

-keepclassmembers class * implements java.io.Serializable {

static final long serialVersionUID;

private static final java.io.ObjectStreamField[] serialPersistentFields;

!static !transient ;

!private ;

!private ;

private void writeObject(java.io.ObjectOutputStream);

private void readObject(java.io.ObjectInputStream);

java.lang.Object writeReplace();

java.lang.Object readResolve();

}

#保持枚舉 enum 類不被混淆

-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

-keepclassmembers class * {

public void *ButtonClicked(android.view.View);

}

#不混淆資源類

-keepclassmembers class **.R$* {

public static ;

}

#避免混淆泛型 如果混淆報錯建議關(guān)掉

-keepattributes Signature

#lib_common

-keep class com.gd.windtrend.lib.common.**{*;}

#lib_landi

-keep class com.example.landi.device.**{*;}

-keep class com.windtrend.**{*;}

-keep class com.landicorp.**{*;}

#lib_ocrplateid

-keep class com.kernal.**{*;}

-keep class utills.**{*;}

-keep class view.**{*;}

#lib_qrcodecore

-keep class cn.bingoogolapple.qrcode.core.**{*;}

#com.gd.windtrend.frontpos.lib_repository

#-keep class com.gd.windtrend.frontpos.com.gd.windtrend.frontpos.lib_repository.**{*;}

#lib_rv

-keep class cn.lemon.view.**{*;}

#lib_util

-keep class com.blankj.utilcode.**{*;}

#lib_zbar

-keep class cn.bingoogolapple.qrcode.zbar.**{*;}

-keep class net.sourceforge.zbar.**{*;}

#windtrend-frontpos

-keep class com.gd.windtrend.frontpos.bean.**{*;}

-keep class com.gd.windtrend.frontpos.db.**{*;}

-keep class com.gd.windtrend.frontpos.net.**{*;}

-keep class org.xmlpull.v1.** { *;}

-dontwarn org.xmlpull.v1.**

#constraint

-dontwarn android.support.constraint.**

-keep class android.support.constraint.**{*;}

-dontwarn android.support.constraint.solver.**

-keep class android.support.constraint.solver.**{*;}

#design

-dontwarn android.support.design.**

-keep class android.support.constraint.**{*;}

#butterknife

-keep class butterknife.** { *; }

-dontwarn butterknife.internal.**

-keep class **$$ViewBinder { *; }

-keepclasseswithmembernames class * {

@butterknife.* ;

}

-keepclasseswithmembernames class * {

@butterknife.* ;

}

#recyclerview

-keep class android.support.v7.recyclerview.extensions.** { *; }

-keep class android.support.v7.util.** { *; }

-keep class android.support.v7.widget.** { *; }

#rxpermissions2

-dontwarn com.tbruyelle.**

-keep class com.tbruyelle.** { *; }

#retrofit,rxjava2

-dontwarn javax.annotation.**

-dontwarn javax.inject.**

-keep class com.jakewharton.retrofit2.adapter.rxjava2.** { *; }

# OkHttp3

-dontwarn okhttp3.logging.**

-keep class okhttp3.internal.**{*;}

-dontwarn okio.**

# Retrofit

-dontwarn retrofit2.**

-keep class retrofit2.** { *; }

# RxAndroid

-dontwarn io.reactivex.android**

-keep class io.reactivex.android.** { *; }

#RxJava

-dontwarn io.reactivex.**

-keep class io.reactivex.** { *; }

#####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);

}

#okhttputils

-dontwarn com.zhy.http.**

-keep class com.zhy.http.**{*;}

#okhttp

-dontwarn okhttp3.**

-keep class okhttp3.**{*;}

#okio

-dontwarn okio.**

-keep class okio.**{*;}

-dontwarn com.squareup.okhttp.**

-dontwarn javax.annotation.**

-dontwarn com.android.volley.toolbox.**

-dontwarn com.facebook.infer.**

-keep class com.squareup.okhttp.** { *;}

-keep interface com.squareup.okhttp.** { *; }

-dontnote retrofit2.Platform

-dontnote retrofit2.Platform$IOS$MainThreadExecutor

-dontwarn retrofit2.Platform$Java8

-keepattributes Signature

-keepattributes Exceptions

-keepclassmembers class * {

public (org.json.JSONObject);

}

-keep public class [com.gd.windtrend.frontpos].R$*{

public static final int *;

}

#filedownloader

-dontwarn com.liulishuo.filedownloader.**

-keep class com.liulishuo.filedownloader.** { *; }

-dontwarn com.tencent.bugly.**

-keep public class com.tencent.bugly.**{*;}

#gson

-dontwarn com.google.gson.**

-keep class com.google.gson.** {*;}

-keep class retrofit2.convert.gson.** {*;}

-keepattributes SourceFile,LineNumberTable

-keepattributes Signature

-dontwarn com.jcraft.jzlib.**

-keep class com.jcraft.jzlib.**? { *;}

-dontwarn sun.misc.**

-keep class sun.misc.** { *;}

-dontwarn com.alibaba.fastjson.**

-keep class com.alibaba.fastjson.** { *;}

-dontwarn sun.security.**

-keep class sun.security.** { *; }

-dontwarn com.google.**

-keep class com.google.** { *;}

-dontwarn com.avos.**

-keep class com.avos.** { *;}

-keep public class android.net.http.SslError

-keep public class android.webkit.WebViewClient

-dontwarn android.webkit.WebView

-dontwarn android.net.http.SslEr

-dontwarn android.webkit.WebViewClient

-dontwarn android.support.**

-dontwarn org.apache.**

-keep class org.apache.** { *;}

-dontwarn org.jivesoftware.smack.**

-keep class org.jivesoftware.smack.** { *;}

-dontwarn com.loopj.**

-keep class com.loopj.** { *;}

-dontwarn org.xbill.**

-keep class org.xbill.** { *;}

-keepattributes *Annotation*

#gson

-keepattributes Signature

-keepattributes *Annotation*

-dontwarn sun.misc.**

#gson

-dontwarn com.google.gson.**

-keep class com.google.gson.** {*;}

-keep class retrofit2.convert.gson.** {*;}

-keep class * implements com.google.gson.TypeAdapterFactory

-keep class * implements com.google.gson.JsonSerializer

-keep class * implements com.google.gson.JsonDeserializer

#autosize

-keep class me.jessyan.autosize.** { *; }

-keep interface me.jessyan.autosize.** { *; }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末擎场,一起剝皮案震驚了整個濱河市羽德,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌迅办,老刑警劉巖宅静,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異站欺,居然都是意外死亡姨夹,警方通過查閱死者的電腦和手機(jī)纤垂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磷账,“玉大人峭沦,你說我怎么就攤上這事√釉悖” “怎么了吼鱼?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绰咽。 經(jīng)常有香客問我菇肃,道長,這世上最難降的妖魔是什么取募? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任琐谤,我火速辦了婚禮,結(jié)果婚禮上玩敏,老公的妹妹穿的比我還像新娘笑跛。我一直安慰自己,他們只是感情好聊品,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布飞蹂。 她就那樣靜靜地躺著,像睡著了一般翻屈。 火紅的嫁衣襯著肌膚如雪陈哑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天伸眶,我揣著相機(jī)與錄音惊窖,去河邊找鬼。 笑死厘贼,一個胖子當(dāng)著我的面吹牛界酒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播嘴秸,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼毁欣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了岳掐?” 一聲冷哼從身側(cè)響起凭疮,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎串述,沒想到半個月后执解,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纲酗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年衰腌,在試婚紗的時候發(fā)現(xiàn)自己被綠了新蟆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡右蕊,死狀恐怖琼稻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尤泽,我是刑警寧澤欣簇,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布规脸,位于F島的核電站坯约,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏莫鸭。R本人自食惡果不足惜闹丐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望被因。 院中可真熱鬧卿拴,春花似錦、人聲如沸梨与。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粥鞋。三九已至缘挽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間呻粹,已是汗流浹背壕曼。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留等浊,地道東北人腮郊。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像筹燕,于是被迫代替她去往敵國和親轧飞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348