AVD Android: τι είναι, Android Virtual Device και πώς να ρυθμίσετε τον εξομοιωτή

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-02-09 Χρόνος ανάγνωσης: 10 λεπ

AVD (Android Virtual Device) — είναι μια διαμόρφωση εξομοιωτή που μιμείται μια πραγματική συσκευή Android στον υπολογιστή του προγραμματιστή. Κάθε AVD περιλαμβάνει την επιλεγμένη έκδοση λειτουργικού συστήματος (System Image), τον τύπο συσκευής (τηλέφωνο, tablet, Wear OS), το μέγεθος οθόνης και την ποσότητα μνήμης. Σύμφωνα με το Google Android Developers, 2026, το AVD χρησιμοποιείται για τη δοκιμή εφαρμογών σε διαφορετικές εκδόσεις και διαμορφώσεις Android χωρίς την ανάγκη αγοράς δεκάδων φυσικών συσκευών. QEMU — ο υπερεπόπτης στον οποίο λειτουργεί ο εξομοιωτής.

Κύρια σημεία

  • AVD — εικονική συσκευή Android που λειτουργεί σε QEMU με επιλεγμένη System Image.
  • System Image — εικόνα λειτουργικού συστήματος συγκεκριμένου API Level, με ή χωρίς υπηρεσίες Google.
  • AVD Manager — το εργαλείο του Android Studio για δημιουργία, ρύθμιση και διαχείριση εικονικών συσκευών.
  • Για αποδοτική λειτουργία του AVD απαιτείται εικονικοποίηση υλικού (HAXM, Hypervisor.Framework ή WHPX).
  • Το AVD επιτρέπει τη δοκιμή εφαρμογών σε διαφορετικές εκδόσεις Android, μεγέθη οθόνης και διαμορφώσεις χωρίς φυσική συσκευή.

Τι είναι το AVD

AVD (Android Virtual Device) — είναι μια διαμόρφωση λογισμικού που περιγράφει μια εικονική συσκευή Android. Σε αντίθεση με ένα φυσικό τηλέφωνο, το AVD δεν απαιτεί υλικό — εκτελείται στον υπολογιστή μέσω του εξομοιωτή Android που βασίζεται στο QEMU. Ο προγραμματιστής δημιουργεί όσα AVD χρειάζονται για δοκιμή: για διαφορετικές εκδόσεις Android, μεγέθη οθόνης, ποσότητες μνήμης και πυκνότητες pixel.

Κάθε AVD συνδέεται με μια συγκεκριμένη SDK Platform. Αυτό σημαίνει ότι για να δημιουργήσετε ένα AVD με Android 14 (API Level 34), πρέπει πρώτα να εγκαταστήσετε την System Image αυτής της έκδοσης μέσω του SDK Manager. Η System Image είναι μια εικόνα του λειτουργικού συστήματος που περιλαμβάνει όλες τις εφαρμογές συστήματος, τις υπηρεσίες Google (αν έχει επιλεγεί η εικόνα Google APIs) και τα στοιχεία χρόνου εκτέλεσης. Η Google συνιστά τη χρήση εικόνων Google APIs με υπηρεσίες Google Play για μέγιστη συμβατότητα με πραγματικές συσκευές.

Το AVD είναι απαραίτητο στην ανάπτυξη για διάφορους λόγους. Πρώτον, επιτρέπει τη δοκιμή της εφαρμογής σε διαφορετικές εκδόσεις Android χωρίς αγορά δεκάδων συσκευών. Δεύτερον, το AVD υποστηρίζει Snapshots — αποθήκευση της κατάστασης του συστήματος, που επιταχύνει την εκκίνηση. Τρίτον, ο εξομοιωτής είναι ενσωματωμένος με το Android Studio: η εγκατάσταση APK, ο εντοπισμός σφαλμάτων και η καταγραφή λειτουργούν όπως σε μια φυσική συσκευή.

Τύποι εικονικών συσκευών

Το AVD υποστηρίζει διάφορους τύπους συσκευών: τηλέφωνα (Phone), tablet (Tablet), ρολόγια (Wear OS), τηλεοράσεις (Android TV) και αυτοκινητιστικά συστήματα (Android Automotive). Για κάθε τύπο, ο AVD Manager παρέχει έτοιμα προφίλ από την Google: Pixel 8, Pixel 9 Pro, Nexus 7, Samsung Galaxy Tab και άλλα. Το προφίλ συσκευής καθορίζει το μέγεθος οθόνης, την ανάλυση, την πυκνότητα pixel (dpi) και την πλοήγηση (χειρονομίες ή κουμπιά).

Τύπος συσκευήςΠαράδειγμα προφίλΑνάλυσηdpi
PhonePixel 81080x2400420
PhonePixel 9 Pro1280x2856490
TabletPixel Tablet2560x1600320
Wear OSPixel Watch384x384320
Android TVAndroid TV 4K1920x1080240

Από τι αποτελείται το AVD

Κάθε AVD είναι ένα σύνολο αρχείων διαμόρφωσης και εικόνων. Το κύριο αρχείο διαμόρφωσης — config.ini, το οποίο αποθηκεύει τις παραμέτρους της εικονικής συσκευής: όνομα, τύπος, API Level, μέγεθος οθόνης, ποσότητα RAM και VM heap. Το αρχείο βρίσκεται στον κατάλογο $HOME/.android/avd/ΌνομαAVD.avd/ και μπορεί να τροποποιηθεί χειροκίνητα, αν και συνήθως επεξεργάζεται μέσω του AVD Manager.

Εκτός από το config.ini, στον κατάλογο AVD αποθηκεύονται: userdata.img (εικόνα δεδομένων χρήστη — εφαρμογές, ρυθμίσεις, αρχεία), system.img (αναφορά στην System Image της εγκατεστημένης SDK Platform), cache.img (προσωρινή μνήμη) και sdcard.img (εικόνα κάρτας SD). Κατά την εκτέλεση Wipe Data, το userdata.img διαγράφεται και δημιουργείται μια νέα κενή εικόνα. Τα Snapshots αποθηκεύονται σε ξεχωριστό φάκελο snapshots/ μέσα στον κατάλογο AVD.

Η System Image μεταφορτώνεται ξεχωριστά από το AVD — μία εικόνα μπορεί να χρησιμοποιηθεί από πολλές εικονικές συσκευές. Οι εικόνες συστήματος αποθηκεύονται στον κατάλογο Android SDK: $ANDROID_SDK/system-images/android-{API}/{type}/{arch}/. Τύποι εικόνων: google_apis (με υπηρεσίες Google), google_apis_playstore (με Google Play Store) και default (καθαρό AOSP χωρίς υπηρεσίες Google).

Τύποι System Images

Τύπος εικόναςΥπηρεσίες GoogleGoogle PlayΓια τι
AOSP (default)ΌχιΌχιΒασική δοκιμή, καθαρό Android
Google APIsΝαιΌχιΔοκιμή υπηρεσιών Google, Maps, FCM
Google PlayΝαιΝαιΠλήρης δοκιμή με Play Store και αδειοδότηση

Δημιουργία AVD μέσω AVD Manager

AVD Manager — είναι ένα γραφικό εργαλείο στο Android Studio για τη δημιουργία και διαχείριση εικονικών συσκευών. Μπορεί να ανοίξει μέσω του μενού Tools → Device Manager ή μέσω του εικονιδίου στη γραμμή εργαλείων. Ο AVD Manager εμφανίζει τη λίστα των δημιουργημένων συσκευών, την κατάστασή τους (σε λειτουργία/σταματημένη), την έκδοση Android και τις διαθέσιμες ενέργειες (εκκίνηση, διακοπή, wipe data, επεξεργασία).

Για να δημιουργήσετε ένα νέο AVD, κάντε κλικ στο κουμπί Create device. Επιλέξτε ένα προφίλ συσκευής από τη λίστα έτοιμων προφίλ — η Google παρέχει προφίλ για όλες τις δημοφιλείς συσκευές. Μετά την επιλογή προφίλ, καθορίστε την System Image: την έκδοση Android και τον τύπο εικόνας. Για νέα έργα, επιλέξτε την τελευταία σταθερή έκδοση με εικόνα Google APIs. Στη συνέχεια, ρυθμίστε το όνομα AVD, τον προσανατολισμό οθόνης, την ποσότητα RAM και VM heap. Μετά τη δημιουργία, το AVD είναι έτοιμο για εκκίνηση.

Βήμα προς βήμα δημιουργία AVD από τη γραμμή εντολών

bash
# Λίστα διαθέσιμων System Images
sdkmanager --list | grep system-images

# Εγκατάσταση System Image για API 35 με Google APIs
sdkmanager "system-images;android-35;google_apis;x86_64"

# Δημιουργία AVD με όνομα pixel8_api35
avdmanager create avd -n pixel8_api35 \
    -k "system-images;android-35;google_apis;x86_64" \
    -d pixel_8

# Εκκίνηση του δημιουργημένου AVD
emulator -avd pixel8_api35 -gpu host -memory 2048

# Λίστα όλων των AVD
avdmanager list avd

Ρύθμιση χαρακτηριστικών υλικού του AVD

Ο AVD Manager επιτρέπει τη λεπτομερή ρύθμιση των χαρακτηριστικών υλικού της εικονικής συσκευής. Κύριες παράμετροι: RAM (μνήμη τυχαίας προσπέλασης, συνιστώμενη τιμή 2048–4096 MB), VM heap (μέγεθος σωρού εικονικής μηχανής, 256–512 MB), Internal Storage (εσωτερική αποθήκευση, 2–8 GB) και SD Card (εικονική κάρτα SD). Αυτές οι παράμετροι επηρεάζουν την απόδοση της εφαρμογής και τη συμπεριφορά της σε έλλειψη μνήμης.

Πρόσθετες ρυθμίσεις περιλαμβάνουν: κάμερα (εξομοιωμένη ή σύνδεση webcam κεντρικού υπολογιστή), αισθητήρες (επιταχυνσιόμετρο, γυροσκόπιο), NFC, Bluetooth και μπαταρία. Για παράδειγμα, για δοκιμή εφαρμογών εντοπισμού θέσης, η περιστροφή της συσκευής μπορεί να εξομοιωθεί μέσω των κουμπιών ελέγχου του εξομοιωτή ή μέσω ADB. Η εξομοίωση αισθητήρων επιτρέπει τη δοκιμή σεναρίων που είναι δύσκολο να αναπαραχθούν σε μια φυσική συσκευή.

Βασικές παράμετροι του config.ini

ΠαράμετροςΠεριγραφήΣυνιστώμενη τιμή
hw.ramSizeΜνήμη τυχαίας προσπέλασης συσκευής2048
vm.heapSizeΜέγεθος σωρού εικονικής μηχανής256
hw.gpuEnabledΕπιτάχυνση υλικού γραφικώνyes
hw.gpuModeΛειτουργία GPU (host/mesa)host
disk.dataPartition.sizeΜέγεθος διαμερίσματος δεδομένων4096M
hw.cameraΤύπος εξομοίωσης κάμεραςemulated

Βελτιστοποίηση απόδοσης του εξομοιωτή

Η ταχύτητα λειτουργίας του AVD εξαρτάται άμεσα από την εικονικοποίηση υλικού. Στα Windows χρησιμοποιείται η Windows Hypervisor Platform (WHPX), στο macOS — Hypervisor.Framework, στο Linux — KVM. Εάν η εικονικοποίηση είναι απενεργοποιημένη, το AVD λειτουργεί σε λειτουργία καθαρά εξομοίωσης λογισμικού, που είναι 10–20 φορές πιο αργή. Για να ελέγξετε αν η εικονικοποίηση είναι ενεργοποιημένη, εκτελέστε τον εξομοιωτή με τη σημαία -accel-check.

Ο δεύτερος βασικός παράγοντας είναι η επιλογή αρχιτεκτονικής System Image. Οι εικόνες x86_64 λειτουργούν σημαντικά ταχύτερα από τις arm64-v8a σε υπολογιστές με επεξεργαστές Intel και AMD, καθώς δεν απαιτούν δυναμική μετάφραση εντολών ARM. Χρησιμοποιείτε πάντα εικόνες x86_64 για ανάπτυξη σε Windows και macOS με επεξεργαστές Intel. Σε επεξεργαστές ARM Mac (Apple Silicon) χρησιμοποιείτε εγγενείς εικόνες arm64-v8a.

Σημαίες γραμμής εντολών για επιτάχυνση

bash
# Εκκίνηση με εικονικοποίηση υλικού και επιτάχυνση GPU
emulator -avd pixel8_api35 -gpu host -memory 4096 -cores 4

# Έλεγχος υποστήριξης εικονικοποίησης
emulator -accel-check

# Εκκίνηση χωρίς γραφική διεπαφή (για CI)
emulator -avd pixel8_api35 -no-window -no-audio -gpu off

# Χρήση στιγμιότυπων για γρήγορη εκκίνηση
emulator -avd pixel8_api35 -snapshot mysnapshot -no-snapshot-save

Συμβουλές απόδοσης εξομοιωτή

Για μέγιστη απόδοση AVD: διαθέστε στον εξομοιωτή τουλάχιστον 2–4 GB RAM, ενεργοποιήστε το GPU Host (χρησιμοποιεί την κάρτα γραφικών του υπολογιστή για απόδοση), απενεργοποιήστε τον ήχο (σημαία -no-audio), αν δεν είναι απαραίτητος, και χρησιμοποιήστε Snapshots για γρήγορη επιστροφή σε καθαρή κατάσταση. Τα Snapshots αποθηκεύουν την πλήρη κατάσταση του συστήματος — η εκκίνηση από στιγμιότυπο διαρκεί 2–5 δευτερόλεπτα αντί για 30–60 δευτερόλεπτα πλήρους φόρτωσης.

Συνιστάται επίσης η αποθήκευση του AVD σε SSD — οι λειτουργίες εισόδου/εξόδου κατά τη φόρτωση του συστήματος και την εγκατάσταση APK επιταχύνονται σημαντικά. Για εργασία με πολλά AVD ταυτόχρονα, αυξήστε τη συνολική ποσότητα RAM στον υπολογιστή και χρησιμοποιήστε τη σημαία -read-only για αμετάβλητους εξομοιωτές.

Διαχείριση AVD από τη γραμμή εντολών

Ο πλήρης έλεγχος του AVD είναι δυνατός από τη γραμμή εντολών χωρίς Android Studio. Τα εργαλεία avdmanager και emulator αποτελούν μέρος του Android SDK και εκτελούν όλες τις λειτουργίες: δημιουργία, διαγραφή, εκκίνηση και ρύθμιση AVD. Η γραμμή εντολών είναι ιδιαίτερα χρήσιμη σε γραμμές CI/CD, όπου δεν υπάρχει γραφική διεπαφή, και για αυτοματοποίηση δοκιμών.

Βασικές εντολές διαχείρισης AVD

bash
# Δημιουργία AVD με προσαρμοσμένες παραμέτρους
avdmanager create avd -n test_device \
    -k "system-images;android-34;google_apis;x86_64" \
    --device "pixel_8" \
    --force

# Διαγραφή AVD
avdmanager delete avd -n test_device

# Κλωνοποίηση AVD (μέσω αντιγραφής αρχείων)
cp -r ~/.android/avd/pixel8_api35.avd ~/.android/avd/pixel8_clone.avd

# Επαναφορά δεδομένων AVD
emulator -avd test_device -wipe-data

# Εγκατάσταση APK σε εκτελούμενο AVD
adb -s emulator-5554 install app-release.apk

ADB και AVD: βασικές εντολές

Μετά την εκκίνηση του AVD, μπορείτε να εργαστείτε με αυτό μέσω ADB (Android Debug Bridge) όπως με μια φυσική συσκευή. Το ADB επιτρέπει την εγκατάσταση εφαρμογών, την εκτέλεση intent, την εξομοίωση συμβάντων (κλήσεις, SMS, GPS), τη λήψη στιγμιότυπων οθόνης και την εγγραφή βίντεο οθόνης. Αυτό καθιστά το AVD ένα πλήρες περιβάλλον για αυτοματοποιημένες δοκιμές.

bash
# Λίστα συνδεδεμένων συσκευών (συμπεριλαμβανομένου του AVD)
adb devices

# Εξομοίωση εισερχόμενης κλήσης
adb emu gsm call +15551234567

# Εξομοίωση συντεταγμένων GPS
adb emu geo fix -122.084 37.422

# Λήψη στιγμιότυπου οθόνης
adb exec-out screencap -p > screenshot.png

# Αποστολή SMS
adb emu sms send +15551234567 "Hello from AVD"

Έλεγχος εξομοιωτή στον κώδικα εφαρμογής

Μερικές φορές ο προγραμματιστής πρέπει να καθορίσει στον κώδικα εάν η εφαρμογή εκτελείται σε εξομοιωτή ή σε φυσική συσκευή. Αυτό μπορεί να χρειαστεί για απενεργοποίηση αναλυτικών στοιχείων (για να μην μολύνονται τα δεδομένα παραγωγής), ενεργοποίηση εκτεταμένης καταγραφής ή απενεργοποίηση λειτουργιών που εξαρτώνται από υλικό και δεν λειτουργούν στον εξομοιωτή. Η Google παρέχει τυπικές μεθόδους ελέγχου μέσω της κλάσης Build και ιδιοτήτων συστήματος.

Μέθοδος ελέγχου μέσω ιδιότητας Build

kotlin
object EmulatorDetector {
    fun isEmulator(): Boolean {
        return (Build.BRAND.startsWith("generic") &&
                Build.DEVICE.startsWith("generic")) ||
                Build.FINGERPRINT.startsWith("generic") ||
                Build.FINGERPRINT.startsWith("unknown") ||
                Build.HARDWARE.contains("goldfish") ||
                Build.HARDWARE.contains("ranchu") ||
                Build.MODEL.contains("google_sdk") ||
                Build.MODEL.contains("Emulator") ||
                Build.MODEL.contains("Android SDK")
    }
}

// Χρήση
if (EmulatorDetector.isEmulator()) {
    Log.d("App", "Running on emulator — enable debug mode")
}

Έλεγχος μέσω ιδιοτήτων συστήματος

Πρόσθετη μέθοδος — ανάγνωση ιδιοτήτων συστήματος μέσω Build.getRadioVersion() και έλεγχος ro.kernel.qemu. Στον εξομοιωτή, η radio version επιστρέφει null και η ιδιότητα qemu έχει οριστεί σε 1. Αυτή η μέθοδος είναι πιο αξιόπιστη σε παλαιότερες εκδόσεις Android όπου το Build.FINGERPRINT μπορεί να τροποποιηθεί από τον κατασκευαστή της συσκευής.

kotlin
fun isRunningOnEmulator(): Boolean {
    // Έλεγχος μέσω radio version — στον εξομοιωτή πάντα null
    val radioVersion = try {
        Build.getRadioVersion()
    } catch (e: Exception) {
        null
    }
    if (radioVersion.isNullOrBlank()) return true

    // Έλεγχος μέσω ιδιοτήτων συστήματος
    return try {
        val props = ProcessBuilder()
            .command("getprop", "ro.kernel.qemu")
            .start()
            .inputStream.bufferedReader().readText().trim()
        props == "1"
    } catch (e: Exception) {
        false
    }
}

Συχνές Ερωτήσεις

Σε τι διαφέρει το AVD από μια φυσική συσκευή;

Το AVD λειτουργεί σε QEMU και δεν μπορεί να μιμηθεί πλήρως τα χαρακτηριστικά υλικού: πραγματική κάμερα, NFC, Bluetooth. Το AVD είναι ιδανικό για δοκιμή UI, έλεγχο κύκλου ζωής και συμβατότητας με εκδόσεις λειτουργικού συστήματος. Για ακριβή δοκιμή κάμερας και αισθητήρων απαιτείται φυσική συσκευή.

Πόσα AVD πρέπει να δημιουργηθούν;

Τουλάχιστον 2–3 AVD: νεότερο API Level για έλεγχο νέων λειτουργιών, ελάχιστο υποστηριζόμενο (minSdk) για συμβατότητα και ένα δημοφιλές μοντέλο συσκευής (Pixel 8 ή Samsung Galaxy) για δοκιμή UI σε συγκεκριμένη οθόνη.

Γιατί το AVD λειτουργεί αργά;

Κύριες αιτίες: εικονικοποίηση υλικού απενεργοποιημένη (WHPX, Hypervisor.Framework, KVM), λίγη RAM (λιγότερο από 2 GB), απενεργοποιημένο GPU Host. Ενεργοποιήστε το -gpu host και αυξήστε τη μνήμη σε 2–4 GB — αυτό θα επιταχύνει τον εξομοιωτή 3–5 φορές.

Μπορεί το AVD να εκτελεστεί χωρίς Android Studio;

Ναι. Ο εξομοιωτής εκτελείται μέσω emulator -avd Όνομα_AVD από τη γραμμή εντολών. Για αυτό απαιτούνται Android SDK, Platform-Tools και εγκατεστημένη System Image. Ο AVD Manager είναι επίσης διαθέσιμος ως βοηθητικό πρόγραμμα κονσόλας avdmanager.

Πώς να επαναφέρετε το AVD στις εργοστασιακές ρυθμίσεις;

Στον AVD Manager, επιλέξτε Wipe Data — αυτό θα διαγράψει το userdata.img και θα επαναφέρει τον εξομοιωτή στην αρχική κατάσταση. Από τη γραμμή εντολών: emulator -avd Όνομα -wipe-data. Τα Snapshots διατηρούνται, εκτός αν διαγραφούν ξεχωριστά.

Σύνοψη

  • AVD — εικονική συσκευή Android βασισμένη σε QEMU, που επιτρέπει δοκιμή εφαρμογών χωρίς φυσικό τηλέφωνο.
  • System Image — εικόνα λειτουργικού συστήματος συγκεκριμένου API Level, διαθέσιμη σε παραλλαγές AOSP, Google APIs και Google Play.
  • AVD Manager — εργαλείο δημιουργίας, ρύθμισης και διαχείρισης εικονικών συσκευών στο Android Studio ή από τη γραμμή εντολών.
  • Για απόδοση AVD απαιτείται εικονικοποίηση υλικού (WHPX, Hypervisor.Framework, KVM) και επιλογή εικόνας x86_64.
  • Μέσω ADB είναι διαθέσιμες όλες οι λειτουργίες εξομοίωσης: κλήσεις, SMS, GPS, εγκατάσταση APK, στιγμιότυπα οθόνης — όπως σε φυσική συσκευή.
  • Για ανίχνευση εξομοιωτή στον κώδικα, χρησιμοποιήστε ελέγχους Build.FINGERPRINT, Build.HARDWARE και ro.kernel.qemu.
  • Αποθηκεύστε το AVD σε SSD και χρησιμοποιήστε Snapshots για ταχύτερη εκκίνηση — μειώνει τον χρόνο φόρτωσης από 60 σε 2–5 δευτερόλεπτα.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης