GumDroidEmu
VSCode extension แบบเบาๆ สำหรับจัดการ Android emulator และทดสอบรัน APK โดยใช้ Android SDK ที่ติดตั้งในเครื่อง (ไม่ได้สร้าง emulator ใหม่จากศูนย์ — ห่อหุ้ม adb + emulator ของ Google SDK เพื่อให้ใช้งานสะดวกขึ้น)
คุณสมบัติ
- List AVDs — แสดงรายการ Android Virtual Devices ที่มีในเครื่อง
- Start / Stop emulator — เปิด/ปิด emulator ได้จาก side panel
- Install APK — คลิกขวาที่ไฟล์
.apk ใน explorer แล้วสั่ง install ลงเครื่องเป้าหมาย หรือ drag จาก side panel
- Launch / Uninstall app — รันหรือถอนแอปจากรายการ package
- Logcat — ดู logcat แบบ live ใน Output channel
- Screenshot — บันทึก PNG จากหน้าจอ device ลง workspace
- Screen mirror — webview แสดงหน้าจอ emulator ผ่าน
adb screencap polling + รองรับ tap / key events พื้นฐาน (Home, Back, Recents, ปุ่ม power/volume, ส่งข้อความ)
- adb shell — เปิด terminal ที่เชื่อมกับ device โดยตรง
ความต้องการ
Java 17+ (Adoptium/Temurin แนะนำ) — จำเป็นสำหรับ sdkmanager
ส่วน Android SDK เลือกได้:
- แบบง่าย (แนะนำ): เปิด extension → กด "ติดตั้ง Android SDK ให้ฉัน" ใน welcome view — extension จะดาวน์โหลด command-line tools (~150 MB) แล้วใช้
sdkmanager ติดตั้ง platform-tools + emulator + system image ให้ครบ
- แบบใช้ของเดิม: ถ้ามี Android Studio อยู่แล้ว extension จะค้นหา SDK อัตโนมัติจาก:
- การตั้งค่า
gumdroidemu.sdkPath
ANDROID_HOME / ANDROID_SDK_ROOT
- ตำแหน่งเริ่มต้น (
%LOCALAPPDATA%\Android\Sdk บน Windows, ~/Library/Android/sdk บน macOS)
ถ้าไม่มี Java extension จะเสนอให้ติดตั้งผ่าน winget install EclipseAdoptium.Temurin.17.JDK (Windows) หรือเปิดหน้าดาวน์โหลด Adoptium
วิธีใช้ครั้งแรก
- เปิด VSCode คลิก icon GumDroidEmu ใน activity bar
- ถ้ายังไม่มี SDK กด "ติดตั้ง Android SDK ให้ฉัน" — รอประมาณ 5-10 นาที (ขึ้นกับเน็ต)
- เมื่อเสร็จ extension จะถามว่าสร้าง AVD ตัวอย่างเลยไหม → กด สร้าง AVD → เริ่ม emulator
- รอ emulator boot ครั้งแรกประมาณ 1-2 นาที
- คลิกขวาที่ไฟล์
.apk ใน explorer → Install APK on device
ฟีเจอร์อื่นๆ
- กดปุ่ม play ข้างชื่อ AVD เพื่อเปิด emulator
- คลิกขวาที่ device ใน Running Devices แล้วเลือก Mirror screen, Open logcat, Screenshot, adb shell
การตั้งค่า
| Setting |
Default |
คำอธิบาย |
gumdroidemu.sdkPath |
"" |
Path ของ Android SDK root |
gumdroidemu.emulatorArgs |
["-no-snapshot-save", "-no-boot-anim"] |
argument เพิ่มเติมตอน start emulator |
gumdroidemu.mirrorFps |
4 |
อัตราการ refresh หน้าจอใน mirror panel |
gumdroidemu.logcatFilter |
"*:I" |
filter สำหรับ logcat |
ขอบเขต (ที่ตั้งใจจะ "เบา")
ตัว extension ไม่ได้ embed emulator engine มาเอง — ใช้ของ Google SDK ที่ทดสอบและบำรุงรักษามาดีแล้ว ตัว extension เองเป็นแค่ wrapper เล็กๆ ที่ทำให้ workflow ทดสอบ APK ใน VSCode สะดวกขึ้น
ถ้าต้องการ mirror หน้าจอแบบ smooth กว่านี้ แนะนำให้ใช้ scrcpy แทน — extension นี้ใช้วิธี screencap polling เพื่อให้ทำงานได้ทุกที่โดยไม่ต้องลง dependency เพิ่ม
โครงสร้าง code
src/
├── extension.ts # entry + command handlers
├── sdk.ts # SDK auto-detection
├── installer.ts # auto-install Android SDK (download + sdkmanager)
├── adb.ts # ADB wrapper
├── avdManager.ts # emulator process management
├── avdTreeProvider.ts # AVD tree view
├── deviceTreeProvider.ts # connected devices tree view
├── mirrorPanel.ts # screen mirror webview
└── logger.ts
| |