Trang chủ Thủ Thuật APK so với App Bundle: Tại sao Google lại thay đổi định...

APK so với App Bundle: Tại sao Google lại thay đổi định dạng ứng dụng của Android?

0
47
Android robot

APK so với App Bundle: Tại sao Google lại thay đổi định dạng ứng dụng của Android?

Android robot
yên tĩnh / Shutterstock.com

Ứng dụng Android trước đây được phân phối dưới dạng APK (Gói Android). APK chứa phiên bản đã biên dịch của ứng dụng, cùng với các tài nguyên phương tiện quan trọng như biểu tượng và âm thanh. Chúng cũng bao gồm tệp kê khai, cung cấp thông tin ứng dụng cho hệ thống Android và một bộ chứng chỉ và khóa ký xác minh danh tính của nhà xuất bản.

Vào tháng 5 năm 2018, Google đã tung ra 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 với APK. Android App Bundles (AAB) hoàn thành vai trò tương tự như APK nhưng có sự khác biệt đáng kể về triển khai.

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. Từ cuối tháng 8, Cửa hàng Play sẽ yêu cầu gửi các ấn phẩm ứng dụng mới dưới dạng AAB. Người dùng cuối chỉ sử dụng Cửa hàng Play sẽ không cần phải làm gì cả. Đối với các nhà phát triển, câu chuyện phức tạp hơn một chút.

Lợi ích của gói ứng dụng

AAB ban đầu được giới thiệu như một cách để giải quyết một số thách thức đóng gói phổ biến 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, đường cơ sở hiệu suất và kiến trúc CPU. Định dạng APK không mở rộng quy mô để đáp ứng sự đa dạng này vì mỗi gói chứa tất cả tài nguyên của ứng dụng.

Nếu bạn cài đặt một ứng dụng trên điện thoại của mình, bạn không thực sự cần tải xuống các biến thể máy tính bảng có độ phân giải cao về đồ họa của nó. Tuy nhiên, với APK, thông thường bạn sẽ nhận được mọi biến thể, khiến lượt tải xuống lớn hơn và tăng sử dụng bộ nhớ. Nếu nhà phát triển muốn cung cấp các bản dựng hợp lý hơn, họ cần phải biên dịch và ký nhiều APK khác nhau theo cách thủ công.

Quảng cáo

App Bundle có một cách tiếp cận khác. Theo thiết kế, họ “gói” một số phiên bản khác nhau của ứng dụng thành một gói hợp lý. Sau đó, Cửa hàng Play chỉ gửi các bit có liên quan đến từng thiết bị yêu cầu cài đặt. Nó sẽ sản xuất gói phù hợp theo yêu cầu cho từng người dùng, vì vậy người dùng Mỹ có thiết bị Intel 10 inch sẽ nhận được bản tải xuống khác cho người Đức có điện thoại ARM 5 inch. Điều quan trọng là các thiết bị vẫn nhận được APK – người dùng sẽ không bao giờ tương tác trực tiếp với Gói ứng dụng. Sự khác biệt là các APK được tạo động, trên đám mây.

App Bundle cũng được hưởng lợi từ việc tải mô-đun tiện ích bổ sung đơn giản hơn và hỗ trợ nâng cao cho các nội dung lớn như nội dung trò chơi. Theo Google, tất cả những điều này thường dẫn đến giảm 15% kích thướ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 đối với APK?

Google sẽ loại bỏ dần hỗ trợ cho các APK từ tháng 8 năm 2021. Các ứng dụng mới được gửi đến Cửa hàng Play sẽ cần được phát hành dưới dạng gói ứng dụng. Các ứng dụng dựa trên APK hiện có sẽ vẫn được hỗ trợ và các nhà phát triển sẽ có thể tiếp tục phát hành các bản cập nhật. Các ứng dụng này được mô tả là “hiện được miễn”, cho thấy các bản cập nhật có thể cần được phát hành dưới dạng AAB trong tương lai.

Theo Google, thay đổi này đang được thực hiện để nhiều người dùng hơn sẽ được hưởng lợi từ các ưu điểm của App Bundle. Từ quan điểm của người dùng cuối điển hình, rất khó để tranh luận với lời hứa của App Bundles: tải xuống nhỏ hơn và giảm dung lượng lưu trữ sẽ được nhiều người hoan nghênh, đặc biệt là những người dùng trên các thiết bị cấp thấp và kết nối internet chậm.

Người dùng trên các phiên bản Android cũ hơn sẽ không thấy được những lợi ích vì thiết bị của họ sẽ không thể tập hợp các gói “chia nhỏ” thành một ứng dụng hoạt động. Mặc dù vậy, các phiên bản hệ điều hành lỗi thời vẫn có thể cài đặt các ứng dụng App Bundle từ Cửa hàng Play – hệ thống đóng gói sẽ nhận ra rằng nó đang xử lý một thiết bị cũ hơn và thay vào đó phân phát APK tất cả trong một thông thường.

Điều gì về mặt hạn chế?

Trong khi các lợi ích của tiêu đề là không nghi ngờ gì, App Bundle có một nhược điểm đáng kể đối với các nhà phát triển cũng như người dùng thành thạo. Vì hệ thống App Bundle tập trung vào việc tạo APK động trên đám mây cho các APK đã ký, nên các nhà phát triển cần chuyển giao khóa ký ứng dụng của họ cho Google. Thay vì các nhà phát triển ký các bản cập nhật ứng dụng trong cơ sở hạ tầng xây dựng của riêng họ, Google sẽ sử dụng Gói ứng dụng và chuyển đổi nó thành APK đã ký.

