Android APK安裝包瘦身
阿新 • • 發佈:2019-01-12
很顯然,APK安裝包越小越好。下面從程式碼,資原始檔,使用策略幾個方面簡要介紹下:
程式碼
- 保持良好的程式設計習慣,不要重複或者不用的程式碼,謹慎新增libs,移除使用不到的libs。
- 使用proguard混淆程式碼,它會對不用的程式碼做優化,並且混淆後也能夠減少安裝包的大小。
- native code的部分,大多數情況下只需要支援armabi與x86的架構即可。如果非必須,可以考慮拿掉x86的部分。
資源
- 使用Lint工具查詢沒有使用到的資源。去除不使用的圖片,String,XML等等。
- assets目錄下的資源請確保沒有用不上的檔案。
- 生成APK的時候,aapt工具本身會對png做優化,但是在此之前還可以使用其他工具如tinypng對圖片進行進一步的壓縮預處理。
- jpeg還是png,根據需要做選擇,在某些時候jpeg可以減少圖片的體積。
- 對於9.png的圖片,可拉伸區域儘量切小,另外可以通過使用9.png拉伸達到大圖效果的時候儘量不要使用整張大圖。
策略
- 有選擇性的提供hdpi,xhdpi,xxhdpi的圖片資源。建議優先提供xhdpi的圖片,對於mdpi,ldpi與xxxhdpi根據需要提供有差異的部分即可。
- 儘可能的重用已有的圖片資源。例如對稱的圖片,只需要提供一張,另外一張圖片可以通過程式碼旋轉的方式實現。
- 能用程式碼繪製實現的功能,儘量不要使用大量的圖片。例如減少使用多張圖片組成animate-list的AnimationDrawable,這種方式提供了多張圖片很佔空間。
總結
一個好的應用,需要具備很多優點,儘可能提供小的安裝包是其中一個重要的方面。以上的小技巧,需要綜合考慮,結合實際情況進行取捨。當然我們還可以採取一些按需載入的策略來減少安裝包的體積,最好提一點,砍掉不必要的功能才是安裝包瘦身的終極奧祕