APK và App Bundle: Tại sao Google lại thay đổi định dạng app của Android?

vn_ninja
11/7/2021 15:24Phản hồi: 25
APK và App Bundle: Tại sao Google lại thay đổi định dạng app của Android?
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?

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.

1.Quy_Trình_ABB.jpg

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.

2.Play_Store_ABB.jpg

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.

3.China_App_Store.jpg

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.

4.Amazon_App_Store_Windows_11.jpg

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
25 bình luận
Chia sẻ

Xu hướng

Chủ yếu dành cho Dev.
Đối với thị trường Android TQ thì sao nhỉ? Bên TQ không có Play Store cũng như Google Services. Rõ ràng là Devs trong tương lai sẽ không thể build ra file APK như trước nữa, mà để có file APK thì bắt buộc phải submit app ở dạng AAB lên Play Store trước rồi mới tải lại được APK trong khi ở TQ thì Play Store hoàn toàn bị chặn.
@gauto988 Thì dev bên TQ vẫn xuất APK lên các chợ của TQ thôi. Google nó chỉ ép dev upload AAB lên Play Store thôi mà. Còn trong tương lai với các bản android kế tiếp mà Google nó chặn khả năng cài APK và Android studio ko cho xuất APK thì mới đáng lo. Mà thực chất vẫn có tool để gộp các APKs lại thành 1 APK mà.
LocDT
TÍCH CỰC
3 năm
@HARRYTRINH9 Nếu trong tương lai mà Android Studio không cho xuất ra APK thì lập tức sẽ có tool thay thế làm việc đó vì nhu cầu up lên các store khác cũng rất nhiều (Ít nhất là toàn bộ TQ). Lúc đó vị thế của Android Studio sẽ bị giảm đi đáng kể và có lẽ đó không phải điều Google mong muốn.
@LocDT Chỉ lo ngại bản android kế tiếp nó ko cho sideload nữa.
LocDT
TÍCH CỰC
3 năm
@HARRYTRINH9 Cái đó thì lại càng khó xảy ra. Chắc Google không muốn bị kiện như Apple. Hơn nữa thiết bị không phải do Google sản xuất nên nếu cấm side load thì Google còn dễ bị kiện hơn nữa.
Ops456789
ĐẠI BÀNG
3 năm
Theo mình thì tất nhiên là sẽ gây rắc rối thêm cho nhà phát triển nhưng nếu như họ đã muốn đưa ứng dụng lên cửa hàng bên thứ ba thì thực sự cũng không khác mấy việc thay Play Service bằng Framework của Huawei hay Amazon. Có chăng mấy cửa hàng app lậu thôi.
@Ops456789 Đúng vậy, chủ yếu là giết mấy trang store lậu thôi, sẽ ko còn chuyện bẻ khóa app free nữa, vì các trang này khó download apk full từ google play dc nữa do mỗi device sẽ có 1 file apk riêng, rồi chứng chỉ (signed key) cũng từ google, nếu user cài nó sẽ cảnh báo
Còn nếu app chính chủ thì dev chỉ việc build apk full rồi up lên store khác thôi
Bài dài quá. Tóm tắt cho ae lười đọc là: Chuyển qua AAB thì User được lợi vì ko phải tải thêm rác về máy, vì thế file cài nhẹ hơn và đỡ tốn 4G hơn. Hết.

Còn lại để ae Dev lo.
@zer0_7 Lo ngại nhất chính là Google có thể biến thành ác quỷ bất cứ lúc nào.
@zer0_7 Ừ.
Hot.Buns
TÍCH CỰC
3 năm
Tải về vẫn APK thôi
nhan92
ĐẠI BÀNG
3 năm
apple đã làm từ 5 năm trc rùi
Tóm lại là nước bài GG muốn kiểm soát app tốt hơn (cả tích cực lẫn tiêu cực), khả năng gây khó dễ với những thứ như HarmonyOS hay win 11
Mình thì thấy nó nhẹ hơn hẳn. Mấy cái key với pass khi build cũng hay lẫn vì trước tập tành hay tạo nhiều. Sau cần update app thì mò lại key mất thời gian phết. Có app còn chả nhớ key để đâu nên đành bỏ
điểm quan trọng nhất là Android Studio sẽ cho phép build ra APK đến khi nào, liệu có một ngày Google nó chỉ cho build ra ABB mà k cho ra APK hay ko?
vieted
TÍCH CỰC
3 năm
Khỏi sideload
tminhdn
TÍCH CỰC
3 năm
Để táng chết cụ mấy thằng ăn hôi như Microsoft chứ sao nữa :v
Định dạng nào cũng đc
APK bản chất cũng giống như file Zip.
Ng dùng thì cứ cài thôi kệ
Guadiola
TÍCH CỰC
3 năm
Tưởng không cài được file APK từ bên ngoài chứ
IMG_20210705_122500.jpg
S.O.J
CAO CẤP
3 năm
hay 😁

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019