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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

發布時間:2025/6/17 Android 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、開啟 ProGuard 混淆
  • 二、混淆文件編寫
  • 三、混淆前后對比
  • 四、build.gradle 完整配置文件
  • 五、參考資料





一、開啟 ProGuard 混淆



在 build.gradle 中 開啟 Proguard , 在編譯時 , 會自動進行如下一系列優化 :

  • 壓縮 Shrink : 檢查 并 刪除 沒有使用的類 , 字段 , 方法 , 屬性 ; 這里要注意 , 如果通過反射使用一個類時 , 可能會在該步驟被刪除 ; 這里需要配置混淆文件 , 保留反射中使用的類 ;

  • 優化 Optimize : 優化字節碼 , 移除無用指令 ;

  • 混淆 Obfuscate : 混淆 Java 層代碼 , 使用無意義的標識符替代 Java 中的類名 , 變量名 , 方法名 等名稱 ;

  • 預檢 Preveirfy : 預檢 Java 平臺上預處理的代碼 ;


開啟 ProGuard 配置 : 在 build.gradle 構建腳本中的 " android / buildTypes " 層級中 , 配置 debug / release 相關選項 , 即可開啟 ProGuard ;

設置 minifyEnabled true 配置 , 并配置 proguardFiles 混淆配置文件 , 在 Android Studio 中 , 一般會生成一個默認的混淆配置文件 ;

android {buildTypes {debug {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}} }

混淆配置文件說明 :

在 proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’ 中 , 配置了兩個文件,

其中 proguard-android-optimize.txt 是默認的混淆配置文件 , 由系統自動生成 ; proguard-rules.pro 是用戶自己配置的混淆配置文件 , 在進行打包時 , 將這兩個 ProGuard 配置文件進行合并處理 ;





二、混淆文件編寫



混淆文件編寫 : 引用的第三方庫及服務 , 一般不進行混淆 , 去相應的開源頁面 , 查找混淆配置 ;

遇到某個包或類編譯遇到警告退出 , -dontwarn 配置該包不要爆出警告 ;

遇到沒有找到的類 , 使用 -keep 不要混淆該類 ;


常用的混淆配置 :

" -dontwarn " : 不要報出警告信息 , 如果出現警告 , 編譯打包會被終止 ;

# com 包名下不要爆出警告 -dontwarn com.**

" -keep " : 不要混淆的類 ;

# com 包名下的類不要混淆 -keep class com.**{*;}



三、混淆前后對比



混淆前編譯的 APK 安裝包 : 3.6MB\rm 3.6 MB3.6MB

混淆后編譯的 APK 安裝包 : 1.7MB\rm 1.7MB1.7MB





四、build.gradle 完整配置文件



完整的 build.gradle 構建腳本 ;

plugins {id 'com.android.application'id 'kotlin-android' }android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "kim.hsl.svg"minSdkVersion 18targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"// 生成 PNG 圖片配置//generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']// 使用 com.android.support:appcompat 支持庫配置vectorDrawables.useSupportLibrary = true// 國際化資源配置, 只打包默認資源與英文資源resConfigs 'en'}// 開啟混淆 buildTypes {debug {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}release {minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}kotlinOptions {jvmTarget = '1.8'} }dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"implementation 'androidx.core:core-ktx:1.3.2'// 矢量圖支持庫 , 支持 5.0 以下版本手機使用矢量圖 , 這個是創建應用時自帶的配置implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.3.0'implementation 'androidx.constraintlayout:constraintlayout:2.0.4'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' }



五、參考資料



參考之前的博客資源 :

  • 【Android 安全】DEX 加密 ( ProGuard 混淆 | -keepclassmembers 混淆效果 | -keepclasseswithmembernames 混淆效果 )
  • 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的報錯信息 | Proguard 混淆映射文件 mapping.txt )
  • 【Android 安全】DEX 加密 ( Proguard 混淆 | 將混淆后的報錯信息轉為原始報錯信息 | retrace.bat 命令執行目錄 | 暴露更少信息 )
  • 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的報錯信息 | Proguard 混淆映射文件 mapping.txt )

博客資源 :

  • GitHub 項目源碼 : https://github.com/han1202012/SVG

  • 下載地址 :

總結

以上是生活随笔為你收集整理的【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。