Các ứng dụng Android trước đây được phân phối dưới định dạng APK (Android Package). Một file APK sẽ chứa phiên bản đã biên dịch của một ứng dụng cùng với các tài nguyên đa phương tiện quan trọng như icon và âm thanh. Ngoài ra cũng sẽ bao gồm một file kê khai, cung cấp thông tin ứng dụng cho hệ thống Android và một bộ chứng chỉ cộng với các signing keys (khoá chứng thực danh tính) của nhà xuất bản ứng dụng.
Vào tháng 5 năm 2018, Google đã giới thiệu một định dạng đóng gói ứng dụng mới nhằm giải quyết một số thiếu sót đang tồn tại với APK. Android App Bundles (AAB) sẽ đóng vai trò tương tự như APK hiện tại nhưng có sự khác biệt đáng kể về việc triển khai ứng dụng.
Tại Google I/O 2021, Google đã thông báo rằng AAB sẽ trở thành định dạng ứng dụng Android mặc định và từ cuối tháng 8 này, Play Store sẽ yêu cầu các ứng dụng mới đưa lên Play Store sẽ phải dùng định dạng AAB. Người dùng cuối sử dụng Play Store sẽ không phải làm gì cả nhưng câu chuyện sẽ phức tạp hơn chút đối với các nhà phát triển. Vậy tại sao Google lại thay đổi định dạng ứng dụng của Android?
AAB ban đầu được giới thiệu như một giải pháp để giải quyết một số thách thức trong việc đóng gói ứng dụng trong hệ sinh thái Android. Android chạy trên hàng nghìn thiết bị với nhiều kích thước màn hình, hiệu năng, ngôn ngữ và kiến trúc CPU khác nhau, và định dạng APK thông thường sẽ đóng gói tất cả tài nguyên của ứng dụng để hỗ trợ tất cả những thứ trên.
Vào tháng 5 năm 2018, Google đã giới thiệu một định dạng đóng gói ứng dụng mới nhằm giải quyết một số thiếu sót đang tồn tại với APK. Android App Bundles (AAB) sẽ đóng vai trò tương tự như APK hiện tại nhưng có sự khác biệt đáng kể về việc triển khai ứng dụng.
Tại Google I/O 2021, Google đã thông báo rằng AAB sẽ trở thành định dạng ứng dụng Android mặc định và từ cuối tháng 8 này, Play Store sẽ yêu cầu các ứng dụng mới đưa lên Play Store sẽ phải dùng định dạng AAB. Người dùng cuối sử dụng Play Store sẽ không phải làm gì cả nhưng câu chuyện sẽ phức tạp hơn chút đối với các nhà phát triển. Vậy tại sao Google lại thay đổi định dạng ứng dụng của Android?
Lợi ích của AAB
AAB ban đầu được giới thiệu như một giải pháp để giải quyết một số thách thức trong việc đóng gói ứng dụng trong hệ sinh thái Android. Android chạy trên hàng nghìn thiết bị với nhiều kích thước màn hình, hiệu năng, ngôn ngữ và kiến trúc CPU khác nhau, và định dạng APK thông thường sẽ đóng gói tất cả tài nguyên của ứng dụng để hỗ trợ tất cả những thứ trên.
Nếu người dùng cài đặt một ứng dụng trên điện thoại của mình thì thật sự không cần phải tải xuống các tài nguyên hỗ trợ cho máy tính bảng của ứng dụng đó. Tuy nhiên với APK, thông thường người dùng sẽ nhận được tất cả khiến dung lượng file tải xuống lớn hơn và tăng mức sử dụng bộ nhớ. Nếu nhà phát triển muốn cung cấp các bản build phù hợp hơn cho từng thiết bị, họ cần phải biên dịch và ký chứng thực nhiều file APK khác nhau một cách thủ công.

