Android Emulator — คืออะไรและการจำลองทำงานอย่างไร

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-02-09 เวลาอ่าน: 8 นาที

Android Emulator เป็นส่วนประกอบของ Android Studio ที่รันสำเนาเสมือนจริงของอุปกรณ์ Android บนคอมพิวเตอร์ของนักพัฒนา โปรแกรมจำลองใช้ QEMU เพื่อแปลคำสั่ง ARM เป็นสถาปัตยกรรม x86_64 ของโฮสต์ เอกสารของ Google อธิบายวงจรทั้งหมดของการตั้งค่าอุปกรณ์เสมือน AVD และการเร่งด้วยฮาร์ดแวร์

ประเด็นสำคัญ

  • Android Emulator — การจำลองเต็มรูปแบบบน QEMU รองรับการแปล ARM, GPU, เซ็นเซอร์ และ NFC
  • AVD Manager — เครื่องมือสร้างและกำหนดค่าอุปกรณ์เสมือนพร้อมเลือกระดับ API สถาปัตยกรรม และคุณสมบัติฮาร์ดแวร์
  • HAxM และ Hyper-V — การเร่งด้วยฮาร์ดแวร์เพื่อเพิ่มประสิทธิภาพโปรแกรมจำลอง 3-5 เท่า
  • การตรวจสอบในโค้ด — Build.FINGERPRINT และ Build.PRODUCT ช่วยตรวจจับการทำงานในโปรแกรมจำลองบน Kotlin
  • การจำลองเซ็นเซอร์ — มาตรความเร่ง ไจโรสโคป NFC GPS และกล้องรองรับในโปรแกรมจำลอง

Android Emulator คืออะไร?

Android Emulator คืออุปกรณ์ Android เสมือนที่ทำงานบน QEMU (Quick EMUlator) และจำลองแพลตฟอร์มฮาร์ดแวร์ Android แตกต่างจาก iOS Simulator ตรงที่ Android Emulator แปลคำสั่ง ARM อย่างสมบูรณ์ ทำให้โค้ดที่คอมไพล์สำหรับสถาปัตยกรรมมือถือสามารถทำงานบนโฮสต์ x86_64

Google เปิดตัว Android Emulator ในปี 2007 พร้อมกับ Android SDK รุ่นแรก ตั้งแต่นั้นมาโปรแกรมจำลองได้พัฒนาจากโซลูชันที่ช้าเฉพาะ ARM เป็นระบบประสิทธิภาพสูงที่รองรับ GPU การเร่งด้วยฮาร์ดแวร์ และการจำลองเซ็นเซอร์ ตามข้อมูลของ Google (Android Developer Blog, 2025) โปรแกรมจำลองสมัยใหม่กับ HAxM ทำงานเร็วกว่ารุ่นแรก 4-5 เท่า

โปรแกรมจำลองรองรับส่วนประกอบทั้งหมดของอุปกรณ์ Android: CPU, GPU, RAM, พื้นที่จัดเก็บ, หน้าจอสัมผัส, มาตรความเร่ง, ไจโรสโคป, GPS, กล้อง, แบตเตอรี่, NFC, บลูทูธ และ Wi-Fi นักพัฒนาสามารถจำลองสายเรียกเข้า SMS ระดับสัญญาณเครือข่ายต่างๆ และตำแหน่งทางภูมิศาสตร์ผ่าน Extended Controls

อิมเมจระบบสำหรับโปรแกรมจำลอง

Android Emulator ใช้อิมเมจระบบ (System Images) ที่ดาวน์โหลดผ่าน SDK Manager แต่ละอิมเมจระบบมีสำเนาเต็มของเฟิร์มแวร์ Android สำหรับระดับ API และสถาปัตยกรรมโปรเซสเซอร์เป้าหมายที่เลือก มีอิมเมจพร้อมสถาปัตยกรรมต่างๆ: x86_64 (แนะนำกับ HAxM), ARM64 (สำหรับทดสอบความเข้ากันได้ ARM) และ Google APIs (พร้อม Google Play Services ที่ติดตั้งไว้ล่วงหน้า) นอกจากนี้ยังมีอิมเมจแยกสำหรับ Wear OS, Android TV และ Automotive

