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

歡迎訪問 生活随笔!

生活随笔

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

Android

【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留/移除资源配置 | 资源压缩效果 )

發布時間:2025/6/17 Android 18 豆豆

文章目錄

  • 一、開啟資源壓縮
  • 二、啟用嚴格模式的資源引用檢查
  • 三、自定義保留/移除資源配置
  • 四、資源壓縮效果
  • 五、完整配置
    • 1、keep.xml 配置
    • 2、build.gradle 構建腳本
  • 六、參考資料





一、開啟資源壓縮



縮減、混淆處理和優化應用 ( 官方文檔 ) : https://developer.android.google.cn/studio/build/shrink-code


資源壓縮 的前提是 代碼壓縮 必須開啟 , 否則資源壓縮無效 ;

代碼壓縮就是 混淆操作 , 參考 【Android 安裝包優化】開啟 ProGuard 混淆 ( 壓縮 Shrink | 優化 Optimize | 混淆 Obfuscate | 預檢 | 混淆文件編寫 | 混淆前后對比 ) 博客 ;


編譯打包時 , 先進行代碼壓縮混淆 , 刪除不必要的代碼 ; 然后使用資源壓縮器移除不相關的資源 ; ( 先處理代碼 , 再處理資源 )


資源壓縮不是簡單的將資源刪除 , 而是將資源的文件保留 , 資源的實際內容替換掉 , 如 XML 文件資源 , 將其只保留一個根節點 ;


資源壓縮配置是在 build.gradle 構建腳本中的 " android / buildTypes " 下的 debug / release 下配置 shrinkResources true 選項 ;


資源壓縮 配置示例 :

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



二、啟用嚴格模式的資源引用檢查



資源壓縮器 壓縮資源時 , 默認使用比較保守的模式 , 通過動態 id 獲取資源不會被移除 ;

動態 id 獲取資源 , 參考 【Android 安裝包優化】移除無用資源 ( 自動移除無用資源 | 直接引用資源 | 動態獲取資源 id | Lint 檢查資源 ) 二、直接引用資源與動態獲取資源 2、動態獲取資源 id 博客章節 ;


保守模式下進行資源壓縮 , 沒有任何效果 , 因此這里要啟用嚴格模式 ;


在 " res/raw " 目錄下創建 " keep.xml " 文件 , 文件內容如下 :

<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"tools:shrinkMode="strict" />

這樣就啟用了應用資源的嚴格壓縮模式 ;





三、自定義保留/移除資源配置



參考文檔 : 自定義要保留的資源


如果開發者有想要特定保留或者必須移除的資源 , 可以進行自定義配置 ;

在 " res/raw " 目錄下創建 " keep.xml " 文件中可以配置 保留 / 移除 的資源 ;

使用 tools:keep 屬性指定要保留的資源 ; 如果保留多個資源使用逗號隔開 ;

使用 tools:discard 屬性指定要移除的資源 ; 如果移除多個資源使用逗號隔開 ;

該設置支持 * 通配符 設置 ,


<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"tools:shrinkMode="strict"tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*"tools:discard="@layout/unused2" />



四、資源壓縮效果



啟動資源壓縮后 , 壓縮后的布局資源變成了如下內容 , 程序中沒有引用該資源 , 在編譯時 , 該資源自動替換成如下類型 ;


<?xml version="1.0" encoding="utf-8"?> <x />





五、完整配置





1、keep.xml 配置


res/raw/keep.xml 配置文件 :

<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"tools:shrinkMode="strict" />

2、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 {// 開啟資源壓縮shrinkResources true// 開啟代碼壓縮minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}release {// 開啟資源壓縮shrinkResources true// 開啟代碼壓縮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' }



六、參考資料



參考官方文檔 :

  • 縮減、混淆處理和優化應用 : https://developer.android.google.cn/studio/build/shrink-code

參考之前的博客資源 :

  • 【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 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式的资源引用检查 | 自定义保留/移除资源配置 | 资源压缩效果 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 波多野结衣视频在线观看 | 台湾佬中文在线 | 精品+无码+在线观看 | 好屌妞视频这里有精品 | 国产乱子轮xxx农村 岛国久久久 | 青青偷拍视频 | 91免费国产在线观看 | 91精品欧美一区二区三区 | 久久精品免费播放 | 久久精品免费电影 | 国产成人超碰人人澡人人澡 | 女人做爰全过程免费观看美女 | 人妻一区二区三区免费 | 日韩美女国产精品 | 中文字幕一区二区三区免费 | 五月激情婷婷丁香 | 女性女同性aⅴ免费观女性恋 | 国产精品尤物视频 | 亚洲精品白浆高清久久久久久 | 体内精视频xxxxx| 中文字幕第| 久久国产日韩 | 一本免费视频 | 成年在线视频 | 亚洲影视一区二区 | 亚洲国产精品激情在线观看 | 香蕉久久一区二区三区 | 亚洲美女精品视频 | 欧美极品少妇xxxxⅹ免费视频 | 国产精品无码一区二区三区在线看 | 黄色片的网站 | 欧美大片高清免费观看 | 人妻少妇久久中文字幕 | 波多野结衣潜藏淫欲 | 中文字幕在线观看你懂的 | 亚洲成人无码久久 | 色综合99| 乌克兰av在线 | 国产女主播av | 懂色av一区二区三区在线播放 | av一区二区三区在线 | 西西人体www大胆高清 | 人人妻人人玩人人澡人人爽 | 国产高清在线免费观看 | 久久综合伊人77777麻豆最新章节 | 丁香综合| 大陆明星乱淫(高h)小说 | 欧美日韩视频免费观看 | 91视频在线看 | 免费在线看污视频 | 青青草原在线免费 | 欧美高清一区 | 欧美一区二区三区四 | 一级片av | 一区二区三区中文字幕在线观看 | 人人爱爱 | 黄床大片 | 国产日韩欧美精品 | 成人免费视屏 | 国产成人无码精品久久久性色 | 黄色一级在线观看 | 在线国产精品视频 | 国产中文字幕第一页 | 欧洲成人在线视频 | 欧美成人免费视频 | 中文字幕有码在线视频 | 蜜臀国产AV天堂久久无码蜜臀 | 三级欧美韩日大片在线看 | 亚洲一区二区蜜桃 | 亚洲美女自拍视频 | 欧美日韩在线播放三区四区 | 国产精品少妇 | 午夜在线视频免费 | 人人人妻人人澡人人爽欧美一区 | 一级片播放 | 超碰人人爱人人 | 日韩精品电影在线观看 | 激情丁香婷婷 | 国产精品羞羞答答在线 | 久久亚洲av午夜福利精品一区 | 国产黄色片免费观看 | 成年人看的网站 | 在线观看日本一区 | 国产精品女优 | 两性视频久久 | 2025中文字幕 | 亚洲 欧美 精品 | av综合久久 | 亚洲天堂性 | 亚洲欧美变态另类丝袜第一区 | 一级黄色免费大片 | 国产绿帽刺激高潮对白 | 色网在线| 成人免费视频国产免费麻豆 | 1024欧美 | 国产探花精品在线 | www.伊人 | 小泽玛利亚一区二区三区在线观看 | 国产呦系列 |