Giảm size của file APK khi build release upload lên GooglePlay

Để giảm size của APK trước khi upload lên google play, dưới đây mình chia sẻ những cách mình biết và đang sử dụng:

  1. Sử dụng Proguard, để mã hóa các class & variable thành (a,b,c,d,..) khi decompile apk và giảm size của APK
  2. Enable flag minifyEnabledshrinkResources khi build release, không enable khi build debug vì sẽ làm tăng thời gian build:
release {
      shrinkResources true
      minifyEnabled true
      signingConfig signingConfigs.release
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

      applicationVariants.all { variant -> appendVersionNameVersionCode(variant)
}
  • minifyEnabled: bật flag này sẽ remove những class không sử dụng trong app
  • shrinkResources: bật flag này sẽ remove những resources( drawable, string, dimens,...) không sử dụng trong app
  1. Split APK là cách tốt nhất để làm giảm dung lượng APK
  2. Kiểm tra image resource những image lớn (background,...) có thể giảm size xuống 1 ít sẽ không ảnh hưởng đến chất lượng ảnh hiển thị nhiều. Nếu có thể (ảnh không có những điểm ảnh transparent) nên sử dụng ảnh định dạng JPGE thay cho PNG sẽ giảm size của ảnh
  3. Sử dụng icon vector drawable (định dạng svg) thay cho icon image nếu có thể. Dùng vector drawable bạn chỉ cần đặt ảnh vector vào 1 folder drawable, load ảnh từ vectore sẽ không bị vỡ khi hiển thị trên những thiết bị khác nhau và dung lượng ít hơn nếu bạn dùng ảnh vì phải đặt nhiều ảnh vào nhiều folder drawable khác nhau để hiển thị nhiều thiết bị không bị vỡ ảnh
  4. Đối với các shape gradient nên sử dụng xml tạo các Gradient backgrounds thay vì dùng image.
  5. Kiểm tra các lib bạn sử dụng trong code, có thể có lib bao gồm nhiều chức năng, mà bạn chỉ dùng 1 chức năng nhỏ trong đó, nếu có thể copy những source code trong lib liên quan đến phần mình cần cho vào source, và remove lib.
  • Đây là những hiểu biết và chia sẻ của mình, mọi người ai biết cách nào nữa để optimize size APK thì vui lòng để comment bên dưới 😃