kotlin
// การตรวจสอบประเภทโปรแกรมจำลองในโค้ด
val isEmulator = Build.FINGERPRINT
    .contains("generic") ||
    Build.PRODUCT.contains("sdk")

if (isEmulator) {
    Timber.d("แอปทำงานในโปรแกรมจำลอง")
}

การตั้งค่า AVD ใน Android Studio

AVD (Android Virtual Device) คือการกำหนดค่าอุปกรณ์เสมือนสำหรับโปรแกรมจำลอง AVD Manager ใน Android Studio ช่วยให้สร้างอุปกรณ์ด้วยคุณสมบัติผสมผสานใดๆ: รุ่น, ขนาดหน้าจอ, ความหนาแน่นพิกเซล, ขนาด RAM, ขนาดพื้นที่จัดเก็บ และเวอร์ชัน Android

พารามิเตอร์ AVDคำแนะนำสำหรับการพัฒนาคำแนะนำสำหรับการทดสอบ
สถาปัตยกรรมx86_64 (กับ HAxM)ARM64 (การจำลองบริสุทธิ์)
RAM2048-4096 MB1536-2048 MB
พื้นที่จัดเก็บภายใน8-16 GB4-8 GB
ระดับ APIเสถียรล่าสุดขั้นต่ำที่รองรับ
Google Play Servicesเปิดใช้งานตามความจำเป็น

การสร้าง AVD ทำผ่าน Device Manager ใน Android Studio: เลือกโปรไฟล์ฮาร์ดแวร์ (Pixel, Nexus, Galaxy และอื่นๆ), อิมเมจระบบ และกำหนดค่าพารามิเตอร์ หลังจากสร้าง อุปกรณ์จะปรากฏในรายการ Run Configurations สำหรับการเรียกใช้แอปทันที

โหมด Snapshot สำหรับเริ่มต้นอย่างรวดเร็ว

โปรแกรมจำลองรองรับ Quick Boot — บันทึกสถานะ AVD เป็น snapshot และกู้คืนในการเริ่มต้นครั้งถัดไป เวลาบูตลดลงจาก 30-60 วินาทีเหลือ 2-5 วินาที หากต้องการรีเซ็ตเป็นสถานะสะอาด ให้ใช้ Cold Boot Now ใน AVD Manager

การแปล ARM และการเร่งด้วยฮาร์ดแวร์

การแปล ARM เป็นเทคโนโลยีหลักของ Android Emulator ที่แปลงคำสั่ง ARM เป็น x86_64 แบบทันที หากไม่มีการแปล โปรแกรมจำลองจะรันได้เฉพาะอิมเมจ x86_64 ซึ่งจำกัดความสามารถในการทดสอบ Google ใช้ libhoudini สำหรับการแปล ARM→x86 และไลบรารี Intel สำหรับการเร่ง HAXM

bash
# การตรวจสอบสถานะ HAxM บน Windows
sc query "IntelHaxm"

# การติดตั้ง HAxM ผ่าน SDK Manager
sdkmanager "extras;intel;Hardware_Accelerated_Execution_Manager"

# การเริ่มโปรแกรมจำลองด้วยการเร่งฮาร์ดแวร์
emulator -avd Pixel_9_API_35 -accel on -gpu auto

Intel HAxM (Hardware Accelerated Execution Manager) คือไดรเวอร์เสมือนสำหรับโปรเซสเซอร์ Intel VT-x ที่เร่งโปรแกรมจำลอง 3-5 เท่า บน Windows ที่มีโปรเซสเซอร์ AMD ให้ใช้ Windows Hyper-V Platform และ WHPX หากไม่มีการเร่งด้วยฮาร์ดแวร์ โปรแกรมจำลองจะทำงานช้า โดยมีความหน่วงของแอนิเมชันสูงถึง 1-2 วินาที

