proguar在Android混淆中的用法
混淆器通過(guò)刪除從未用過(guò)的代碼和使用晦澀名字重命名類、字段和方法,對(duì)代碼進(jìn)行壓縮,優(yōu)化和混淆。結(jié)果是一個(gè)比較小的.apk文件,該文件比較難進(jìn)行逆向project。因此,當(dāng)你的應(yīng)用程序?qū)Π踩舾校ㄒ蟾撸?,比如?dāng)你授權(quán)應(yīng)用程序的時(shí)候,混淆器是一種重要的保護(hù)手段。
proguard 基本語(yǔ)法
// 保留native方法的方法的方法名和包含native方法的類的類名不變
-keepclasseswithmembernames class {
native<methods>;
}
// 保留繼承與View的類中的set*和get*方法
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
// 保留繼承與Activity的類中以View為參數(shù)的方法
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
// 保留實(shí)現(xiàn)了Parcelable 接口的類的類名以及實(shí)現(xiàn)了 Parcelanle$Creator 的內(nèi)部類
-keep class * implemenets android.os.Parcelable {
public static final android.os.Parcelanle$Creator *;
}
// 保留 R$*類中靜態(tài)字段的字段名
-keep class **.R$* {
public static <fields>;
}
也就是
類名不混淆 用keep
方法名不混淆 用keepclassmembers 或者 keepclasseswithmembernames(后者用于native不混淆)
不混淆的情況:
1 jni 調(diào)用java方法
2 四大組件
3 R文件
4 某些通過(guò)反射調(diào)用的類或方法
5 第三jar包(一般情況下不要混淆)
混淆去掉log
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String,int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
assumenosideeffects,proguard 配置文件里的參數(shù)。assume no side effects;假定無(wú)效;該屬性也就是標(biāo)識(shí)無(wú)效代碼。我們就是通過(guò)這個(gè)參數(shù)來(lái)讓proguard刪除日志代碼。
- Android使用插件實(shí)現(xiàn)代碼混淆
- Android 一些常用的混淆Proguard
- Android Studio配置反混淆的實(shí)現(xiàn)
- Android studio 混淆配置詳解
- 詳解Android代碼混淆實(shí)戰(zhàn)
- Android常用三方庫(kù)混淆規(guī)則整理(小結(jié))
- Android代碼混淆的寫(xiě)法總結(jié)
- 詳解Android的反編譯和代碼混淆
- Android studio 混淆+打包+驗(yàn)證是否成功
- Android studio利用gradle打jar包并混淆的方法詳解
- Android 資源混淆的方案及注意事項(xiàng)
相關(guān)文章
Android仿天貓橫向滑動(dòng)指示器功能的實(shí)現(xiàn)
這篇文章主要介紹了Android仿天貓橫向滑動(dòng)指示器,Android開(kāi)發(fā)中會(huì)有很多很新奇的交互,比如天貓商城的首頁(yè)頭部的分類,使用的是GridLayoutManager+橫向指示器實(shí)現(xiàn)的,需要的朋友可以參考下2022-08-08
android教程之使用popupwindow創(chuàng)建菜單示例
這篇文章主要介紹了android使用popupwindow創(chuàng)建菜單的示例,需要的朋友可以參考下2014-02-02
Android自定義View之自定義評(píng)價(jià)打分控件RatingBar實(shí)現(xiàn)自定義星星大小和間距
Android開(kāi)發(fā)中,我們經(jīng)常會(huì)用到對(duì)商家或者商品的評(píng)價(jià),運(yùn)用星星進(jìn)行打分。這篇文章介紹了Android自定義View之自定義評(píng)價(jià)打分控件RatingBar可以自定義星星大小和間距的相關(guān)資料,感興趣的朋友一起看看吧2016-10-10
Android?應(yīng)用程序的啟動(dòng)流程示例詳解
這篇文章主要為大家介紹了Android?應(yīng)用程序的啟動(dòng)流程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
android系統(tǒng)拍照結(jié)合android-crop裁剪圖片
這篇文章主要為大家詳細(xì)介紹android系統(tǒng)拍照結(jié)合android-crop裁剪圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Python基礎(chǔ)教程學(xué)習(xí)筆記 第二章 列表和元組
這篇文章主要介紹了Python基礎(chǔ)教程學(xué)習(xí)筆記 第二章 列表和元組,需要的朋友可以參考下2015-03-03
Android編程獲取系統(tǒng)隱藏服務(wù)實(shí)現(xiàn)鎖屏的方法
這篇文章主要介紹了Android編程獲取系統(tǒng)隱藏服務(wù)實(shí)現(xiàn)鎖屏的方法,涉及Android關(guān)于廣播,服務(wù),權(quán)限及鎖屏等操作的相關(guān)技巧,需要的朋友可以參考下2015-12-12
Flutter 首頁(yè)必用組件NestedScrollView的示例詳解
今天介紹的組件是NestedScrollView,大部分的App首頁(yè)都會(huì)用到這個(gè)組件。對(duì)Flutter 首頁(yè)必用組件NestedScrollView的相關(guān)知識(shí)感興趣的一起看看吧2020-05-05
Android中將View的內(nèi)容保存為圖像的簡(jiǎn)單實(shí)例
這篇文章主要介紹了Android中將View的內(nèi)容保存為圖像的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2014-01-01
Android自定義view實(shí)現(xiàn)拖動(dòng)小球移動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android自定義view實(shí)現(xiàn)拖動(dòng)小球移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11