App Bundle có một cách tiếp cận khác. Nhà phát triển lúc này sẽ đóng gói một số phiên bản khác nhau của ứng dụng thành một gói logic duy nhất rồi tải lên Play Store. Sau đó khi người dùng tải về thì Play Store sẽ tự sản xuất gói cài đặt phù hợp, có liên quan đến từng thiết bị yêu cầu cài đặt và phù hợp theo yêu cầu của người dùng.
Thứ người dùng tải về vẫn sẽ là một file APK, nhưng sẽ là file APK được phân tách và tạo tự động trên cloud để tối ưu nhất với thiết bị. Ví dụ người dùng Mỹ có thiết bị chạy chip Intel màn hình 10 inch sẽ nhận được một gói cài đặt khác một người Đức dùng điện thoại ARM màn hình 5 inch.
App Bundle cũng giúp cho việc tải các module addon đơn giản hơn và hỗ trợ cho các nội dung lớn như nội dung trò chơi. Theo Google, tất cả những lợi ích này sẽ giảm đến 15% kích thước của gói ứng dụng được tải xuống so với cùng một ứng dụng được phân phối dưới dạng APK.
Điều gì sẽ thay đổi với APK?
Google sẽ dần loại bỏ việc hỗ trợ cho APK từ tháng 8 năm 2021, các ứng dụng mới được gửi đến Play Store sẽ cần được phát hành dưới dạng App Bundle. Các ứng dụng dựa trên APK hiện tại sẽ vẫn được hỗ trợ và các nhà phát triển vẫn có thể tiếp tục phát hành các bản cập nhật. Nhưng các ứng dụng này hiện đang được mô tả là “miễn trừ hiện tại”, nghĩa là các bản cập nhật có thể sẽ phải phát hành dưới dạng AAB trong tương lai.
Từ góc độ người dùng cuối, không có gì để bàn cãi với những gì App Bundles mang lại: file tải xuống nhỏ hơn và giảm được dung lượng lưu trữ sẽ luôn là một điều tốt, đặc biệt là trên các thiết bị cấp thấp và kết nối mạng chậm.
Tuy vậy người dùng các phiên bản Android cũ sẽ không thể được hưởng những lợi ích này. Các phiên bản Android lỗi thời vẫn có thể cài đặt ứng dụng App Bundle từ Play Store nhưng hệ thống đóng gói sẽ nhận ra nó đang xử lý một thiết bị cũ và thay vào đó sẽ phân phối file APK all-in-one thông thường.
Quảng cáo
Hạn chế của AAB
Mặc dù lợi ích là hoàn toàn rõ ràng nhưng App Bundle có một nhược điểm khá lớn đối với các nhà phát triển cũng như người dùng. Vì hệ thống App Bundle tập trung vào việc tạo các signed APK (file APK đã được ký chứng thực) trên cloud nên các nhà phát triển cần chuyển giao signing keys (Khoá chứng thực ứng dụng) của họ cho Google thay vì ký chứng thực các bản cập nhật ứng dụng trên cơ sở hạ tầng của riêng mình. Google sẽ lấy một App Bundle và chuyển đổi nó thành những signed APK.
Quá trình chứng thực cho phép thiết bị Android xác minh rằng các bản cập nhật đến từ cùng một nhà xuất bản với ứng dụng hiện đang được cài trên máy. Đây là một phần quan trọng của hệ sinh thái nhằm giúp ngăn chặn những kẻ xấu tạo ra các ứng dụng độc hại âm thầm ghi đè lên các bản cài đặt chính chủ. Google hứa hẹn rằng các nhà phát triển sẽ có thể cung cấp các signing keys của riêng họ nhưng chúng cần phải được lưu giữ trong Play Store.