บน macOS ที่มี Apple Silicon (M-series) การเร่งด้วยฮาร์ดแวร์ทำงานแบบเนทีฟผ่าน Hypervisor.framework ตามข้อมูลของ Google (Android Emulator Release Notes 2025) โปรแกรมจำลองบน M2 Max มีประสิทธิภาพถึง 95% ของอุปกรณ์จริงในการดำเนินการพื้นฐาน

โปรแกรมจำลอง vs อุปกรณ์จริง

การเลือกระหว่าง โปรแกรมจำลองและอุปกรณ์จริง ขึ้นอยู่กับขั้นตอนการพัฒนา บนโปรแกรมจำลองสะดวกในการพัฒนาและดีบัก: เริ่มต้นเร็ว, การปรับใช้ทันที, Extended Controls สำหรับจำลองเซ็นเซอร์ บนอุปกรณ์จริง — การทดสอบประสิทธิภาพ แบตเตอรี่ และการทำงานกับฮาร์ดแวร์ขั้นสุดท้าย

สถานการณ์โปรแกรมจำลองอุปกรณ์จริง
การพัฒนา UIใช่ (เร็ว)ไม่ (ปรับใช้ช้า)
การทดสอบประสิทธิภาพไม่ (ค่าที่สูงเกินจริง)ใช่ (การวัดจริง)
การจำลองเซ็นเซอร์ (GPS, NFC)ใช่ (Extended Controls)จำกัด
การใช้พลังงานไม่รองรับใช่ (Battery Historian)
การทดสอบเครือข่าย (2G/3G/4G/5G)ใช่ (จำลองความเร็ว)ใช่ (กับซิมการ์ด)
การทำงานอัตโนมัติ CI/CDใช่ (ไม่ต้องใช้อุปกรณ์จริง)ยาก (ฟาร์มอุปกรณ์)

ประสิทธิภาพ ของโปรแกรมจำลองที่เร่งด้วยฮาร์ดแวร์มักสูงกว่าอุปกรณ์จริงราคาประหยัด ดังนั้น ควรทำการทดสอบขั้นสุดท้ายบนอุปกรณ์จริงที่มีระดับประสิทธิภาพเป้าหมาย

การตรวจสอบโปรแกรมจำลองในโค้ด Kotlin

การตรวจจับสภาพแวดล้อมการทำงานใน Kotlin มีประโยชน์สำหรับการปิดใช้งานโค้ดที่ไม่ถูกต้องหรือเพิ่มข้อมูลดีบัก Android มี Build.FINGERPRINT, Build.PRODUCT และ Build.HARDWARE สำหรับจุดประสงค์นี้

kotlin
object EmulatorDetector {
    val isEmulator: Boolean
        get() = Build.FINGERPRINT.startsWith("generic")
                || Build.FINGERPRINT.contains("emulator")
                || Build.HARDWARE == "ranchu"
                || Build.HARDWARE == "goldfish"
    
    fun logEnvironment() {
        if (isEmulator) {
            Log.d("EmulatorDetector", "สภาพแวดล้อม: โปรแกรมจำลอง")
        }
    }
}

การใช้ตัวตรวจจับโปรแกรมจำลอง ช่วยในการดีบัก: บนโปรแกรมจำลองคุณสามารถเปิดใช้งานล็อกเพิ่มเติม ปิดใช้งานแอนิเมชัน หรือแทนที่การเรียก API จริงด้วยม็อก หลีกเลี่ยงการตรวจสอบในบิลด์โปรดักชันเว้นแต่จำเป็นสำหรับตรรกะทางธุรกิจของแอป

การทดสอบแอพบนโปรแกรมจำลอง

Android Emulator ใช้สำหรับการทดสอบอัตโนมัติบนเซิร์ฟเวอร์ CI ในการรันทดสอบ คุณต้องสร้าง AVD เริ่มโปรแกรมจำลอง และรอให้ระบบโหลดสมบูรณ์ Gradle Managed Devices ช่วยให้กระบวนการนี้ง่ายขึ้น: การกำหนดค่า AVD อธิบายไว้ใน build.gradle.kts

kotlin
// build.gradle.kts — Gradle Managed Devices
android {
    testOptions {
        managedDevices {
            devices {
                register<ManagedVirtualDevice>("pixel9Api35") {
                    device = "Pixel 9"
                    apiLevel = 35
                    systemImageSource = "google"
                }
            }
        }
    }
}

ในการเริ่มโปรแกรมจำลอง ด้วยตนเอง ให้ใช้บรรทัดคำสั่ง: emulator -avd Pixel_9_API_35 -no-window -no-audio -gpu swiftshader_indirect แฟล็ก -no-window ปิดใช้งานอินเทอร์เฟซกราฟิกสำหรับสภาพแวดล้อมเซิร์ฟเวอร์ และ -gpu swiftshader_indirect ให้การเรนเดอร์ซอฟต์แวร์โดยไม่มี GPU โฮสต์

การจำลองเครือข่ายและเซ็นเซอร์

Extended Controls ใน Android Emulator มีเครื่องมือทรงพลังสำหรับจำลอง สภาพเครือข่าย: ความหน่วง, แบนด์วิธ และประเภทเครือข่าย (GPRS, EDGE, 3G, 4G, 5G) ซึ่งช่วยให้ทดสอบพฤติกรรมของแอปภายใต้การเชื่อมต่อช้าโดยไม่ต้องเดินทางไปยังพื้นที่ที่มีสัญญาณไม่ดี

การจำลองเซ็นเซอร์ รวมถึงมาตรความเร่ง, ไจโรสโคป และแมกนีโตมิเตอร์ผ่านโมเดลอุปกรณ์ 3D เสมือน สำหรับ GPS คุณสามารถโหลดไฟล์ GPX พร้อมเส้นทาง — โปรแกรมจำลองจำลองการเคลื่อนที่ตามพิกัด ซึ่งสำคัญสำหรับการทดสอบแอปนำทาง กล้องถูกจำลองผ่านเว็บแคมโฮสต์หรือการโหลดภาพ

หลายจอแสดงผล ใน Android Emulator รองรับหลายหน้าจอสำหรับแท็บเล็ตและอุปกรณ์พับได้ Extended Controls ช่วยให้เปลี่ยนทิศทาง ขนาดหน้าจอ และความหนาแน่นพิกเซล (DPI) โดยไม่ต้องรีสตาร์ทโปรแกรมจำลอง สำหรับการทดสอบอุปกรณ์พับได้ มีโหมด Foldable ที่สลับระหว่างสถานะพับและกางออก

Android Emulator สำหรับ Wear OS และ Android TV

โปรแกรมจำลองรองรับไม่เพียงสมาร์ทโฟน แต่ยังรวมถึง Wear OS และ Android TV สำหรับ Wear OS มีการกำหนดค่า AVD ทรงกลมและสี่เหลี่ยม การจำลองการหมุนขอบและการปัดนิ้ว ตลอดจนการทดสอบปฏิสัมพันธ์กับโปรแกรมจำลองโทรศัพท์ สำหรับ Android TV ใช้อินเทอร์เฟซกับการนำทาง D-pad ทั้งสองแพลตฟอร์มรองรับการเร่งด้วยฮาร์ดแวร์และการทดสอบกับ Google Play Services ซึ่งสำคัญสำหรับวงจรการพัฒนาแอปสมาร์ทวอทช์และทีวี

คำถามที่พบบ่อย

Android Emulator แตกต่างจาก iOS Simulator อย่างไร?

Android Emulator ใช้ การจำลอง ARM อย่างสมบูรณ์ ผ่าน QEMU พร้อมการแปลคำสั่ง ในขณะที่ iOS Simulator คอมไพล์โค้ดสำหรับสถาปัตยกรรมโฮสต์ Android Emulator รองรับ GPU, กล้อง, เซ็นเซอร์, บลูทูธ, NFC — iOS Simulator ไม่รองรับคุณสมบัติเหล่านี้ส่วนใหญ่

จะตรวจสอบในโค้ดได้อย่างไรว่าแอปทำงานในโปรแกรมจำลอง?

ใน Kotlin ให้ตรวจสอบ Build.FINGERPRINT สำหรับ "generic" หรือ "emulator" และ Build.HARDWARE สำหรับ "ranchu" หรือ "goldfish" ใช้ Build.PRODUCT เป็นตัวบ่งชี้เพิ่มเติม — สำหรับโปรแกรมจำลองจะมี "sdk_google" หรือ "google_sdk"

จะเร่ง Android Emulator ได้อย่างไร?

เปิดใช้งาน Intel HAxM (Intel VT-x) หรือ Windows Hyper-V Platform (WHPX) สำหรับโปรเซสเซอร์ AMD ใช้อิมเมจระบบ x86_64 พร้อมการเร่งด้วยฮาร์ดแวร์ จัดสรร RAM อย่างน้อย 4 GB ให้โปรแกรมจำลองใน AVD Manager เปิดใช้งาน Quick Boot สำหรับการโหลด snapshot

สามารถทดสอบ NFC ใน Android Emulator ได้หรือไม่?

ได้ Android Emulator รองรับการจำลอง NFC ตั้งแต่ Android 10 (API 29) Extended Controls → Phone → NFC อนุญาตให้ส่งข้อความ NDEF รองรับโหมดอ่าน/เขียนแท็ก, peer-to-peer และ HCE สำหรับการทดสอบเต็มรูปแบบ ให้ใช้อุปกรณ์จริงที่มีชิป NFC

อิมเมจระบบไหนดีที่สุดสำหรับ AVD?

สำหรับการพัฒนาประจำวัน ให้เลือก x86_64 กับ Google APIs — ประสิทธิภาพสูงสุดและบริการครบชุด สำหรับการทดสอบความเข้ากันได้ ใช้อิมเมจ ARM64 สำหรับ CI — อิมเมจที่ไม่มี Google Play Services มีขนาดเล็กกว่าและบูตเร็วกว่า

สรุป

  • Android Emulator — การจำลองอุปกรณ์ Android อย่างสมบูรณ์บน QEMU รองรับการแปล ARM, GPU, เซ็นเซอร์ และ NFC
  • AVD Manager — การกำหนดค่าอุปกรณ์เสมือนพร้อมเลือกสถาปัตยกรรม ระดับ API RAM และคุณสมบัติฮาร์ดแวร์
  • การเร่งด้วยฮาร์ดแวร์ — HAxM, Hyper-V และ WHPX เพิ่มประสิทธิภาพโปรแกรมจำลอง 3-5 เท่า
  • การตรวจจับสภาพแวดล้อม — Build.FINGERPRINT, Build.PRODUCT และ Build.HARDWARE สำหรับตรวจจับการทำงานในโปรแกรมจำลอง
  • Extended Controls — การจำลอง GPS, NFC, เซ็นเซอร์, สายเรียกเข้า และ SMS สำหรับการทดสอบสถานการณ์
  • การทำงานอัตโนมัติ CI — Gradle Managed Devices และอิมเมจ x86_64 สำหรับการทดสอบ CI ที่มีประสิทธิภาพ
  • Quick Boot — โหมด snapshot ลดเวลาเริ่มต้นโปรแกรมจำลองเหลือ 2-5 วินาที

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม