1超营、手動刪除不需要的代碼,資源虏劲,依賴
2托酸、選擇合適的 ABI
在項目級 build.gradle 文件中添加如下代碼褒颈。
android {
defaultConfig {
ndk {
// 設置支持的SO庫架構
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
}
上面的配置適用于所有 arm 架構的 CPU,如果需要支持其他架構 CPU励堡,請自行修改谷丸。
3、啟用縮減念秧、混淆處理和優(yōu)化功能
在項目級 build.gradle 文件中添加以下代碼淤井。
android {
buildTypes {
release {
// 啟用代碼縮減
minifyEnabled true
// 啟用資源縮減
shrinkResources true
// 配置代碼混淆規(guī)則
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
}
}
}
配置上述代碼后布疼,會帶來以下影響摊趾。
代碼縮減(即搖樹優(yōu)化):從應用及其庫依賴項中檢測并安全地移除未使用的類、字段游两、方法和屬性(這使其成為了一個對于規(guī)避 64k 引用限制非常有用的工具)砾层。例如,如果您僅使用某個庫依賴項的少數(shù)幾個 API贱案,縮減功能可以識別應用“未”使用的庫代碼并僅從應用中移除這部分代碼肛炮。啟用代碼縮減將會自動啟用混淆處理。
資源縮減:從封裝應用中移除不使用的資源宝踪,包括應用庫依賴項中的不使用的資源侨糟。此功能可與代碼縮減功能結合使用,這樣一來瘩燥,移除不使用的代碼后秕重,也可以安全地移除不再引用的所有資源。
混淆處理:縮短類和成員的名稱厉膀,從而減小 DEX 文件的大小溶耘。
代碼優(yōu)化:檢查并重寫代碼,以進一步減小應用的 DEX 文件的大小服鹅。例如凳兵,如果 R8 檢測到從未采用過給定 if/else 語句的 else {} 分支,則會移除 else {} 分支的代碼企软。