Việc Google lưu trữ signing keys sẽ giúp công ty này kiểm soát nhiều hơn đến việc phân phối ứng dụng Android. Bất kỳ ai xâm nhập thành công vào Play Store đều có thể bắt đầu xuất bản các bản cập nhật ứng dụng đến các tài khoản nhà phát triển vì tất cả các signing keys đã được tập trung ở đây.
Thêm vào đó thì Google sẽ có thể tự xuất bản các bản cập nhật ứng dụng, đặc biệt trong trường hợp Chính phủ buộc họ phải làm như vậy. Google hiện đã có khả năng cài đặt ứng dụng trên thiết bị Android một cách âm thầm, giờ đây họ đã nắm giữ “chìa khoá” đến vương quốc của nhà phát triển và có thể cài đặt các bản cập nhật chưa được phê duyệt của các ứng dụng hiện có MỘT CÁCH BÍ MẬT.
Quảng cáo
Các cơ quan Chính phủ có thể yêu cầu Google cài đặt một ứng dụng nhắn tin mã hoá đã được sửa đổi lại trên thiết bị của người dùng mục tiêu không? Có, một yêu cầu như vậy có thể cho phép các cơ quan này chặn các tin nhắn mà những người dùng mục tiêu hoàn toàn không hay biết. App Bundle và tính năng lưu trữ signing keys làm cho kịch bản này về mặt lý thuyết là hoàn toàn có thể thực hiện được.
Rủi ro được cho là sẽ được giảm thiểu bởi một hệ thống gọi là “code transparency”. Điều này nhằm cung cấp cho các nhà phát triển và người dùng cuối một phương thức để xác minh rằng các file APK tải xuống khớp với gói cài đặt đã được gửi đến Play Store, loại trừ khả năng bị xâm nhập. Tuy nhiên Android không thực sự check các chữ ký code transparency này vì vậy mọi thứ lúc này tuỳ vào việc cộng đồng có xây dựng các công cụ xung quanh nó hay không. Hơn nữa, code transparency hoàn toàn là tuỳ chọn và chỉ được bật khi file APK đã bao gồm file transparency, nhưng vì Google đã nắm giữ các khoá cần thiết để tạo APK mới nên họ có thể xoá các file code transparency bất cứ khi nào họ muốn.
Đòn đánh trực diện đến các App Store bên thứ ba
App Bundle cũng là một mối đe doạ đối với tính chất mở của hệ sinh thái Android. Trong những năm gần đây, Google đã ngày càng khẳng định vai trò quản lý mạnh mẽ hơn của mình đối với hệ sinh thái. App Bundle là một cú hích khác đối với các App Store bên thứ ba, nơi mà cung cấp các file APK tải về trực tiếp.

Vì các nhà phát triển bây giờ sẽ cần biên dịch các App Bundle nên các bản build APK đang bị loại bỏ dần dần. Có thể chỉ là vấn đề thời gian trước khi Google tắt hoàn toàn việc cài đặt APK trực tiếp hoặc xoá khả năng tạo APK khỏi các bản phát hành Android Studio sau này.
Hiện tại các nhà phát triển có thể tải về lại các file APK độc lập đã ký chứng thực từ Play Store sau khi gửi App Bundle đi. Sau đó họ có thể đưa các file APK này lên cửa hàng ứng dụng của bên thứ ba nếu muốn, do đó vẫn chưa có rủi ro xảy ra ngay lập tức đối với mô hình này. Tuy nhiên đó vẫn là một sự bất tiện cho các nhà phát triển khi phải tải xuống các signed APK theo cách thủ công hoặc tạo chúng riêng biệt trên máy cục bộ của mình.

Google đã công bố việc chuyển đổi bắt buộc sang App Bundle chỉ vài ngày sau khi Microsoft công bố Windows 11 với khả năng hỗ trợ các ứng dụng Android từ Amazon App Store. Mặc dù việc chuyển sang App Bundle đã diễn ra từ vài năm trước nhưng quyết định của Google hiện tại có thể để nhằm hạn chế tác động của mối quan hệ đối tác Microsoft - Amazon, vốn sẽ chỉ hỗ trợ các file APK thông thường.
Kết luận
AAB là một định dạng tổng hợp ứng dụng mới với hiệu quả cao hơn nhiều so với APK thông thường. Mặc dù các thiết bị về bản chất vẫn sẽ nhận được các file APK nhưng mỗi APK sẽ được điều chỉnh cụ thể cho phù hợp với phiên bản hệ điều hành, hình thái thiết kế cũng như ngôn ngữ hoạt động.
Mặc dù App Bundle nên được hầu hết người dùng Android hoan nghênh nhưng nó không phải là giải pháp hoàn hảo cho các nhà phát triển và hệ sinh thái Android rộng lớn. Mô hình App Bundle giao cho Google nhiều quyền kiểm soát hơn đối với việc phân phối ứng dụng, yêu cầu tiết lộ các signing keys, điều này có thể khiến các “bản cập nhật ứng dụng bắt buộc” trở thành hiện thực đồng thời đe doạ trực tiếp đến các cửa hàng ứng dụng của bên thứ ba.
Nguồn: CloudSavvyit