as 開啟代碼混淆和自定義混淆規則


app的builde.gradle的文件下,buildTypes節點添加release節點,minifyEnabled屬性表示是否開啟混淆,proguardFiles表示混淆依賴的文件,具體開啟方法如下:

buildTypes {
        release {
            minifyEnabled true //開啟混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//指定混淆配置文件為 proguard-rules.pro
} }

  

 

混淆配置:

#官方的一些配置就不在這里說明了,這里只說下自定義混淆的簡單配置方法,通過自定義注解類,保持所有被注解的類名、方法、變量不被混淆掉
-keep class proguard.conf.MyKeep#自定義注解類不能混淆
通過注解控制混淆,需要注意以下幾點:
1.如果整個類都需要保留,則在類上面增加注解,混淆配置為
-keep @proguard.conf.MyKeep class *{*;}#包含類名
-keepclassmembers @proguard.conf.MyKeep class *{*;}#不包含類名
2.如果是類的全部成員變量都需要保留,在類上面增加注解,混淆配置為
-keepclasseswithmembers @proguard.conf.MyKeep class *{<fields>;}#包含類名
-keepclassmembers @proguard.conf.MyKeep class *{<fields>;}#不包含類名
3.如果是類的全部方法都需要保留,在類上面增加注解,混淆配置為
-keepclasseswithmembers @proguard.conf.MyKeep class *{<methods>;}#包含類名
-keepclassmembers @proguard.conf.MyKeep class *{<methods>;}#不包含類名
4.如果是類中的某個變量需要保留,在需要保留的變量上面增加注解,混淆配置為
-keepclasseswithmembers class *{
@proguard.conf.MyKeep <fields>;
}#包含類名
-keepclassmembers class *{
@proguard.conf.MyKeep <fields>;
}#不包含類名
5.如果是勒種的某個方法需要保留,在需要保留的方法上面增加注解,混淆配置為
-keepclasseswithmembers class *{
@proguard.conf.MyKeep <methods>;
}#包含類名
-keepclassmembers class *{
@proguard.conf.MyKeep <methods>;
}#不包含類名

 關於其他的一些混淆,網上有很多參考資料,基本上都是基於保留  繼承於某個類  或者實現了某個接口  的方式進行的保留,這邊就不記載了,有需要網上再找吧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM