Android Studio如何混淆
為什么要混淆
了解安卓程式編譯的會知道 其實我們的apk并不是很安全,從apk從可以解包出,步驟:
-
將apk檔案改成zip結尾 然后解壓zip 然后就會發現里面有一個classes.dex
-
dex2jar 這個工具將dex檔案轉成jar
下載地址:http://sourceforge.net/projects/dex2jar/files/
用這個工具的命令 轉jar
d2j-dex2jar classes.dex
- jd-gui 這個工具用于將jar轉成java代碼
下載地址:http://jd.benow.ca/
用這個工具打開classes-dex2jar.jar

因此最簡單的就是把java混淆了,讓別人看不懂
AS里面配置混淆
配置混淆
在build.gradle里面配置
release {
minifyEnabled true //用于設定是否啟用混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
打包后解出來的jar:


配置混淆規則
-dontusemixedcaseclassnames 表示混淆時不使用大小寫混合類名,
-dontskipnonpubliclibraryclasses 表示不跳過library中的非public的類,
-verbose 表示列印混淆的詳細資訊,
-dontoptimize 表示不進行優化,建議使用此選項,因為根據proguard-android-optimize.txt中的描述,優化可能會造成一些潛在風險,不能保證在所有版本的Dalvik上都正常運行,
-dontpreverify 表示不進行預校驗,這個預校驗是作用在Java平臺上的,Android平臺上不需要這項功能,去掉之后還可以加快混淆速度,
-keepattributes *Annotation* 表示對注解中的引數進行保留,
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
上面兩行表示不混淆上述兩個類
-keep class com.tencent.wns.config.ConfigManager {*;}
上面一行表示不混淆這整個類

個人簡介:高級開發工程師,興趣和領域(Unity、Unreal、cocos creator、安卓終端開發、ios終端開發、音視頻開發、圖形學),歡迎加W:wlxklyh 探討問題,(歡迎star:https://github.com/wlxklyh/SoftRenderer)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/196111.html
標籤:其他
上一篇:iOS-多Target那些事兒
