AAB (Android App Bundle) — είναι μια μορφή δημοσίευσης εφαρμογών Android που αντικατέστησε το APK στο Google Play από το 2021. Σε αντίθεση με το APK, το AAB δεν είναι αρχείο εγκατάστασης — είναι ένα δοχείο από το οποίο το Google Play δημιουργεί δυναμικά βελτιστοποιημένα APK για κάθε συσκευή. Σύμφωνα με τα δεδομένα του Android Developers, 2026, η μορφή μειώνει το μέγεθος της ληφθείσας εφαρμογής κατά μέσο όρο 15% εξαιρώντας τους αχρησιμοποίητους πόρους.
Κύρια σημεία
AAB (Android App Bundle) — είναι μια μορφή δημοσίευσης που αναπτύχθηκε από την Google ως αντικατάσταση του APK για διανομή μέσω του Google Play. Μέσα στο AAB βρίσκεται ένα αρχείο ZIP με επέκταση .aab, που περιέχει μεταγλωττισμένο κώδικα, πόρους και μεταδεδομένα. Βασική διαφορά: το AAB δεν εγκαθίσταται απευθείας στη συσκευή.
Ο προγραμματιστής ανεβάζει το AAB στο Google Play Console. Όταν ο χρήστης επιχειρεί να εγκαταστήσει την εφαρμογή, το Google Play αναλύει τη διαμόρφωση της συσκευής: πυκνότητα οθόνης (DPI), αρχιτεκτονική CPU, γλώσσα και έκδοση Android. Με βάση αυτήν την ανάλυση, δημιουργείται ένα ελάχιστο APK που περιέχει μόνο τα απαραίτητα στοιχεία.
Η Google παρουσίασε το AAB το 2018 στο συνέδριο I/O. Από τον Αύγουστο του 2021, η μορφή έγινε υποχρεωτική για όλες τις νέες εφαρμογές στο Google Play. Οι υπάρχουσες εφαρμογές μπορούν να συνεχίσουν να χρησιμοποιούν APK, αλλά οι νέες πρέπει να δημοσιεύονται μόνο σε μορφή AAB.
Η διαφορά μεταξύ AAB και APK είναι θεμελιώδης: το APK είναι ένα πλήρες αρχείο εγκατάστασης, έτοιμο για εγκατάσταση. Το AAB είναι ένα δοχείο με στοιχεία πηγής που απαιτεί επεξεργασία.
| Παράμετρος | APK | AAB |
|---|---|---|
| Τύπος | Αρχείο εγκατάστασης | Δοχείο δημοσίευσης |
| Εγκατάσταση | Απευθείας στη συσκευή | Μέσω Google Play |
| Μέγεθος | Πλήρες αρχείο | Στοιχεία πηγής |
| Μονάδες | Όλα σε ένα αρχείο | Ξεχωριστές μονάδες |
| Υπογραφή | Προγραμματιστής | Google Play |
| Διανομή | Οποιοδήποτε κανάλι | Google Play |
APK είναι κατάλληλο για διανομή εκτός Google Play — μέσω ιστοσελίδων, email ή εταιρικών συστημάτων MDM. Το AAB είναι συνδεδεμένο με την υποδομή του Google Play και δεν εγκαθίσταται απευθείας. Για τη δοκιμή του AAB χρησιμοποιείται το εργαλείο bundletool, το οποίο προσομοιώνει τη δημιουργία APK στο τοπικό μηχάνημα.
Η εσωτερική δομή του AAB μοιάζει με το APK, αλλά περιέχει πρόσθετους καταλόγους και αρχεία για την περιγραφή των μονάδων και των εξαρτήσεών τους.
| Αρχείο/κατάλογος | Σκοπός |
|---|---|
| base/ | Βασική μονάδα: κώδικας, πόροι, δήλωση |
| BundleConfig.pb | Διαμόρφωση πακέτου σε μορφή protobuf |
| Bundle-metadata/ | Μεταδεδομένα σχετικά με εκδόσεις μονάδων |
| feature/ | Δυναμικές μονάδες (on-demand) |
| assets/ | Περιουσιακά στοιχεία εφαρμογής |
| manifest/ | Δηλώσεις κάθε μονάδας |
Η μονάδα base — είναι υποχρεωτικό στοιχείο του AAB. Περιέχει τον κύριο κώδικα, τους πόρους και τη δήλωση της εφαρμογής. Χωρίς τη μονάδα base, η εφαρμογή δεν μπορεί να δημιουργηθεί. Όλες οι άλλες μονάδες είναι προαιρετικές και συνδέονται μέσω Dynamic Delivery.
Η διαμόρφωση του AAB χρησιμοποιεί Protocol Buffers (protobuf) αντί για XML. Τα αρχεία .pb είναι πιο συμπαγή και αναλύονται ταχύτερα από την υποδομή διακομιστή της Google. Το εργαλείο bundletool μετατρέπει το protobuf σε αναγνώσιμη μορφή για εντοπισμό σφαλμάτων.
Dynamic Delivery — η βασική τεχνολογία στην οποία βασίζεται το AAB. Επιτρέπει την παράδοση στον χρήστη μόνο εκείνων των τμημάτων της εφαρμογής που αντιστοιχούν στη συσκευή και τη γλώσσα του, καθώς και τη φόρτωση πρόσθετων μονάδων κατόπιν αιτήματος.
Οι μονάδες Install-time φορτώνονται μαζί με το βασικό APK κατά την εγκατάσταση. Οι μονάδες Conditional παραδίδονται μόνο όταν πληρούνται οι προϋποθέσεις — για παράδειγμα, μια μονάδα με υλικά για οθόνες 4K. Οι μονάδες On-demand φορτώνονται κατόπιν αιτήματος του χρήστη εντός της εφαρμογής.
Για μεγάλους πόρους (έως 2 GB) χρησιμοποιείται το Play Asset Delivery αντί για αρχεία OBB. Το PAD υποστηρίζει τις ίδιες τρεις λειτουργίες παράδοσης: install-time, fast-follow (αμέσως μετά την εγκατάσταση) και on-demand.
// Φόρτωση on-demand μονάδας μέσω SplitInstallManager
val manager = SplitInstallManagerFactory
.create(context)
val request = SplitInstallRequest
.newBuilder()
.addModule("level_pack_3")
.build()
manager.startInstall(request)
.addOnSuccessListener {
Log.d("AAB", "Μονάδα εγκαταστάθηκε")
}
Κάθε δυναμική μονάδα περιγράφεται από ένα ξεχωριστό αρχείο build.gradle με καθορισμό του τύπου παράδοσης. Η μονάδα μπορεί να έχει τους δικούς της πόρους, κώδικα και δήλωση, ανεξάρτητα από τη βασική εφαρμογή.
Η δημιουργία AAB γίνεται μέσω του Android Gradle Plugin με την εργασία bundleRelease (ή bundleDebug). Το αποτέλεσμα — ένα αρχείο .aab στον κατάλογο build/outputs/bundle/.
Για τη δημιουργία AAB δεν απαιτούνται ειδικές ρυθμίσεις — το Android Gradle Plugin υποστηρίζει πακέτα από προεπιλογή. Αρκεί να καθορίσετε την εργασία bundle αντί για assemble.
// build.gradle.kts — δημιουργία AAB με υπογραφή
android {
bundle {
language {
enableSplit = true
}
density {
enableSplit = true
}
abi {
enableSplit = true
}
}
}
// Εργασία: ./gradlew bundleRelease
Η Google παρέχει το εργαλείο bundletool για τη δημιουργία APK από AAB στο τοπικό μηχάνημα. Η εντολή `bundletool build-apks --bundle=app.aab --output=app.apks` δημιουργεί ένα σύνολο APK για δοκιμή σε διαφορετικές διαμορφώσεις συσκευών.
bundletool μπορεί επίσης να αποσυμπιέσει το AAB, να εμφανίσει τη διαμόρφωσή του και να ελέγξει την ακεραιότητα της υπογραφής πριν από τη μεταφόρτωση στο Google Play Console. Για τον εντοπισμό σφαλμάτων χρησιμοποιείται η εντολή `bundletool dump manifest --bundle=app.aab`, η οποία εμφανίζει τη δήλωση της βασικής μονάδας.
Από προεπιλογή, το AAB διαχωρίζει τους πόρους σύμφωνα με τρεις διαστάσεις: γλώσσα (language), πυκνότητα οθόνης (density) και αρχιτεκτονική CPU (abi). Ο προγραμματιστής μπορεί να απενεργοποιήσει οποιονδήποτε διαχωρισμό στο build.gradle — για παράδειγμα, εάν η εφαρμογή υποστηρίζει μόνο αγγλικά. Η απενεργοποίηση διαχωρισμού σημαίνει ότι οι πόροι για όλες τις παραλλαγές θα συμπεριληφθούν στο βασικό APK.
Resource optimisation — το AAB μετατρέπει αυτόματα το PNG σε WebP χωρίς απώλεια ποιότητας, συμπιέζει αχρησιμοποίητους πόρους και αφαιρεί διπλότυπες συμβολοσειρές. Αυτές οι βελτιστοποιήσεις εφαρμόζονται από την πλευρά του Google Play κατά τη δημιουργία του τελικού APK. Ως αποτέλεσμα, ο χρήστης λαμβάνει ένα APK 15–25% μικρότερο από το πλήρες αρχείο.
Η διαδικασία δημοσίευσης του AAB στο Google Play Console διαφέρει από το APK μόνο στη μορφή του μεταφορτωμένου αρχείου. Η κονσόλα δέχεται .aab, ελέγχει τη δομή, την υπογραφή και τη διαμόρφωση των μονάδων του, στη συνέχεια δημιουργεί APK για κάθε τύπο συσκευής.
Κατά τη μεταφόρτωση του AAB, το Google Play αναλαμβάνει τη διαχείριση των κλειδιών υπογραφής. Ο προγραμματιστής ανεβάζει το πακέτο υπογεγραμμένο με το κλειδί upload και η Google υπογράφει ξανά τα δημιουργημένα APK με το δικό της κλειδί. Αυτό απλοποιεί την εναλλαγή κλειδιών και την αποκατάσταση πρόσβασης σε περίπτωση απώλειας του keystore.
Το Google Play Console παρέχει ενσωματωμένη δοκιμή AAB: μπορείτε να κατεβάσετε το δημιουργημένο APK για μια συγκεκριμένη συσκευή ή να εκτελέσετε εσωτερική δοκιμή μέσω των track Internal Testing, Closed Alpha και Open Beta.
Η μετάβαση στο AAB μπορεί να προκαλέσει προβλήματα, ειδικά σε έργα με μεγάλο αριθμό δυναμικών μονάδων ή περίπλοκη διαμόρφωση πόρων.
Εάν μια δυναμική μονάδα αναφέρεται σε πόρους της βασικής μονάδας με λανθασμένο όνομα, το Google Play απορρίπτει το AAB στο στάδιο επαλήθευσης. Λύση — χρήση ελέγχου lint πριν από τη δημιουργία και δοκιμή όλων των μονάδων μέσω bundletool τοπικά.
Ο διαχωρισμός ανά γλώσσα μπορεί να επιβραδύνει την εκκίνηση της εφαρμογής εάν οι πόροι για την τρέχουσα τοπική ρύθμιση φορτώνονται δυναμικά. Σύσταση της Google — να μην διαχωρίζετε γλώσσες εάν είναι λιγότερες από 10 ή να χρησιμοποιείτε install-time για τις πιο δημοφιλείς.
Ορισμένα SDK (ανάλυση, διαφημίσεις, χάρτες) απαιτούν πρόσβαση στην πλήρη δήλωση και τους πόρους. Ο έλεγχος συμβατότητας με το AAB είναι υποχρεωτικό βήμα πριν από τη μετεγκατάσταση. Τα περισσότερα μεγάλα SDK (Firebase, Google Ads, Crashlytics) υποστηρίζουν πλήρως το AAB από το 2022. Για τον έλεγχο συμβατότητας χρησιμοποιείται το bundletool με τη σημαία --validate, η οποία προσομοιώνει τη δημιουργία APK από την πλευρά του διακομιστή.
Το AAB χρησιμοποιεί το versionCode από τη δήλωση της βασικής μονάδας. Σε αντίθεση με το APK, το AAB υποστηρίζει επίσης ξεχωριστό versionCode για κάθε μονάδα — αυτό επιτρέπει την ενημέρωση μεμονωμένων τμημάτων της εφαρμογής χωρίς πλήρη επανεγκατάσταση. Το Dynamic Delivery παρακολουθεί τις εγκατεστημένες μονάδες και παραδίδει μόνο τα τροποποιημένα στοιχεία κατά την ενημέρωση μέσω Google Play.
Το Google Play Console παρέχει λεπτομερή ανάλυση για κάθε AAB: πόσα APK δημιουργήθηκαν, ποιοι διαχωρισμοί ζητήθηκαν, ποιο είναι το μέσο μέγεθος λήψης ανά συσκευή. Android Vitals δείχνει μετρικές απόδοσης των δημιουργημένων APK. Αυτά τα δεδομένα βοηθούν στη βελτιστοποίηση της διαμόρφωσης διαχωρισμών και στη μείωση του μεγέθους λήψης για διαφορετικές κατηγορίες συσκευών.
Συχνές ερωτήσεις
Όχι, το AAB δεν προορίζεται για άμεση εγκατάσταση. Το Google Play το μετατρέπει σε APK για τη συγκεκριμένη συσκευή. Για δοκιμή στο τηλέφωνο χρησιμοποιείται το bundletool, το οποίο δημιουργεί APK από το AAB τοπικά.
Το Google Play δημιουργεί APK μόνο με πόρους που αντιστοιχούν στη συσκευή του χρήστη: μία πυκνότητα οθόνης, μία αρχιτεκτονική CPU, μία γλώσσα. Οι πόροι για άλλες διαμορφώσεις δεν συμπεριλαμβάνονται, εξοικονομώντας 15–30% κίνησης κατά τη λήψη.
Όχι, οι υπάρχουσες εφαρμογές μπορούν να συνεχίσουν να δημοσιεύουν APK. Η απαίτηση AAB ισχύει μόνο για νέες εφαρμογές. Η Google συνιστά αλλά δεν απαιτεί την ενημέρωση υπαρχόντων έργων σε AAB.
Αλλάξτε την εργασία δημιουργίας από assembleRelease σε bundleRelease, ελέγξτε τη συμβατότητα όλων των SDK, διαμορφώστε το App Signing στο Google Play Console και ανεβάστε το πρώτο AAB μέσω του υπάρχοντος track.
Ναι, το AAB περιλαμβάνει εγγενείς βιβλιοθήκες σε μονάδες. Το Google Play παραδίδει μόνο αρχεία .so για την αρχιτεκτονική CPU της συσκευής. Αυτό είναι ιδιαίτερα σημαντικό για παιχνίδια σε Unity και Unreal Engine με μεγάλες εγγενείς μεταγλωττίσεις.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης