Button contact
Hotline

Google Play tiếp tục phát triển nhanh chóng, số ứng dụng mà người dùng Android cài đặt đó là hơn 65 tỉ ứng dụng từ Google Play trong năm ngoái. Chúng ta cũng thấy các nhà phát triển đang cập nhật ứng dụng của họ thường xuyên hơn như đẩy lên các nội dung thú vị, vá lỗi bảo mật, tiếp thu phản hồi từ người dùng. Tuy nhiên nhiều người dùng rất nhạy cảm với lượng dữ liệu mà các ứng dụng đang dùng, đặc biệt là khi họ không có Wi-Fi. Google Play đang đầu tư vào việc giảm lượng dữ liệu cần phải tải về cho ứng dụng cài đặt và update, đồng thời làm minh bạch các lượng dữ liệu này. Đọc bài này để hiểu về phần cập nhật đó và học một vài chiêu để tối ưu dung lượng của tệp APK.

1. Thuật toán Delta mới làm giảm dung lượng cập nhật của ứng dụng

Khoảng 98% các cập nhật của ứng dụng trên Play Store là có các thay đổi trong tệp APK được tải về rồi thêm vào các tệp hiện tại, làm giảm kích cỡ của các cập nhật. Googl Play đã dùng thuật toán delta từ năm 2012 và gần đây có thêm một thuật toán delta, bsdiff (tác giả Colin Percival1), mà chúng tôi đã kiểm tra có thể giảm kích cỡ cập nhật của một số tệp ẠPK lên tới 50% hoặc hơn so sánh với thuật toán cũ. Bsdiff được sinh ra nhằm tạo các thay đổi hiệu quả cho các thư viện có sẵn bằng cách lợi dụng cách mà các thư viện biên soạn các thay đổi code giữa các version. Để đạt hiệu quả cao nhất các thư viện nên được lưu dưới dạng không nén (nén làm ảnh hưởng tới thuật toán delta). Một ví dụ của Chrome:

Mô tả bản cập nhật Bản cập nhật trước Kích cỡ Bsdiff
M46 tới M47 cập nhật lớn 22.8 MB 12.9 MB
M47 cập nhật nhỏ 15.3 MB 3.6 MB

Ứng dụng mà không có các thư viện giải nén có thể giảm được trung bình 5% về kích cỡ, so với các thuật toán delta cũ.

2. Thông tin dung lượng trên Play Store rõ ràng hơn

Ngoài việc cải thiện để giảm dung lượng tải về, chúng ta cũng có thể hiện thị thông tin về dung lượng tải về của ứng dụng trong Play Store rõ ràng hơn. Bạn có thể thấy dung lượng thực của tệp tải cề chứ không phải là tệp APK trên Play Store. Nếu bạn đã cài ứng dụng rồi thì sẽ chỉ nhìn thấy kích cỡ của bản cập nhật. Các thay đổi này đang được tung ra.


  1. Colin Percival, Sự khác nhau cơ bản của các dòng code thực thi, http://www.daemonology.net/bsdiff/, 2003.

Ví dụ 1: Hiển thị “Download size” của tệp APK

Ví dụ 1: Hiển thị “Download size” của tệp APK

Ví dụ 2: Hiển thị “Update size” của tệp APK

Ví dụ 2: Hiển thị “Update size” của tệp APK

3. Mẹo giảm dung lượng tệp tải về

  1. Tối ưu phương pháp tính toán kích cỡ: Người dùng quan tâm đến dung lượng tệp tải về (ví dụ bao nhiêu bytes được tải về khi cài hoặc cập nhật ứng dụng), và họ quan tâm đến dung lượng ổ trên điện thoại (ứng dụng chiếm bao nhiêu bộ nhớ). Nên nhớ là hai con số này không giống với con số của tệp APK, chúng không liên quan tới nhyau.

Ví dụ của Chrome:

  Nén thư viện Không nén thư viện
Kích cỡ APK 39MB 52MB (+25%)
Kích cỡ tải về (cài đặt) 29MB 29MB (no change)
Kích cỡ tải về (cập nhật) 29MB 21MB (-29%)
Chiếm dung lượng ổ 71MB 52MB (-26%)
  1. Giảm kích cỡ tệp APK: Bỏ các dữ liệu không cần thiết khỏi APK như là các resources không dùng tới, code chết.
  2. Tối ưu từng phần của APK khiến nó nhỏ hơn: Dùng các đinh dạng tệp hiệu quả hơn ví dụ như dùng WebP thay vì JPEG, hoặc dùng Proguard để bỏ các dòng code không dùng tới.

Đọc thêm về cách giảm dung lượng tệp APK và xem I/O 2016 ‘Đưa ứng dụng đi ăn kiêng’ để học từ Wojtek Kaliciński, làm cách nào để giảm kích thước tệp APK của bạn.

Tác giả: Anthony Morris, SWE Google Play

Người dịch: Đoàn Dự