android 代碼混淆

為什么要把代碼混淆呢抠璃??

為了防止別銀反編譯,竊取你的勞動(dòng)成果。

代碼混淆就是在保證應(yīng)用的功能不變的情況下 把代碼格式打亂 字母刪減 ?比如:用a代替abc ?用b代替sss 各種亂 ?使別人根本無法看懂 ? 下面就來說說如何操作

代碼混淆其實(shí)很簡單 ,在項(xiàng)目的proguard-rules.pro文件里面添加基本的配置 和你項(xiàng)目中使用到j(luò)ar包的配置 或者依賴的庫的配置 ?具體配置看自己項(xiàng)目里都用了什么 ?網(wǎng)上也有一大堆基本配置可以參考孵睬,配置好之后直接開始打包簽名就可以了

下面是我寫的一個(gè)小項(xiàng)目里的proguard-rules.pro文件里的所有內(nèi)容 直接粘貼?

# Add project specific ProGuard rules here.

# By default, the flags in this file are appended to flags specified

# in D:\Android\AndroidSDK\newsdk/tools/proguard/proguard-android.txt

# You can edit the include path and order by changing the proguardFiles

# directive in build.gradle.

#

# For more details, see

#? http://developer.android.com/guide/developing/tools/proguard.html

# Add any project specific keep options here:

# If your project uses WebView with JS, uncomment the following

# and specify the fully qualified class name to the JavaScript interface

# class:

#-keepclassmembers class fqcn.of.javascript.interface.for.webview {

#? public *;

#}

# Glide圖片庫的混淆處理

-keeppublic class * implements com.bumptech.glide.module.GlideModule

-keeppublic enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {

**[] $VALUES;

public *;

}

-keepattributesSignature

# Gson混淆腳本

#-keepattributes Signature-keepattributes *Annotation*

-keepclass sun.misc.Unsafe {*;}

-keepclass com.google.gson.stream.** {*;}

#使用Gson時(shí)需要配置Gson的解析對象及變量都不混淆。不然Gson會找不到變量伶跷。

#將下面替換成自己的實(shí)體類

-keepclass com.example.administrator.duguodong.bean.** {*;}

# OkHttp3

-dontwarncom.squareup.okhttp3.**

-keepclass com.squareup.okhttp3.** {*;}

-dontwarnokio.**

# Okio

-dontwarncom.squareup.**

-dontwarnokio.**

-keeppublic class org.codehaus.* {*;}

-keeppublic class java.nio.* {*;}

#上面是導(dǎo)入的model掰读。同樣的其他的也是如此

-keepclass com.github.** {*;}

#上面這個(gè)是避免混淆你導(dǎo)入的maven類庫之類的

-dontwarncom.example.administrator.duguodong.**

#生成對應(yīng)的混淆信息

#注意的是fastJson要特殊對待

#指定代碼的壓縮級別

-optimizationpasses5

#包明不混合大小寫

-dontusemixedcaseclassnames

#不去忽略非公共的庫類

-dontskipnonpubliclibraryclasses

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

-dontoptimize

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

-dontpreverify

#混淆時(shí)是否記錄日志

-verbose

#混淆時(shí)所采用的算法

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

#忽略警告

-ignorewarning

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

#? -dump class_files.txt

#未混淆的類和成員

#? -printseeds seeds.txt

#列出從apk中刪除的代碼

#? -printusage unused.txt

#混淆前后的映射

#? -printmapping mapping.txt

# -------------系統(tǒng)類不需要混淆--------------------------

-keeppublic class * extends android.app.Fragment

-keeppublic class * extends android.app.Activity

-keeppublic class * extends android.app.Application

-keeppublic class * extends android.app.Service

-keeppublic class * extends android.content.BroadcastReceiver

-keeppublic class * extends android.content.ContentProvider

-keeppublic class * extends android.app.backup.BackupAgentHelper

-keeppublic class * extends android.preference.Preference

-keeppublic class * extends android.support.**

-keeppublic class com.android.vending.licensing.ILicensingService

#保留support下的所有類及其內(nèi)部類

-keepclass android.support.** {*;}

#保留R下面的資源

-keepclass **.R$* {*;}

-keepclasseswithmembernamesclass * {#保持native方法不被混淆

native ;

}

-keepclasseswithmembersclass * {#保持自定義控件類不被混淆

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

}

-keepclasseswithmembersclass * {#保持自定義控件類不被混淆

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

}

-keepclassmembersclass * extends android.app.Activity {#保持自定義控件類不被混淆

public void *(android.view.View);

}

-keepclassmembersenum * {#保持枚舉enum類不被混淆

public static **[] values();

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

}

-keepclass * implements android.os.Parcelable {#保持Parcelable不被混淆

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

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末秘狞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蹈集,更是在濱河造成了極大的恐慌烁试,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拢肆,死亡現(xiàn)場離奇詭異减响,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郭怪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進(jìn)店門支示,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鄙才,你說我怎么就攤上這事颂鸿。” “怎么了攒庵?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵嘴纺,是天一觀的道長。 經(jīng)常有香客問我浓冒,道長栽渴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任稳懒,我火速辦了婚禮闲擦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘僚祷。我一直安慰自己佛致,他們只是感情好贮缕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布辙谜。 她就那樣靜靜地躺著,像睡著了一般感昼。 火紅的嫁衣襯著肌膚如雪装哆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天定嗓,我揣著相機(jī)與錄音蜕琴,去河邊找鬼。 笑死宵溅,一個(gè)胖子當(dāng)著我的面吹牛凌简,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恃逻,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雏搂,長吁一口氣:“原來是場噩夢啊……” “哼藕施!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凸郑,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤裳食,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后芙沥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诲祸,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年而昨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了救氯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡歌憨,死狀恐怖径密,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躺孝,我是刑警寧澤享扔,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站植袍,受9級特大地震影響惧眠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜于个,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一氛魁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厅篓,春花似錦秀存、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至档押,卻和暖如春澳盐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背令宿。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工叼耙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人粒没。 一個(gè)月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓筛婉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親癞松。 傳聞我的和親對象是個(gè)殘疾皇子爽撒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 什么是代碼混淆 代碼混淆就是將代碼中的各種元素冕碟,如變量,方法匆浙,類和包的名字改寫成無意義的名字安寺,增加項(xiàng)目反編譯后被讀...
    蝸牛家族史閱讀 5,144評論 1 4
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • 聲明 這篇文章更多的是做一個(gè)整理,內(nèi)容來自于ProGuard官方文檔以及各種博客等首尼,相關(guān)文章的鏈接在參考目錄里挑庶,感...
    夷陵小祖閱讀 3,682評論 0 23
  • 內(nèi)容提要 本篇文章主要有三個(gè)部分,讓讀者讀完后能自己寫規(guī)則混淆項(xiàng)目 對Android代碼怎么開啟混淆做一個(gè)簡單的介...
    一件小毛衣閱讀 7,839評論 2 73
  • Elinor沒有抑制住的哭聲才讓我們又釋懷又心碎软能。 Shakespeare‘s Sonnets Sonnet 11...
    Sarah瀟瀟閱讀 454評論 0 0