關於android混淆

2021-07-11 04:19:01 字數 2116 閱讀 4869

android studio新增混淆

1,在build.grandle新增,其中規則寫在proguard-rules.pro中,也可以自定義乙個檔案,將其代替,比如eclipse常用的 proguard-project.txt

buildtypes 

}

2,在proguard-rules.pro中加入以下**,基本可以涵蓋所有

-

optimizationpasses

5# 指定**的壓縮級別

-dontusemixedcaseclassnames

# 是否使用大小寫混合

-dontpreverify

-verbose

# 混淆時是否記錄日誌

-optimizations

!code

/simplification

/arithmetic

,!field

/*,!

class

/merging

/*

# 混淆時所採用的演算法

#以下android的基本類需要保證其不被混淆

-keep public

class

* extends

android..

activity

# 保持哪些類不被混淆

-keep public

class

* extends

android..

# 保持哪些類不被混淆

-keep public

class

* extends

android..

service

# 保持哪些類不被混淆

-keep public

class

* extends

android

.content

.broadcastreceiver

# 保持哪些類不被混淆

-keep public

class

* extends

android

.content

.contentprovider

# 保持哪些類不被混淆

-keep public

class

* extends

android..

backup

.backupagenthelper

# 保持哪些類不被混淆

-keep public

class

* extends

android

.preference

.preference

# 保持哪些類不被混淆

-keep public

class

com.

android

.vending

.licensing

.ilicensingservice

# 保持哪些類不被混淆

#native方法不能被混淆

-keepclasseswithmembernames

class* -

keepclasseswithmembers

class* -

keepclasseswithmembers

class* -

keepclassmembers

class

* extends

android..

activity

-keepclassmembers enum *

-keep

class

* implements

android.os

.parcelable

#其他針對於jar包也是不可以被混淆的

通常通過-dontwarn和-keep保證其jar包中的類不被混淆

#同樣r檔案也是不能被混淆的,需要注意,所有應用到反射的**都是不可以被混淆的,混淆會導致其變數名與類名改變,因此在反射時會因無法找到其類名而出錯。

關於 Android 混淆處理

因為像 google play 強制要求開發者上傳的應用必須是經過 zipalign 的,zipalign 可以讓安裝包中的資源按 4 位元組對齊,這樣可以減少應用在執行時的記憶體消耗。ignorewarnings 作用是忽略混淆時出現的警告混淆的常見配置 keep class com.xx.x.b...

Android混淆問題

解決方法 本選項的作用 指定的jar會被打包,但是不會被混淆 jar的依賴一樣會被混淆,依然會檢查引用的類 方法 字段 解決方法 keepattributes signature 解決方法 對於proguard,不要使用keepresourcexmlelements選項 原因 出錯的行 keepcl...

Android混淆心得

最近在做android應用的混淆,踩了一些坑,這裡記錄分享下個人的心得。首先先簡單說一下什麼是混淆和混淆的作用,其實這個搜尋下可以找到一堆官方的說法等等,這裡簡單口語敘述一下,混淆就是把 替換成a b c基本字母組成的 比如乙個方法名為 function 混淆後可能會被替換成a 混淆的好處 前者只能...