Android App Bundle (AAB) là gì?
Android App Bundle là một định dạng xuất bản bao gồm tất cả các tài nguyên và code đã biên dịch của ứng dụng, đồng thời hạn chế việc tạo APK và đăng nhập vào Google Play.
Tại sao AAB lại được sử dụng để thay thế APK?
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ỉ code và tài nguyên cần thiết cho một thiết bị cụ thể mới được tải xuống để chạy ứng dụng. Bạn không còn phải tạo, ký và quản lý nhiều file APK để tối ưu hóa hỗ trợ cho các thiết bị khác nhau và người dùng nhận được những bản tải xuống nhỏ hơn, được tối ưu hóa tốt hơn.
Hầu hết mọi dự án ứng dụng sẽ không đòi hỏi nhiều nỗ lực để tạo các gói ứng dụng hỗ trợ việc phân phối những file APK được tối ưu hóa. Ví dụ, 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. Khi đó, việc phân phát APK được tối ưu hóa sẽ trở thành một lợi ích tự có.
Khi sử dụng định dạng gói ứng dụng để xuất bản ứng dụng của mình, bạn cũng có thể tùy ý tận dụng Play Feature Delivery, cho phép bạn thêm mô-đun tính năng vào dự án ứng dụng của mình. Các mô-đun này chứa những tính năng và tài nguyên chỉ được bao gồm trong ứng dụng của bạn, dựa trên 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.
Những nhà phát triển game xuất bản ứng dụng của họ với các gói ứng dụng có thể sử dụng Play Asset Delivery: 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.
Xem video sau để biết tổng quan về lý do bạn nên xuất bản ứng dụng của mình bằng Android App Bundles.
Giới hạn dung lượng tải xuống được nén
Xuất bản bằng Android App Bundles 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. Nghĩa là, 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.
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.
Xin lưu ý rằng Android App Bundles không hỗ trợ file mở rộng APK (* .obb). Vì vậy, 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.
Một số vấn đề với Android App Bundles
Sau đây là các sự cố hiện đã biết khi xây dựng 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.