Quảng cáo

Quá trình ký 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 được cài đặt. Đó là một phần quan trọng của hệ sinh thái ngăn chặn những kẻ xấu tạo ra các ứng dụng độc hại âm thầm ghi đè các bản tải xuống chính hãng. Google hứa hẹn rằng các nhà phát triển sẽ có thể cung cấp khóa của riêng họ nhưng chúng vẫn cần được lưu giữ trong Cửa hàng Play.

Việc tin tưởng Google lưu trữ khóa ký giúp công ty kiểm soát nhiều hơn việc phân phối ứng dụng Android. Bất kỳ ai xâm nhập thành công Cửa hàng Play đều có thể bắt đầu xuất bản các bản cập nhật ứng dụng cho tài khoản nhà phát triển, vì tất cả các khóa ký sẽ được tập trung trong cơ sở hạ tầng của Google.

Hơn nữa, Google hiện có thể tự xuất bản các bản cập nhật ứng dụng, có lẽ nếu chính phủ buộc nó phải làm vậy. 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, nó nắm giữ chìa khóa cho vương quốc của nhà phát triển, nó có thể tuân thủ các yêu cầu cài đặt một cách bí mậ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ó.

Cơ quan chính phủ có thể yêu cầu Google cài đặt ứng dụng nhắn tin được mã hóa đã sửa đổi trên thiết bị của người dùng mục tiêu không? Một yêu cầu như vậy có thể cho phép cơ quan chặn các tin nhắn, mà mục tiêu không phải là người khôn ngoan hơn. App Bundle và tính năng ký kết được lưu trữ làm cho kịch bản có thể xảy ra về mặt lý thuyết.

Rủi ro được cho là được giảm thiểu bởi một hệ thống “tính minh bạch của mã”. Đ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 cách để xác minh rằng các APK đã tải xuống khớp với gói đã được gửi đến Cửa hàng Play, loại trừ khả năng bị xâm nhập.

Tuy nhiên, Android không thực sự kiểm tra các chữ ký về tính minh bạch của mã, vì vậy cộng đồng có quyền xây dựng công cụ xung quanh nó. Hơn nữa, tính minh bạch của mã hoàn toàn là tùy chọn và chỉ được bật khi APK bao gồm tệp minh bạch. Vì Google đã nắm giữ các khóa cần thiết để tạo APK mới, nên Google có thể xóa tệp minh bạch mã bất cứ khi nào họ muốn.

Gói ứng dụng và Cửa hàng ứng dụng của bên thứ ba

App Bundle cũng là một mối đe dọa đối với tính chất mở của hệ sinh thái Android. Trong những năm gần đây, Google đang khẳng định vai trò quản lý mạnh mẽ hơn. App Bundle là một cú hích khác đối với các cửa hàng ứng dụng bên thứ ba cung cấp tải xuống APK trực tiếp.

Quảng cáo

Vì các nhà phát triển bây giờ sẽ cần phải biên dịch các Gói ứng dụng, các bản dựng APK đang bị loại bỏ. Có thể chỉ là vấn đề thời gian trước khi Google tắt hoàn toàn cài đặt APK trực tiếp hoặc xóa khả năng tạo APK khỏi các bản phát hành Android Studio chính thức.

Hiện tại, các nhà phát triển có thể tải xuống các APK độc lập đã ký từ Cửa hàng Play, sau khi họ gửi Gói ứng dụng. Các APK này sẽ sẵn sàng để tải lên các cửa hàng ứng dụng của bên thứ ba, do đó, không có rủi ro ngay lập tức đối với mô hình triển khai này. Tuy nhiên, đó vẫn là một sự bất tiện dành cho nhà phát triển – bạn phải tải xuống các APK đã ký của mình 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 bạn.

Google đã công bố việc chuyển đổi bắt buộc sang App Bundles chỉ vài ngày sau khi Microsoft công bố Windows 11 với sự hỗ trợ cho các ứng dụng Android từ Amazon App Store. Mặc dù việc chuyển sang App Bundles đã được vài năm nhưng quyết định của Google hiện tại có thể nhằm hạn chế tác động của quan hệ đối tác Microsoft / Amazon, vốn sẽ chỉ hỗ trợ các APK thông thường.

Phần kết luận

Android App Bundles 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ị cuối cùng vẫn sẽ nhận được 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ệ số hình thức thiết bị và 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 chúng 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 hơ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 khóa ký, đ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 dọa các mặt tiền cửa hàng của bên thứ ba.

How to Add Social Media Embeds To Your Website (Open Graph Meta Tags)

Cách thêm Nhúng phương tiện truyền thông xã hội vào trang web của bạn (Thẻ meta đồ thị mở)

How to Use Service Profiles to Simplify Stacks in Docker Compose

Cách sử dụng hồ sơ dịch vụ để đơn giản hóa ngăn xếp trong Docker Compose

Getting Started With GitHub’s Project Tools

Bắt đầu với các công cụ dự án của GitHub

How to Create a Semaphore in Bash

Cách tạo Semaphore bằng Bash

Why GitHub’s Copilot Isn’t The End of Programming

Tại sao Copilot của GitHub không phải là kết thúc của lập trình

What is Docker’s BuildKit and Why Does It Matter?

BuildKit của Docker là gì và tại sao nó lại quan trọng?

Dịch từ: https://www.cloudsavvyit.com/12544/apk-vs-app-bundle-why-is-google-changing-androids-app-format/

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây