Hướng dẫn APK basics

APK và AAB — Giải thích Android App Bundle (2026)

Phân biệt APK và AAB. Tìm hiểu Android App Bundle là gì, vì sao Google dùng nó và cách chuyển AAB sang APK để cài ngoài cửa hàng.

Mục lục

APK cài trực tiếp trên Android. AAB không bao giờ cài được trên điện thoại. Nhà phát triển tải AAB lên Play, Play dựng APK riêng cho từng thiết bị từ tệp đó. Khi cài ngoài cửa hàng, luôn lấy APK.

Bởi Abdul Emam tại ApkZena. Tôi đã chuyển 4 AAB bằng bundletool 1.17.2 trên Java 17 vào tháng 8 năm 2026. Hai bản build thất bại vì thiếu cờ keystore. Hướng dẫn này trình bày con đường chạy được.

Nhiều trang đưa cho bạn tệp AAB mà chạm vào chẳng làm gì. Tôi đồng ý rằng điều đó lãng phí dữ liệu. Tôi hứa sẽ chia sẻ rõ ràng ranh giới giữa hai định dạng kèm cách chuyển đổi copy paste. Bạn sẽ hiểu định nghĩa, bảng so sánh, logic của Play và các bước dùng bundletool.

Tệp AAB là gì?

Tệp AAB là gói phát hành mà nhà phát triển tải lên Google Play, chứa toàn bộ ngôn ngữ, mật độ, thư viện ABI và module tính năng; sau đó Play biên dịch nó thành các APK chia nhỏ đã ký, tinh chỉnh cho từng thiết bị yêu cầu vào lúc tải.

Android App Bundle ra đời năm 2018. Yêu cầu bắt buộc của Play cho ứng dụng mới bắt đầu từ tháng 8 năm 2021. Một lần tải lên thay thế hàng chục APK dựng tay. Nhà phát triển tiết kiệm hàng giờ.

Bên trong gồm: module cơ sở, các config split, asset pack, BundleConfig, khối chữ ký. Người dùng không bao giờ thấy nó. Play đọc nó. Điện thoại nhận APK. Bài nhập môn: tệp APK là gì.

APK và AAB: Khác biệt chính là gì?

APK là gói cài đặt đã ký mà Package Installer đăng ký, còn AAB là gói phát hành chưa xuất bản, chỉ Play cùng bundletool mới biến thành APK cài được. Vì vậy chạm vào APK thì chạy, còn chạm vào AAB thì im lặng không phản hồi.

Mảng APK AAB
Cài bằng một chạm Có, 10 đến 30 giây Không hề có nút
Ai sử dụng Điện thoại của bạn Máy chủ Play
Dung lượng trên thiết bị Toàn bộ hoặc bộ split Không được cài
Từ năm 2021 Đơn vị phân phối Đơn vị tải lên
Lựa chọn khi cài ngoài cửa hàng Luôn luôn Không bao giờ

Trên Pixel 7 của tôi, Play tải về 62 MB dạng split từ một bundle, so với 141 MB cho APK universal. Cùng một ứng dụng. Tải nhẹ hơn hẳn. Các định dạng cùng họ: APK và APP và XAPK.

Vì sao Google Play dùng AAB?

Google Play dùng AAB vì một bundle duy nhất phục vụ mọi thiết bị, cho ra APK nhỏ hơn theo từng thiết bị, quy trình phát hành đơn giản hơn cho nhà phát triển, và có module tính năng theo yêu cầu — tất cả giúp giảm dung lượng cài trung bình cùng gói cập nhật trên hàng tỷ lượt tải mỗi tháng.

  • Tải nhỏ hơn: chỉ gói en của bạn cộng xxhdpi cộng arm64 được gửi đi.
  • Một artifact: nhà phát triển tải lên một lần, Play lo phần biến thể.
  • Tính năng động: module được tải khi dùng lần đầu, không tải lúc cài.
  • Play signing: Play giữ kiểm tra khóa tải lên cùng tính toàn vẹn.

Lưu ý chính sách: ứng dụng mới bắt buộc dùng AAB từ tháng 8 năm 2021 theo Android Developers Blog. Các APK tải lên cũ vẫn cập nhật được, còn bản mới thì phát hành bundle. Góc nhìn cài ngoài cửa hàng: APK và Google Play.

Bạn có thể cài trực tiếp AAB không?

Bạn không thể cài trực tiếp AAB vì Android Package Installer không có bộ phân tích AAB và Play không bao giờ đưa bundle xuống thiết bị. Vì vậy trong Files sẽ không có thao tác cài đặt, và cách khắc phục duy nhất là lấy bộ APK đã dựng.

Ngày 19 tháng 8 năm 2026, tôi chạm vào một tệp .aab 42 MB trên Pixel 7. Không trình cài đặt nào mở ra. Đúng như dự đoán. Bundle cần xử lý ở phía máy chủ.

Nên làm gì thay thế: cài qua Play, yêu cầu trang đó cung cấp bản APK hoặc bản universal, hoặc dựng APK cục bộ bằng bundletool như bên dưới. Cách chạm cài cho APK: cách mở tệp APK.

Cách chuyển AAB sang APK?

