最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android代碼混淆的寫法總結(jié)

 更新時(shí)間:2018年02月27日 09:15:43   作者:翻滾吧李博  
本篇文章主要介紹了Android代碼混淆的寫法總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

Apk文件被反編譯出來能被獲取到里面的代碼。對(duì)于這種情況,我們可以對(duì)項(xiàng)目代碼進(jìn)行混淆,隨機(jī)生成難理解的類名,方法名,讓代碼難以閱讀,加大功能被盜取的難度?;煜梢云鸬綁嚎sApk,混淆文件,預(yù)檢,優(yōu)化的作用。

1. 使用方式,在gradle文件中設(shè)置minifyEnabled為true即可開啟混淆

buildTypes {
    release {
      minifyEnabled ture //是否開啟代碼混淆
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }

混淆內(nèi)容在proguard-android.txt文件中寫。

2. 混淆設(shè)置參數(shù)

-optimizationpasses 4 代碼混淆的壓縮比例,值介于0-7

-dontusemixedcaseclassnames 混淆后類型都為小寫

-dontskipnonpubliclibraryclasses 不去忽略非公共的庫(kù)類

-dontoptimize 不優(yōu)化輸入的類文件

-dontpreverify 不做預(yù)校驗(yàn)的操作

-ignorewarnings 忽略警告

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

-keepattributes Annotation 保護(hù)注解

-printmapping proguardMapping.txt 生成原類名和混淆后的類名的映射文件

-optimizations !code/simplification/cast,!field/ ,!class/merging/ 指定混淆是采用的算法

3. 保持不被混淆的設(shè)置

保持實(shí)體類不混淆

-keep class 你的實(shí)體類所在的包.** { *; }

保持四大組件,Application,F(xiàn)ragment不混淆

-keep public class * extends android.app.Application
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Fragment
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference

保持 native 方法不被混淆

-keepclasseswithmembernames class * { 
  native <methods>;
}

保持枚舉enum類不被混淆

-keepclassmembers enum * { 
  public static **[] values();
  public static ** valueOf(java.lang.String);
}

保持 Parcelable 不被混淆

-keep class * implements android.os.Parcelable {  
  public static final android.os.Parcelable$Creator *;
}

保持第三方包不混淆,比如這里用到微信、支付寶支付第三方

#支付寶混淆
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}

#微信支付混淆
-keep class com.tencent.mm.opensdk.** {*;}
-keep class com.tencent.wxop.** {*;}
-keep class com.tencent.mm.sdk.** {*;}

4. 完整混淆示例:

#指定代碼的壓縮級(jí)別
-optimizationpasses 5

#包名不混合大小寫
-dontusemixedcaseclassnames

#不去忽略非公共的庫(kù)類
-dontskipnonpubliclibraryclasses

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

 #預(yù)校驗(yàn)
-dontpreverify

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

#忽略警告
-ignorewarning

#保護(hù)注解
-keepattributes *Annotation*

-keep public class * extends android.app.Application
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Fragment
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.preference.Preference

-keepclasseswithmembernames class * {
  native <methods>;
}
-keepclassmembers class * extends android.app.Activity {
  public void *(android.view.View);
}
-keepclassmembers enum * {
  public static **[] values();
  public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
 public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
  *;
}
-keep class * extends android.view.View{*;}
-keep class * extends android.app.Dialog{*;}
-keep class * implements java.io.Serializable{*;}

#butterknife
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }

#volley
-dontwarn com.android.volley.**
-keep class com.android.volley.**{*;}

#fastjson
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.**{*;}

#happy-dns
-dontwarn com.qiniu.android.dns.**
-keep class com.qiniu.android.dns.**{*;}

#okhttp
-dontwarn com.squareup.okhttp.**
-keep class com.squareup.okhttp.**{*;}

-keep class okio.**{*;}

-keep class android.net.**{*;}
-keep class com.android.internal.http.multipart.**{*;}
-keep class org.apache.**{*;}

-keep class com.qiniu.android.**{*;}

-keep class android.support.annotation.**{*;}

-keep class com.squareup.wire.**{*;}

-keep class com.ant.liao.**{*;}

#騰訊
-keep class com.tencent.**{*;}

-keep class u.aly.**{*;}

#ImageLoader
-keep class com.nostra13.universalimageloader.**{*;}

#友盟
-dontwarn com.umeng.**
-keep class com.umeng.**{*;}

#pulltorefresh
-keep class com.handmark.pulltorefresh.** { *; }
-keep class android.support.v4.** { *;}
-keep public class * extends android.support.v4.**{
 public protected *;}
-keep class android.support.v7.** {*;}

自己試著用一個(gè)簡(jiǎn)單的項(xiàng)目加入混淆,打個(gè)包試試效果吧。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android Studio用genymotion運(yùn)行后小圖標(biāo)無法顯示問題

    Android Studio用genymotion運(yùn)行后小圖標(biāo)無法顯示問題

    這篇文章主要介紹了Android Studio用genymotion運(yùn)行后小圖標(biāo)無法顯示的問題,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Android編寫簡(jiǎn)易文件管理模塊

    Android編寫簡(jiǎn)易文件管理模塊

    這篇文章主要為大家詳細(xì)介紹了Android編寫簡(jiǎn)易文件管理模塊的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Android中butterknife的使用與自動(dòng)化查找組件插件詳解

    Android中butterknife的使用與自動(dòng)化查找組件插件詳解

    這篇文章主要給大家介紹了關(guān)于Android中butterknife的使用與自動(dòng)化查找組件插件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Android 三行代碼實(shí)現(xiàn)高斯模糊效果

    Android 三行代碼實(shí)現(xiàn)高斯模糊效果

    這篇文章主要介紹了Android 三行代碼實(shí)現(xiàn)高斯模糊效果,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Android視頻處理之動(dòng)態(tài)時(shí)間水印效果

    Android視頻處理之動(dòng)態(tài)時(shí)間水印效果

    這篇文章主要A為大家詳細(xì)介紹了Android視頻處理之動(dòng)態(tài)時(shí)間水印效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android隱藏頂部狀態(tài)欄所遇到的問題

    Android隱藏頂部狀態(tài)欄所遇到的問題

    本文給大家分享兩種隱藏狀態(tài)欄的方法及在實(shí)現(xiàn)的過程中遇到的坑,下面在本文中給大家做個(gè)總結(jié),希望對(duì)大家學(xué)習(xí)android頂部狀態(tài)欄知識(shí)有所幫助
    2016-11-11
  • Cocos2d-x 3.0多線程異步加載資源實(shí)例

    Cocos2d-x 3.0多線程異步加載資源實(shí)例

    手機(jī)游戲,即便是休閑類的小游戲,往往也涉及大量紋理資源、音視頻資源、文件讀寫以及網(wǎng)絡(luò)通信,處理的稍有不甚就會(huì)出現(xiàn)畫面卡頓,交互不暢的情況
    2014-04-04
  • Android實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)

    Android實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng),Spinner實(shí)現(xiàn)省市區(qū)的三級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Flutter中http請(qǐng)求抓包的完美解決方案

    Flutter中http請(qǐng)求抓包的完美解決方案

    這篇文章主要給大家介紹了關(guān)于Flutter中http請(qǐng)求抓包的完美解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Android自定義View實(shí)現(xiàn)跟隨手指移動(dòng)的小兔子

    Android自定義View實(shí)現(xiàn)跟隨手指移動(dòng)的小兔子

    這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)跟隨手指移動(dòng)的小兔子,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11

最新評(píng)論

金门县| 蓬莱市| 聊城市| 敖汉旗| 孟州市| 龙泉市| 东乌珠穆沁旗| 项城市| 沭阳县| 综艺| 连城县| 葵青区| 大田县| 育儿| 祥云县| 河北区| 稷山县| 调兵山市| 乌兰县| 衡山县| 留坝县| 嘉义市| 桂林市| 长垣县| 徐汇区| 泗阳县| 沾益县| 德州市| 兴城市| 六枝特区| 霍山县| 古交市| 毕节市| 柞水县| 阜康市| 吴川市| 沧州市| 安远县| 五家渠市| 田林县| 广东省|