APK生成過程
APK組成內(nèi)容詳細(xì)分析
網(wǎng)站:Nimbledroid
為應(yīng)用提供自動(dòng)全面的性能分析
開始APK瘦身
-
通過配置build.gradle
- 開啟混淆
buildTypes {
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}```
注意:不能混淆的文件有四大組件瓮下,Application,bean展父,枚舉轮锥,自定義控件誓篱,調(diào)用native方法的類,三方庫(kù)。
* 類型轉(zhuǎn)換錯(cuò)誤,使用Gson之類的需要注意
`-keepattributes Signature`
* 忽略警告
`-ignorewarnings`
* webview中js和本地代碼有交互,保持’橋梁類‘不被混淆
-keepclassmembers
com.xxx.xxxx.xxxx.HuodongBeBindedToJS
{
public *;
}```
- 開啟shrinkResources(去除無(wú)用資源)
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
}
- 刪除無(wú)用的語(yǔ)言資源肉微,并手動(dòng)去除工程”臨時(shí)展示“的圖片旗闽。
defaultConfig {
...
resConfigs "zh"
...
}
-
通過圖片優(yōu)化
- 使用tinypng有損壓縮
- TinyPNG 使用一種智能有損壓縮技術(shù)(通過降低圖片中的顏色數(shù)量酬核,來(lái)減少存儲(chǔ)圖片所需要的數(shù)據(jù))來(lái)降低 PNG 圖片的大小。這樣的壓縮對(duì)圖片的效果影響是很小的适室,但是可以大大降低圖片的大小嫡意,并且還能保持 PNG 的 alpha 透明度
- 因?yàn)?TinyPNG 將 PNG 圖片壓縮成 8 位的 PNG(而不是24位),所以它的壓縮比例非常高捣辆,至少都有 50% 以上的壓縮比例蔬螟,有些甚至可以達(dá)到70%,并且壓縮之后的圖片和原圖人眼基本看不出區(qū)別汽畴。
- 官方網(wǎng)站: http://tinypng.com/
- 將無(wú)關(guān)透明度的png轉(zhuǎn)換為jpg旧巾,使用格式工廠耸序。
- 將圖片轉(zhuǎn)換為webp格式,使用格式工廠鲁猩。
- 從Android 4.0+開始原生支持坎怪,但是不支持包含透明度,直到Android 4.2.1+才支持顯示含透明度的webp
- 不支持.9圖
-
其他方案
- 刪除沒用的so庫(kù)
- shape代替圖片
- 適配一套圖