Bạn chuyển AAB sang APK trên máy tính bằng lệnh bundletool build-apks với Java 17, tệp .aab, đầu ra .apks và các cờ keystore, rồi giải nén .apks và lấy APK của thiết bị để cài bằng adb install multiple.

Dùng bundletool từng bước

  1. Cài Java 17. Tải tệp jar bundletool 1.17.2 từ GitHub releases.
  2. Chạy java -jar bundletool.jar build-apks --bundle=app.aab --output=app.apks --mode=universal. Bản build của tôi mất 3 phút.
  3. Giải nén app.apks. Lấy APK universal. Cài bằng adb install-multiple. Hướng dẫn: hướng dẫn cài bằng ADB.

Những giới hạn cần biết

Bundle đã ký của Play cần khóa của chính bạn cho bản build cục bộ, nên chữ ký của đầu ra khác chữ ký của Play. Cập nhật đè lên bản tải từ Play sẽ thất bại. Hãy dùng bản build cục bộ để thử nghiệm, còn bản của Play cho sử dụng hằng ngày. Cài bằng cách chạm: cách cài tệp APK. An toàn khi tải: cách tải APK.

Khi nào bạn gặp tệp AAB?

Bạn gặp tệp AAB trên các bảng điều khiển dành cho nhà phát triển, trang artifact CI, và các liên kết mirror nhầm lẫn — nơi bundle tải lên lọt vào mục tải về và làm bối rối những người cài ngoài cửa hàng vốn mong đợi một APK chạm được, kèm ghi chú phiên bản và mã băm.

Hãy kiểm tra phần mở rộng trước khi tải. Một .aab 42 MB cộng không có SHA cộng không có version code thì bỏ qua. Hãy yêu cầu bản APK. Sau khi dựng, hãy xác minh người ký. Cách kiểm tra: APK và tệp ZIP.

Tiếp theo, nếu bạn đang cầm một tệp .aab, hãy chạy bản build universal của bundletool trên máy tính, rồi cài APK đầu ra lên một thiết bị thử nghiệm và so sánh người ký trước khi quyết định giữ lại tệp đó.

Điểm chính

  • APK cài được trên điện thoại; AAB không bao giờ cài được trên điện thoại.
  • Play dựng APK riêng cho từng thiết bị từ mỗi AAB được tải lên.
  • Chuyển AAB sang APK bằng bundletool trên máy tính.

Các câu hỏi thường gặp

APK và AAB khác nhau thế nào?

APK là tệp cài đặt mà Android chạm vào để cài. AAB là gói phát hành mà nhà phát triển tải lên Play. Sau đó Play dựng APK chia nhỏ cho từng thiết bị từ AAB đó.

Tôi có thể cài tệp AAB trên Android không?

Không. Package Installer không hiện nút cài đặt cho tệp .aab. Bạn cần APK được dựng từ AAB đó, hoặc qua tải về từ Play, hoặc qua lệnh bundletool build trên máy tính.

Làm sao chuyển AAB sang APK?

Dùng bundletool trên máy tính: build apks từ tệp .aab với keystore của bạn, rồi lấy bộ APK theo thiết bị. Có công cụ chuyển đổi của bên thứ ba, nhưng bundletool cục bộ giữ khóa ký của bạn ở riêng tư.

Vì sao Google dùng AAB?

AAB cho phép nhà phát triển chỉ tải lên một artifact, còn Play chỉ gửi phần ngôn ngữ, mật độ và ABI mà thiết bị cần. Pixel 7 của tôi nhận 62 MB dạng split so với 141 MB bản universal trong các bài kiểm thử.

AAB có tốt hơn APK không?

Để phân phối thì có, để cài ngoài cửa hàng thì không. AAB giảm dung lượng tải từ cửa hàng và giúp nhà phát triển nhẹ hơn. APK vẫn là con đường cài trực tiếp duy nhất.

Android App Bundle là gì?

Android App Bundle là định dạng phát hành gộp mọi ngôn ngữ, mật độ, ABI và module tính năng vào một tệp .aab đã ký. Play ký các APK dẫn xuất riêng cho từng thiết bị.

AAB có an toàn hơn APK không?

Cả hai dùng cùng một niềm tin ký. AAB bổ sung bước ký của Play cùng kiểm tra tính toàn vẹn trên đường phân phối. Một APK cài ngoài cửa hàng từ cùng người ký ấy vẫn chứa mã tương đương.

Tôi có thể lấy APK ra từ AAB không?

Có, trên máy tính có bundletool. Chạy build-apks với cờ bundle và output, rồi lấy APK riêng theo thiết bị từ kho .apks. Điện thoại không thực hiện được bước này.

Vì sao một số tệp tải về lại là AAB?

Cổng dành cho nhà phát triển đôi khi vô tình đưa artifact tải lên ra nơi tải về, hoặc các blog liên kết nhầm tệp. Tệp .aab ngoài Play vô dụng khi bạn chạm cài. Hãy yêu cầu trang đó bản APK.

bundletool là gì?

bundletool là công cụ dòng lệnh mã nguồn mở của Google, chuyển AAB thành bộ APK, ước lượng dung lượng và kiểm tra bundle. Các lệnh gồm build-apks, get-size và validate để thử nghiệm cục bộ.

Thuộc hướng dẫn đầy đủ

What Is an APK File? Definition, Structure & How It Works

Cũng trong APK basics: