Tư vấn

Tại sao AAB lại được Google sử dụng để thay thế APK?

Mới đây, Google đã ra mắt Android App Bundle (AAB) để thay thế định dạng APK quen thuộc hiện nay. Nhưng bạn đã biết AAB là gì chưa? Tại sao Google lại dùng nó thay thế APK? Hãy cùng đọc bài viết này của mình nhé!

Android App Bundle là định dạng format upload mới lên Google Play. Android App Bundle gồm tất cả source code và resource nhưng chưa tạo thành APK và chưa được ký bởi keystore. Đồng thời, nó hạn chế việc tạo APK và đăng nhập vào Google Play.

Khi dùng gói ứng dụng để phát hành ứng dụng, nhà phát triển có thể giảm kích thước ứng dụng, đơn giản hóa bản phát hành và tận dụng các tính năng phân phối nâng cao. 

Tại sao AAB lại được Google sử dụng để thay thế APK?

Về nguyên tắc, Google Play sử dụng gói ứng dụng để tạo và phân phối các file APK được tối ưu hóa cho từng cấu hình thiết bị. Vì vậy, chỉ có code và tài nguyên cần thiết cho thiết bị mới được tải xuống để chạy ứng dụng. Nhà phát triển không còn phải tạo, ký và quản lý nhiều file APK để tối ưu hoá dành cho việc hỗ trợ các thiết bị khác nhay. Còn người dùng, họ được nhận các bản tải xuống nhỏ hơn và tối ưu hoá hơn.

Google Play Error

Đa số mọi project phát triển ứng dụng sẽ không đòi hỏi nhiều thời gian để tạo các gói ứng dụng hỗ trợ việc phân phối file APK đã tối ưu hoá. Có thể hiểu, nếu bạn đã sắp xếp code và tài nguyên của ứng dụng theo các quy ước đã thiết lập, chỉ cần  tạo Android App Bundle đã ký bằng Android Studio hoặc sử dụng dòng lệnh rồi upload chúng lên Google Play. Lúc này, tất cả đã được tối ưu kể cả phân phát APK, nó sẽ không còn rườm rà như xưa.

Nếu sử dụng định dạng gói ứng dụng để xuất bản ứng dụng của mình, nhà phát triển có thể tuỳ ý tận dụng Play Feature Delivery. Nó cho phép thêm mô-đun tính năng vào project ứng dụng của mình. Các mô-đun này chứa các tính năng và tài nguyên trong ứng dụng của bạn. Dựa vào các điều kiện mà bạn chỉ định hoặc có sẵn sau thời điềm chạy (runtime)  để tải xuống bằng Play Core Library.

Về phía các nhà phát triển game, họ sử dụng Play Asset Delivery khi xuất bản các gói ứng dụng. Đây là giải pháp của Google Play để phân phối một lượng lớn nội dung game cung cấp cho các nhà phát triển những phương thức phân phối linh hoạt và hiệu suất cao.

Dung lượng tải xuống được nén bị giới hạn

Khi xuất bản bằng Android App Bundles, nó giúp người dùng cài đặt ứng dụng với dung lượng tải xuống nhỏ nhất có thể và tăng giới hạn dung lượng tải xuống được nén lên 150MB. Ví dụ, khi người dùng tải xuống ứng dụng, tổng dung lượng của các file APK nén được yêu cầu để cài đặt ứng dụng (ví dụ: APK cơ sở + APK cấu hình) không được lớn hơn 150MB. Mọi lượt tải xuống tiếp theo, chẳng hạn như tải xuống mô-đun tính năng (và các APK cấu hình của nó) theo yêu cầu, cũng phải đáp ứng giới hạn dung lượng tải xuống được nén này. Gói nội dung không góp phần vào giới hạn dung lượng này, nhưng chúng có những giới hạn kích thước khác.

Còn khi bạn upload gói ứng dụng của mình, nếu Play Console tìm thấy bất kỳ bản tải xuống nào có thể có của ứng dụng hoặc các tính năng theo yêu cầu của nó lớn hơn 150MB, thì bạn sẽ gặp lỗi.

Tuy nhiên, chúng ta cần chú ý rằng Android App Bundles không hỗ trợ file mở rộng APK (* .obb). Cho nên, nếu bạn gặp phải lỗi này khi xuất bản gói ứng dụng của mình, hãy sử dụng một trong các tài nguyên sau để giảm kích thước tải xuống APK đã nén:

  • Đảm bảo bạn bật tất cả các APK cấu hình bằng cách đặt enableSplit = true cho từng loại APK cấu hình. Điều này đảm bảo rằng người dùng chỉ tải xuống code và tài nguyên họ cần để chạy ứng dụng trên thiết bị của họ.
  • Đảm bảo bạn thu nhỏ ứng dụng của mình bằng cách xóa code và tài nguyên không sử dụng.
  • Làm theo các phương pháp hay nhất để giảm thêm dung lượng ứng dụng.
  • Cân nhắc chuyển đổi các tính năng chỉ được một số người dùng sử dụng thành những mô-đun tính năng mà ứng dụng của bạn có thể tải xuống sau này theo yêu cầu. Lưu ý rằng điều này có thể yêu cầu một số quá trình cấu trúc lại ứng dụng, vì vậy trước tiên hãy đảm bảo thử các đề xuất khác được mô tả ở trên.

Vấn đề với Android App Bundles khi sử dụng

Dưới đây là các sự cố đã xuất hiện khi build hoặc phân phối ứng dụng với Android App Bundles.

  • Chỉ cài đặt được một phần các ứng dụng sideload – nghĩa là các ứng dụng không được tải bằng Google Play Store và thiếu một hoặc nhiều APK phân tách bắt buộc – không cài đặt thành công trên tất cả các thiết bị được Google chứng nhận và thiết bị chạy Android 10 (API cấp 29) trở lên. Khi tải xuống ứng dụng thông qua Google Play Store, Google đảm bảo rằng tất cả các thành phần bắt buộc của ứng dụng đã được cài đặt.
  • Nếu bạn sử dụng những công cụ sửa đổi các bảng tài nguyên động, những APK được tạo từ các gói ứng dụng có thể hoạt động không mong muốn. Vì vậy, khi xây dựng một gói ứng dụng, bạn nên vô hiệu hóa các công cụ đó.
  • Hiện có thể cấu hình các thuộc tính trong cấu hình build của mô-đun tính năng xung đột với những thuộc tính từ mô-đun cơ sở (hoặc mô-đun khác). Ví dụ, bạn có thể đặt buildTypes.release.debuggable = true trong mô-đun cơ sở và đặt nó thành false trong mô-đun tính năng. Hãy nhớ rằng, theo mặc định, các mô-đun tính năng kế thừa một số cấu hình build từ mô-đun cơ sở. Vì vậy, hãy đảm bảo rằng bạn hiểu những cấu hình nào bạn nên giữ và những cấu hình nào bạn nên bỏ qua, trong cấu hình build mô-đun tính năng của mình.


BÀI VIẾT MỚI NHẤT

Bài viết liên quan