日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 )

發(fā)布時(shí)間:2025/6/17 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 ) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 一、Proguard 簡(jiǎn)介
  • 二、Proguard 相關(guān)網(wǎng)址
  • 三、Proguard 混淆配置





一、Proguard 簡(jiǎn)介



Android 開(kāi)發(fā)中 Proguard 主要作用是對(duì) Java 代碼進(jìn)行如下操作 :

  • 壓縮 Shrink : 檢測(cè)并 刪除 沒(méi)有使用的類 , 字段 , 方法 , 屬性 ;
  • 優(yōu)化 Optimize : 優(yōu)化字節(jié)碼 , 移除無(wú)用指令 ;
  • 混淆 Obfuscate : 使用 a , b , c 無(wú)意義名稱 , 對(duì)開(kāi)發(fā)者定義的 類 , 字段 , 方法 進(jìn)行 重命名 , 增加閱讀難度 ;
  • 預(yù)檢 Preveirfy : Java 平臺(tái)對(duì) 處理后的代碼 進(jìn)行預(yù)檢 ;

最常用的是混淆操作 ;


上述執(zhí)行順序 : 壓縮 Shrink -> 優(yōu)化 Optimize -> 混淆 Obfuscate -> 預(yù)檢 Preveirfy ;





二、Proguard 相關(guān)網(wǎng)址



Proguard 官網(wǎng) : https://www.guardsquare.com/en/products/proguard

Proguard 官方指導(dǎo)手冊(cè) : https://www.guardsquare.com/en/products/proguard/manual

Proguard 用法 : https://www.guardsquare.com/en/products/proguard/manual/usage

Proguard 混淆相關(guān)文檔 : https://www.guardsquare.com/en/products/proguard/manual/usage#keepoptions





三、Proguard 混淆配置



Proguard 混淆相關(guān)文檔 : https://www.guardsquare.com/en/products/proguard/manual/usage#keepoptions


Proguard 混淆配置 :

-keep 指定 , 類成員 , 不被混淆 ; ( 類成員指的是類的成員方法 和 成員屬性 )

-keepclassmembers 指定 類成員 不被混淆 , 類 和 類 方法 可以混淆 ;

-keepclasseswithmembers 指定 類成員 , 不被混淆 , 前提是 指定的類成員存在 ;


開(kāi)啟 Proguard : 在 Module 下的 build.gradle 中進(jìn)行如下配置 , 其中 release 標(biāo)簽是進(jìn)行發(fā)布版本的混淆設(shè)置 , debug 標(biāo)簽是測(cè)試版本的混淆設(shè)置 ;

android {buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}debug {minifyEnabled true// 打印 proguard-android-optimize.txt 路徑print("proguardPath = ${getDefaultProguardFile('proguard-android-optimize.txt')}")proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}} }

上述 proguard-rules.pro 是開(kāi)發(fā)者自己手動(dòng)配置的 ,

上述 proguard-android-optimize.txt 混淆配置文件是系統(tǒng)自動(dòng)生成的 ,

該 proguard-android-optimize.txt 文件生成的依據(jù)是根據(jù)開(kāi)發(fā)者的 proguard-rules.pro 混淆配置生成的 ;


編譯時(shí)打印變量 : 上述使用了 print(“proguardPath = ${getDefaultProguardFile(‘proguard-android-optimize.txt’)}”) 語(yǔ)句 , 打印了混淆腳本 proguard-android-optimize.txt 的路徑 , 其打印結(jié)果如下 , 該混淆腳本在 應(yīng)用的 \build\intermediates\proguard-files\ 目錄下 ;

proguardPath = Y:\002_WorkSpace\001_AS\Handler\app\build\intermediates\proguard-files\proguard-android-optimize.txt-3.6.1


生成混淆配置腳本 proguard-android-optimize.txt : 如果沒(méi)有上述腳本 , 即刪除了 build 目錄 , 進(jìn)入 Gradle 界面 , 執(zhí)行 app -> Tasks -> other -> extractProguardFiles 任務(wù) , 即可重新生成混淆配置腳本 ;

總結(jié)

以上是生活随笔為你收集整理的【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。