Οι εικόνες συστήματος Android 11 για υλικό x86 υποστηρίζουν πλέον την εξομοίωση ARM στο Android Emulator εντός του Android Studio για υπολογιστές x86.
Η Google κυκλοφόρησε το Προεπισκόπηση προγραμματιστή Android 11 2 νωρίτερα αυτό το μήνα. Με αυτήν την έκδοση, η Google έκανε μια βασική αλλαγή για να επιτρέψει πιο αποτελεσματικό εντοπισμό σφαλμάτων εφαρμογών στον εξομοιωτή Android εντός Android Studio. Οι εικόνες συστήματος Android 11 για επεξεργαστές x86 επιτρέπουν πλέον σε εφαρμογές με εξαρτήσεις C ή C++ να εκτελούνται περισσότερο ομαλά χωρίς πλήρη εξομοίωση ARM και χρήση επιτάχυνσης υλικού και εικονικοποίησης CPU του x86 σκεύη, εξαρτήματα.
Οι εφαρμογές Android που είναι γραμμένες σε εγγενή κώδικα (δηλαδή C ή C++) πρέπει να μεταγλωττίζονται έχοντας κατά νου διαφορετικές αρχιτεκτονικές CPU. Πρέπει να υπάρχουν διαφορετικές εκδόσεις της εφαρμογής που στοχεύουν διαφορετικές αρχιτεκτονικές CPU, όπως ARM, ARM64, x86 ή x86-64. Αυτό συμβαίνει επειδή ο εγγενής κώδικας μεταγλωττίζεται απευθείας στις οδηγίες του μηχανήματος για τη συγκεκριμένη αρχιτεκτονική σε αντίθεση με τις εφαρμογές Kotlin ή Java που εκτελούνται στο Android Runtime (ART).
Για να δοκιμάσετε την εφαρμογή σας μέσω του εξομοιωτή Android που εκτελείται σε υπολογιστή που βασίζεται σε x86, χρειάζεστε διαφορετική έκδοση για CPU x86. Η έκδοση x86 της εφαρμογής δεν θα λειτουργεί σε smartphone, καθώς βασίζονται συνήθως σε επεξεργαστές ARM ή ARM64. Μέχρι τώρα το μοναδικό Η λύση σε αυτό το πρόβλημα ήταν είτε η χρήση μιας φυσικής συσκευής Android είτε η εγκατάσταση εικόνων εξομοιωτή με πλήρη εξομοίωση ARM για επεξεργαστές x86. Η τελευταία επιλογή είναι υψηλής απόδοσης και δεν μπορεί να εκμεταλλευτεί πλήρως την επιτάχυνση υλικού και την εικονικοποίηση της CPU που το x86 CPU προσφέρουν.
Για να διευθετηθεί αυτό, η Google κυκλοφόρησε τώρα τις νέες εικόνες συστήματος Android 11 x86 με συμβατότητα ARM. Αυτές οι εικόνες συστήματος χρησιμοποιούν ABI (δυαδικές διεπαφές εφαρμογών) που ενδιάμεσα μεταξύ εφαρμογών γραμμένων σε διαφορετικές γλώσσες ή μεταξύ εφαρμογών και του λειτουργικού συστήματος. Οι εντολές ARM εντός του δυαδικού ARM μεταφράζονται αποκλειστικά σε x86 ενώ ο υπόλοιπος κώδικας συνεχίζει να εκτελείται στο x86. Λόγω αυτής της απομόνωσης των δυαδικών αρχείων ARM, η διαδικασία είναι λιγότερο έντονης απόδοσης και εκτελείται ακόμη και σε υλικό χαμηλού επιπέδου.
Εκτός από την δυνατότητα ευκολότερης αποσφαλμάτωσης εφαρμογών Android που χρησιμοποιούν εξαρτήσεις C++, θα επιτρέψει επίσης στους προγραμματιστές να απλώς δημοσιεύστε την έκδοση ARM των εφαρμογών τους μαζί με ABI αντί για έκδοση x86 για Chromebook στο μελλοντικός. Αυτό θα τονώσει την υποστήριξη για περισσότερες εφαρμογές στοχευμένες στο Android 11 σε μια ποικιλία Chromebook.
Μπορείτε να κατεβάσετε τις νέες εικόνες συστήματος Android 11 που είναι συμβατές με x86 Android Studio χρησιμοποιώντας την Διαχείριση εικονικής συσκευής Android ή τον Διαχειριστή SDK.