บันทึกประจำรุ่นของโปรแกรมจำลอง

Android Emulator จะรวมอยู่ใน Android Studio

โปรแกรมจำลองเวอร์ชันก่อน 25.3.0 เผยแพร่เป็นส่วนหนึ่งของ Android SDK Tools

ตรวจสอบการอัปเดตใน SDK Manager เพื่อให้แน่ใจว่าคุณใช้เวอร์ชันล่าสุด

หากต้องการดาวน์โหลด Android Emulator เวอร์ชันก่อนหน้า โปรดดูที่เก็บถาวรของการดาวน์โหลดโปรแกรมจำลอง

ดูบันทึกประจำรุ่นสำหรับโปรแกรมจำลองเวอร์ชันก่อน 25.3.0 ได้ที่ บันทึกประจำรุ่นของเครื่องมือ Android SDK

ดูปัญหาที่ทราบและการแก้ปัญหาได้ที่การแก้ปัญหาเกี่ยวกับโปรแกรมจำลอง

35.2.10 (1 ต.ค. 2024)

  • Pixel AVD ใหม่ที่เพิ่มเข้ามา ได้แก่ Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL และ Pixel 9 Pro Fold
  • เพิ่มรูปภาพระบบแท็บเล็ตใหม่สำหรับ Vanilla Ice Cream (API 35)

35.1.20 (29 ส.ค. 2024)

  • เพิ่ม Pixel 8a AVD แล้ว
  • การแก้ไขข้อบกพร่องต่างๆ สำหรับอุปกรณ์แบบพับได้
  • การอัปเดตและแก้ไข Qt สำหรับข้อขัดข้องและข้อผิดพลาดเกี่ยวกับ QT
  • [การแก้ไขข้อบกพร่อง] แก้ไขข้อขัดข้องและการค้างใน Windows เมื่อใช้แอปพลิเคชันที่ใช้ Vulkan

34.2.16 (9 กรกฎาคม 2024)

  • [การแก้ไขข้อบกพร่อง] UI ค้างที่เกิดขึ้นใน Pixel Fold ระหว่างการพับ/กาง
  • [การแก้ไขข้อบกพร่อง] การแสดงเวอร์ชัน Android เป็น Android Vanilla Ice Cream Preview อย่างไม่ถูกต้องแทน API 35 ใน Mac M1
  • [การแก้ไขข้อบกพร่อง] ปัญหา #296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE แสดงผลเป็น "จริง" ในโปรแกรมจำลองแท็บเล็ต Pixel C

34.2.15 (31 พฤษภาคม 2024)

  • การแก้ไขปัญหาการทำงานผิดพลาดหลายอย่างที่เกี่ยวข้องกับโหมด Swangle และการล้างข้อมูลผู้ลงโฆษณา

34.2.14 (20 พฤษภาคม 2024)

ทดสอบด้วย Android Studio Jellyfish Stable Patch 1

  • [แก้ไขข้อบกพร่อง] บางครั้งสแนปชอตค้างบนโปรแกรมจำลองที่ฝัง
  • [การแก้ไขข้อบกพร่อง] ปุ่ม "ไม่" และ "ยกเลิก" ไม่ทำงานอย่างถูกต้องในภาพหน้าจอ
  • [การแก้ไขข้อบกพร่อง] ปุ่มแป้นบังคับทิศทางไม่ทำงาน
  • [การแก้ไขข้อบกพร่อง] แก้ไขปัญหาที่พบใน Windows ซึ่งทำให้โปรแกรมจำลองไม่เริ่มทำงานในบางเงื่อนไขเมื่อใช้โหมด GPU กับ ANGLE และแสดงข้อความแสดงข้อผิดพลาด "เริ่มต้นการจําลอง GL ไม่สําเร็จ" ในบันทึก โปรดทราบว่าการเริ่มโปรแกรมจำลองด้วยบรรทัดคำสั่งที่มีตัวเลือก -gpu swangle_indirect อาจยังทำให้เกิดข้อผิดพลาดนี้ในเวอร์ชันนี้ หากคุณยังต้องการเริ่มโปรแกรมจำลองโดยใช้บรรทัดคำสั่งใน Windows ที่มีการแสดงผลกราฟิกของซอฟต์แวร์ในเวอร์ชันนี้ โปรดใช้ -gpu swiftshader_indirect
  • [การแก้ไขข้อบกพร่อง] แป้นพิมพ์ลัดสำหรับตำแหน่งจะโหลดแผนที่ที่ใช้งานไม่ได้
  • [การแก้ไขข้อบกพร่อง] ขณะตั้งค่าตำแหน่ง กล่องโต้ตอบ "บันทึกเส้นทาง" จะหายไป

34.2.13 (30 เมษายน 2024)

ทดสอบกับ Android Studio Jellyfish เวอร์ชันเสถียร

  • อัปเดตเป็น Qt 6.5.3
  • ความเข้ากันได้สำหรับการอัปเดต Google Maps API ที่ใช้ในฟีเจอร์ตำแหน่งในการควบคุมเพิ่มเติมของโปรแกรมจำลอง ซึ่งจะเกิดขึ้นช่วงปลายเดือนพฤษภาคม
  • การแก้ไขข้อขัดข้องที่มีผลกระทบสูง
  • การแก้ไขต่างๆ ใน Pixel AVD
  • อัปเดตไลบรารีกราฟิกที่ใช้สําหรับการแสดงผลด้วยซอฟต์แวร์
  • [การแก้ไขข้อบกพร่อง]ปัญหา 225541819 การเริ่ม Chrome ทำให้โปรแกรมจำลองใน x86_64 ขัดข้อง
  • [การแก้ไขข้อบกพร่อง]ปัญหา 314614435 แยกวิเคราะห์สวิตช์ -http-proxy อย่างไม่ถูกต้อง

34.1.20 (1 เมษายน 2024)

ทดสอบกับ Android Studio Iguana เวอร์ชันเสถียร

  • [การแก้ไขข้อบกพร่อง] ปัญหา #314614435: แก้ไขปัญหาที่ระบบแยกวิเคราะห์สวิตช์ -http-proxy อย่างไม่ถูกต้อง

34.1.19 (7 มีนาคม 2024)

ทดสอบกับ Android Studio Iguana เวอร์ชันเสถียร

  • [แก้ไขข้อบกพร่อง] ปัญหา #312677259: แก้ปัญหาหน้าจอค้างในโปรแกรมจำลองที่ฝังหลังจากปรับขนาดหน้าต่าง

34.1.18 (29 ก.พ. 2024)

ทดสอบกับ Android Studio Iguana เวอร์ชันเสถียร

  • มีการเพิ่มอุปกรณ์ลงในโปรแกรมจำลอง ซึ่งได้แก่
    • Pixel Fold
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • การทดสอบการผสานรวม gRPC: ตอนนี้ปลายทาง gRPC พร้อมใช้งานกับการทดสอบแบบมีเครื่องควบคุมซึ่งดําเนินการภายในโปรแกรมจําลองซึ่งจะช่วยให้สามารถทดสอบสถานการณ์ที่สมจริง ฟีเจอร์นี้ช่วยให้นักพัฒนาแอปโต้ตอบกับปลายทาง gRPC ที่โฮสต์โดยโปรแกรมจำลอง Android ได้อย่างปลอดภัยจากภายในการทดสอบเครื่องมือวัดผลของ Android
  • การแก้ไขข้อบกพร่องหลายรายการ

33.1.24 (28 ธ.ค. 2023)

ทดสอบกับ Android Studio Hedgehog Stable และ Iguana Beta 1

  • แก้ไขปัญหาเว็บแคมโปรแกรมจำลองที่ไม่อนุญาตให้บันทึกหน้าจอในรูปแบบ mp4
  • แก้ไขข้อขัดข้องของโปรแกรมจำลองใน AVD ของ Pixel Fold เมื่อกางออกระหว่างการบันทึกหน้าจอ
  • แก้ไขปัญหาที่ Pixel Fold แสดงเคสโทรศัพท์แบบอื่นที่มีแป้นพิมพ์แบบถอดออกได้และใช้งานไม่ได้ (แก้ไขแล้วใน Windows, Mac Intel และ Linux)
  • แก้ไขข้อบกพร่องในลักษณะที่ปรากฏของเซ็นเซอร์เสมือนในโหมดสแตนด์อโลน (แก้ไขแล้วใน Windows, Mac Intel และ Linux)
  • แก้ไขข้อขัดข้องบางรายการ โดยเฉพาะขณะปิดโปรแกรมจำลอง

33.1.23 (30 พ.ย. 2023)

ทดสอบกับ Android Studio Giraffe Patch 4 และ Hedgehog เวอร์ชันเสถียร

  • การใช้อุปกรณ์แบบพับได้แบบใหม่เพื่อจําลองอุปกรณ์ Pixel Fold ได้ดียิ่งขึ้น ใช้งานได้กับ API 34 เวอร์ชันล่าสุด
  • การอัปเกรดแบ็กเอนด์ของกราฟิก: เราได้ใช้โปรโตคอล gfxstream สำหรับกราฟิกแบ็กเอนด์ของเรา ซึ่งการเพิ่มประสิทธิภาพนี้ช่วยยกระดับประสิทธิภาพกราฟิกโดยรวมและความเสถียรของระบบของคุณ นอกจากนี้ เราขอแนะนำการรองรับ Vulkan 1.3 โดยเริ่มจากอิมเมจระบบที่มี API 34
  • คำขอคุณลักษณะ: ตัวเลือกในการปิดใช้ท่าทางสัมผัสแบบบีบเพื่อซูมหรือกำหนดแป้นลัดอีกครั้ง
  • [การแก้ไขข้อบกพร่อง] ปัญหา #302562962 แก้ไขข้อบกพร่องที่เว็บแคมของโปรแกรมจำลองขัดข้องเมื่อใช้ macOS Sonoma
  • [การแก้ไขข้อบกพร่อง] ปัญหา #293503871 แก้ไขข้อบกพร่องที่ระบบไม่บันทึกการตั้งค่า "ไมโครโฟน" เมื่อรีสตาร์ทโปรแกรมจำลอง
  • [การแก้ไขข้อบกพร่อง] ปัญหา #270386314 แก้ไขข้อผิดพลาดเกี่ยวกับภาพเคลื่อนไหวที่แถบด้านข้างยังคงเปิดอยู่เมื่อย่อหน้าจอ AVD
  • [การแก้ไขข้อบกพร่อง] ปัญหา #154896775 แก้ไขเครื่องมือส่งข้อบกพร่อง

32.1.15 (29 ส.ค. 2023)

ทดสอบด้วย Android Studio Giraffe Patch 1 และ Hedgehog Canary 16

  • ปฏิบัติตามข้อกําหนดของ GAS HW สําหรับเซ็นเซอร์ในโปรแกรมจําลอง AAE
  • [แก้ไขข้อบกพร่อง] ปัญหา #266201208 ไม่มีการส่ง SMS ภาษาฮีบรูบน API 33
  • [การแก้ไขข้อบกพร่อง] ปัญหา #257097404 โปรแกรมจำลองไม่แสดงเวลาถูกต้องหลังจากระบบปลุกโฮสต์ใน API 29 และ 30
  • [แก้ไขข้อบกพร่อง] ปัญหา #228201899 ไม่เห็น Google Maps ในการควบคุมแบบขยายของโปรแกรมจำลอง Android

32.1.14 (27 มิถุนายน 2023)

ทดสอบกับ Android Studio Hedgehog Canary 8, Giraffe เบต้า 5 และ Flamingo แบบเสถียร

  • แก้ไขการวางแนวกล้องและการบิดเบี้ยวของโปรแกรมจำลอง
  • [การแก้ไขข้อบกพร่อง] ปัญหา #257097404 "โปรแกรมจำลองไม่แสดงเวลาถูกต้องหลังจากโฮสต์ตื่นขึ้น" ข้อบกพร่องนี้ยังเกิดขึ้นได้กับ API ระดับ 29 และ API ระดับ 30
  • [การแก้ไขข้อบกพร่อง] ปัญหา #243456582 "รุ่น Android หลังจาก API 30 อาจเริ่มต้นไม่ถูกต้องในโปรแกรมจำลองในเครื่อง Mac M1"

32.1.13 (22 พฤษภาคม 2023)

ทดสอบกับ Android Studio Hedgehog Canary 2, Giraffe Beta 1 และ Flamingo เวอร์ชันเสถียร

  • เพิ่มการรองรับ AVD ของ Pixel Fold และ Pixel Tablet
  • ปรับปรุงปัญหาข้อขัดข้องของ gLinux
  • [การแก้ไขข้อบกพร่อง] ปัญหา #215231636 "โปรแกรมจำลองที่มี API สูงกว่า API 30 ไม่ทำงานในโปรเซสเซอร์ Intel รุ่นที่ 12"
  • [แก้ไขข้อบกพร่อง] ปัญหา #275397905 โปรแกรมจำลอง Android M1 ขัดข้องบ่อยครั้งเมื่อย้ายโฟกัสของเคอร์เซอร์เข้าและออกจากโปรแกรมจำลองซ้ำๆ
  • ปัญหาที่ทราบเกี่ยวกับการเปิดตัว AVD หมายเลข 281725854 โปรดดูข้อมูลเพิ่มเติมที่การแก้ปัญหาเกี่ยวกับโปรแกรมจำลอง

32.1.12 (21 มีนาคม 2023)

ทดสอบกับ Android Studio Giraffe Canary 10, Flamingo RC และ Electric Eel Patch 2

  • [การแก้ไขข้อบกพร่อง] ปัญหา #267647323 เครือข่ายไม่ทำงานในโปรแกรมจำลองที่เริ่มต้นจาก Android Studio
  • [การแก้ไขข้อบกพร่อง] ปัญหา #268498686 หน้าจอโปรแกรมจำลองกะพริบ
  • [แก้ไขข้อบกพร่อง] ปัญหา #270034824 ประสิทธิภาพของโปรแกรมจำลองลดลงหลังจากอัปเดตเป็นเวอร์ชัน 33.1.1
  • [การแก้ไขข้อบกพร่อง] ปัญหา #225541819 การเริ่ม Chrome ทำให้โปรแกรมจำลองใน x86_64 ขัดข้อง
  • [แก้ไขข้อบกพร่อง] ปัญหา #257097404 โปรแกรมจำลองแสดงเวลาที่ไม่ถูกต้องหลังจากโฮสต์ตื่นนอน
  • เพิ่มการรายงานข้อขัดข้องสำหรับอุปกรณ์ Apple M1

32.1.11 (8 กุมภาพันธ์ 2023)

ทดสอบกับ Android Studio Giraffe Canary 2, Flamingo Beta 1 และ Electric Eel Patch 1

  • การเพิ่มประสิทธิภาพความเร็วเครือข่าย
  • การรองรับเมาส์ในโปรแกรมจำลองแบบฝัง
  • การปรับปรุง Virtio-snd
  • ปิดใช้ลิงก์สัญลักษณ์ขณะแตกไฟล์โปรแกรมจำลอง Android ระหว่างการติดตั้ง
  • แก้ไขข้อขัดข้องในการตรวจสอบโปรแกรมจำลอง

31.3.14 (13 ธันวาคม 2022)

ทดสอบกับ Android Studio Dolphin, Electric Eel RC1 และ Flamingo Canary 9

  • [การแก้ไขข้อบกพร่อง] แก้ไขข้อขัดข้องของ AVD ที่เกิดขึ้นเมื่อเข้าสู่ระบบ Play Store

31.3.13 (27 ตุลาคม 2022)

ทดสอบกับ Android Studio Dolphin, Electric Eel เบต้า 2 และ Flamingo Canary 5

  • [การแก้ไขข้อบกพร่อง] ปัญหา #249948338: พารามิเตอร์เขตเวลาไม่ทํางาน
  • [การแก้ไขข้อบกพร่อง] ปัญหา #249366543: ตัวเลือก -dns-server ของโปรแกรมจำลองไม่ทำงานหลังจาก API 31

31.3.12 (10 ตุลาคม 2022)

ทดสอบกับ Android Studio Dolphin และ Electric Eel เบต้า 1

การอัปเดตนี้ประกอบด้วยการปรับปรุงและการแก้ไขต่อไปนี้

  • [การแก้ไขข้อบกพร่อง] ปัญหา #247843000: ข้อผิดพลาดในการจัดการเส้นทางแบบสัมพัทธ์ของ AVD
  • เพิ่มขนาดดิสก์สำหรับ API 24 ขึ้นไป

31.3.11 (23 กันยายน 2022)

ทดสอบกับ Android Studio Dolphin และ Electric Eel Canary 10

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • [การแก้ไขข้อบกพร่อง] AVD ของโปรแกรมจำลองที่ฝังไว้ขัดข้องในหน้าต่างการควบคุมแบบขยาย
  • [การแก้ไขข้อบกพร่อง] ปัญหา #183139207: ปัญหาเกี่ยวกับเสียงที่เชื่อมโยงกับการเปิดใช้งานไมโครโฟนของโปรแกรมจำลอง
  • [การแก้ไขข้อบกพร่อง] ปัญหา #229764024: ข้อบกพร่องการสัมผัสที่เกาะติดของ AVD ซึ่งส่งผลให้เกิดปัญหาเกี่ยวกับลักษณะการทํางานของ UI
  • [การแก้ไขข้อบกพร่อง] ข้อผิดพลาดในการเปิดใช้ AVD API ระดับ 33 ใน Mac M1
  • [การแก้ไขข้อบกพร่อง] ปัญหา #243053479: ความเร็วของเครือข่ายช้าลงหลังจากอัปเดตโปรแกรมจำลอง
  • [การแก้ไขข้อบกพร่อง] ปัญหา #244617627: ตำแหน่งของ Maps ไม่ทำงานใน Windows และ Linux
  • [การแก้ไขข้อบกพร่อง] ปัญหา #232971796: ปุ่ม "โทรหาอุปกรณ์" ไม่ทำงานในหน้าการควบคุมแบบขยาย > โทรศัพท์
  • อัปเดตโปรแกรมจำลอง Android เป็น minigbm
  • การย้ายข้อมูลสคริปต์การสร้างไปยัง Python3

31.3.10 (18 สิงหาคม 2022)

ทดสอบกับ Android Studio Dolphin เบต้า 5 และ Electric Eel Canary 9

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

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • การรองรับเส้นทาง Unicode ที่ดีขึ้นบน Windows
  • จัดการการปิดโปรแกรมจำลองได้ดียิ่งขึ้นเพื่อให้การเปิดตัว AVD เดียวกันใหม่ประสบความสําเร็จ
  • การออกแบบ AVD แบบพับได้และการตั้งค่าเริ่มต้นที่อัปเดต
  • ปุ่มโปรแกรมจำลอง Wear ที่อัปเดต
  • การปรับปรุงการสตรีมเสียง gRPC
  • เพิ่มคำสั่งคอนโซลโปรแกรมจำลองที่ปรับขนาดได้แล้ว
  • การแก้ไข Chrome สำหรับ API 31
  • [การแก้ไขข้อบกพร่อง] การตรวจสอบสิทธิ์บัญชี Google ล้มเหลวเมื่อใช้ GmsCore v21.42.18

31.2.10 (20 เมษายน 2022)

ทดสอบกับ Android Studio Dolphin Canary 8 และ Chipmunk RC 1

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • เพิ่มยูทิลิตีเพื่อโหลดฟังก์ชัน Vulkan ด้วยวิดีโอสำรอง
  • [แก้ไขข้อบกพร่อง] แก้ไขข้อผิดพลาดบิลด์ gcc8

31.2.9 (23 มีนาคม 2022)

ทดสอบกับ Android Studio Dolphin Canary 7

การอัปเดตนี้มีการแก้ไขต่อไปนี้

  • [การแก้ไขข้อบกพร่อง] ละเว้นปัญหาการขาดแคลนหน่วยความจำเมื่อบันทึกภาพรวมใน M1

31.2.8 (7 กุมภาพันธ์ 2022)

ทดสอบกับ Android Studio Bumblebee Patch 1 และ Chipmunk Canary 6

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • [การแก้ไขข้อบกพร่อง] ลงชื่อเข้าใช้แอปไม่ได้
  • [การแก้ไขข้อบกพร่อง] ปัญหา #215368358: "adb reboot" ในแพลตฟอร์ม Intel จะทําให้ avd ขัดข้องด้วย "คําขอปิด vcpu"

31.2.7 (1 กุมภาพันธ์ 2022)

ทดสอบกับ Android Studio Bumblebee Patch 1 และ Chipmunk Canary 6

การอัปเดตนี้มีการแก้ไขต่อไปนี้

  • [การแก้ไขข้อบกพร่อง] ข้อผิดพลาดเกี่ยวกับโปรแกรมจำลองที่ค้างในเครื่อง M1

31.2.6 (20 มกราคม 2022)

ทดสอบกับ Android Studio Arctic Fox, Bumblebee Beta 4 และ Chipmunk Canary 6

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • เพิ่มปุ่ม Wear ลงในโปรแกรมจำลอง Wear OS
  • ทำให้แก้ไขข้อมูลยานพาหนะทั้งหมดได้ในแท็บ VHAL
  • [การแก้ไขข้อบกพร่อง] การตรวจสอบสิทธิ์บัญชี Google ล้มเหลวเมื่อใช้ GmsCore v21.42.18
  • [การแก้ไขข้อบกพร่อง] Netshaper ทำงานร่วมกับ VirtioWifi ไม่ได้
  • [การแก้ไขข้อบกพร่อง] คําสั่งคอนโซลเมาส์เหตุการณ์ไม่ทํางาน
  • เพิ่มการตรวจสอบ KVM สำหรับการสร้าง AVD ในพื้นที่

31.1.3 (18 มกราคม 2022)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • เปิดใช้พอร์ตคอนโซลสำหรับ Fuchsia
  • เมื่อปรับขนาดหน้าต่างหลายจอ ระบบจะไม่สนใจการวางแนว
  • Wi-Fi: เพิ่มการรองรับการกรองแพ็กเก็ตแบบยูนิแคสต์ตามที่อยู่ MAC ของ MAT
  • Wi-Fi: แก้ไขข้อขัดข้องขณะใช้ VMnet อยู่

30.9.5 (15 ธันวาคม 2021)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • เพิ่มความสามารถในการปรับขนาดเป็นหน้าต่างขนาดเดสก์ท็อปหรือแท็บเล็ตได้อย่างง่ายดาย
  • เพิ่มการรองรับการป้อนข้อมูลแบบมัลติทัชจากอุปกรณ์โฮสต์ที่เข้ากันได้
  • VirtioWifi: เพิ่มการรองรับเครือข่าย Tap
  • เปิดใช้การป้อนข้อมูลด้วยปุ่มหมุนสำหรับอิมเมจระบบ Wear
  • แก้ปัญหาการกำหนดค่าเสียง gRPC
  • อัปเดตการเล่นโปรแกรมจำลอง SensorReplay ให้รองรับเซ็นเซอร์ Android มาตรฐาน
  • เชื่อมต่อโปรแกรมจำลองกับอุปกรณ์ต่อพ่วงและอุปกรณ์โดยใช้ USB แบบผ่านพ่วง

30.4.5 (23 กุมภาพันธ์ 2021)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • macOS: แก้ไขปัญหาการบิดเบือนของอินพุตเสียง
  • เพิ่มการรองรับ virtio-vsock ใน Userspace
  • อิมเมจระบบในอนาคตจะใช้ virtio-console สำหรับข้อความ logcat และเคอร์เนล
  • เร่งการแสดงผล Vulkan
  • เพิ่มการรองรับการแก้ไขข้อบกพร่องสแนปชอตเมื่อการทดสอบไม่สําเร็จ
  • virtio-gpu: อัปเดตคำจำกัดความเพื่อรองรับลิสต์ค่าทรัพยากรประเภท Blob เวอร์ชันล่าสุด
  • เพิ่มการรองรับภาพรวมสําหรับการนําส่งกราฟิกประเภท "asg"
  • macOS: เพิ่มการรองรับการสร้างเพื่อเทียบกับ macOS SDK 11.1 ขึ้นไป
  • KVMclock เปิดใช้โดยค่าเริ่มต้นในอิมเมจระบบเวอร์ชันใหม่
  • เพิ่มการรองรับเซ็นเซอร์วัดอัตราการเต้นของหัวใจลงในโปรแกรมจำลอง Wear
  • นำแบ็กเอนด์ Vulkan สำหรับความสามารถในการถ่ายโอนได้ออกแล้ว
  • เพิ่มการรองรับฟีเจอร์อื่นๆ ในเครื่องจำลองโมเด็ม

30.0.26 (16 สิงหาคม 2020)

การอัปเดตนี้รวมถึงฟีเจอร์ใหม่หลายรายการ การปรับปรุงฟีเจอร์ที่มีอยู่ และการแก้ไขข้อบกพร่อง

รองรับอุปกรณ์แบบพับได้พร้อมเซ็นเซอร์บานพับเสมือนจริงและมุมมอง 3D

  • เพิ่มการรองรับเซ็นเซอร์บานพับสำหรับอุปกรณ์แบบพับได้ ซึ่งต้องใช้การกำหนดค่า AVD และอิมเมจระบบ Android 11 ในอนาคต ตอนนี้ผสานรวมมุมมองแบบพับได้ 3 มิติและพารามิเตอร์ของบานพับเข้ากับค่าที่กำหนดล่วงหน้าแบบพับได้ที่มีอยู่แล้ว รายการต่อไปนี้สามารถใช้กับไฟล์ config.ini ของ AVD แบบพับได้ขนาด 7.3 ได้

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • ตอนนี้อุปกรณ์แบบพับได้ยังมีพารามิเตอร์ประเภทย่อยด้วย config.ini พร็อพเพอร์ตี้ hw.sensor.hinge.sub_type = hinge/fold พร้อมใช้งานแล้ว อ่านเพิ่มเติมได้ในบล็อกโพสต์การพัฒนาแอปสำหรับ Android 11 ด้วยโปรแกรมจำลอง Android

  • เปิดใช้เซ็นเซอร์บานพับโดยค่าเริ่มต้นแล้ว

  • หากมีการกำหนดค่าอุปกรณ์แบบพับได้ ตอนนี้โปรแกรมจำลองจะส่งข้อมูลอัปเดตเซ็นเซอร์มุมบานพับและการเปลี่ยนแปลงท่าทางไปยังผู้มาเยือน ตอนนี้อุปกรณ์แบบพับได้ที่มีอยู่แล้วจะอัปเดตมุมและท่าทางเซ็นเซอร์แบบบานพับเมื่อกดปุ่มพับหรือกางออกของแถบเครื่องมือ

โปรแกรมจำลองสำหรับโฮสต์ ARM64

  • ตอนนี้ซอร์สโค้ดโปรแกรมจำลอง Linux รองรับการคอมไพล์แบบข้ามระบบตั้งแต่โฮสต์ x86_64 ไปจนถึง arm64 ซึ่งทำให้สามารถเรียกใช้อิมเมจระบบ arm64 ด้วยระบบเสมือนจริง KVM ได้ ปัจจุบันรองรับเฉพาะ -gpu swiftshader_indirect (การแสดงผลโฮสต์ Swiftshader arm64) แต่คุณอาจใช้ชุดไลบรารี libEGL/libGLESv2 ของ GPU โฮสต์ที่เข้ากันได้ได้ด้วย โดยแทนที่ lib64/gles_swiftshader ด้วยไลบรารีดังกล่าว แล้วเปิดใช้งานอีกครั้งด้วย -gpu swiftshader_indirect สแนปชอตอาจไม่ทำงานเช่นกัน (เพิ่ม -no-snapshot ลงในบรรทัดคำสั่ง) วิธีการ:

    mkdir emu
    cd emu
    repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1
    repo sync -qcj 12
    cd external/qemu
    pip install absl-py
    pip install urlfetch
    sudo apt-get install crossbuild-essential-arm64
    python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
    
  • เรากำลังดำเนินการรองรับ Apple Silicon

การสนับสนุน virtio-gpu

  • เพิ่มการรองรับฝั่งโฮสต์สำหรับทรัพยากร Blob ที่เชื่อมโยงกันของโฮสต์ virtio-gpu ที่กำลังจะเปิดตัว
  • เนื่องจากวิธีแสดงผลโปรแกรมจำลอง ตอนนี้เราจึงประมวลผล virtio-gpu virtqueue ในเธรด vcpu (เนื่องจากการแสดงผลถูกบันทึกไปยังเธรดอื่นอยู่แล้ว) เราจะเปิดการแสดงผล virtio-gpu ในอิมเมจของระบบและรุ่นจำลองในอนาคต
  • ในอิมเมจระบบในอนาคต โปรแกรมจำลองจะเรียกใช้กราฟิกทั้งหมดได้ด้วยสแต็กที่อิงตาม virtio-gpu

ฟีเจอร์ใหม่และการเพิ่มประสิทธิภาพอื่นๆ

  • ตอนนี้การส่งผ่าน USB พร้อมใช้งานใน Windows โดยใช้ -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id> แล้ว (การดำเนินการนี้ควรทำงานบน Linux และ macOS อยู่แล้ว)
  • อัปเดตไลบรารี WebRTC เป็น M83
  • ตอนนี้โปรแกรมจำลองรองรับการสตรีมเสียงในคอนเทนเนอร์ผ่าน WebRTC แล้ว
  • นําปลายทางไปป์ darwinn ออกแล้ว
  • การถอดรหัส CUDA VPx สำหรับวิดีโอพร้อมใช้งานแล้ว หากการถอดรหัส CUDA VPx พร้อมใช้งานในฮาร์ดแวร์ผ่านตัวแปรสภาพแวดล้อม ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
  • ใน macOS คุณสามารถใช้ SSE 4.1 และ 4.2 ได้จากภายในผู้มาเยือน Android
  • ใน macOS ระบบจะเปิดใช้ INVTSC โดยค่าเริ่มต้น วิธีนี้จะช่วยปรับปรุงความแม่นยำในการวัดเวลาจากแขก
  • ตอนนี้เราติดตามแผงควบคุมแบบขยายที่ผู้ใช้เลือกไว้ในเมตริก
  • ปัจจุบันโปรแกรมจำลอง Linux ใช้นาฬิกาแบบพาราไวต์ของ KVM เมื่อเวอร์ชันเคอร์เนลของผู้มาเยือน >= 5.4 (อิมเมจระบบ R ขึ้นไป)
  • ตอนนี้โปรแกรมจำลองใช้ LZ4 เพื่อคลายการบีบอัดเคอร์เนลของผู้ใช้ชั่วคราว ทำให้เข้ากันได้กับไปป์ไลน์เคอร์เนลสมัยใหม่
  • เพิ่มคำสั่งคอนโซลเพื่อรับไดเรกทอรี AVD โปรแกรมจำลอง เส้นทางไฟล์การค้นพบใน Use Case ที่ฝัง Studio และเส้นทางไปยังสแนปชอต ดังนี้

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • เราได้เพิ่มตัวเลือกในการซ่อนกรอบอุปกรณ์สำหรับ AVD ปัจจุบันในการควบคุมแบบขยาย > การตั้งค่าเพื่อให้คุณประหยัดพื้นที่ในหน้าจอแนวตั้งได้ง่ายขึ้น ในการซ่อนเฟรมอุปกรณ์สำหรับ AVD ทั้งหมดทั่วโลก เราได้ทำให้แฟล็กฟีเจอร์ NoDeviceFrame ซึ่งเปิดใช้งานได้โดยการเรียกใช้โปรแกรมจำลองจากบรรทัดคำสั่งที่มี -feature NoDevice เฟรม หรือเพื่อล็อกเฟรมโดยเพิ่ม NoDeviceFrame = on ลงใน ~/.android/advancedFeatures.ini (สร้างไฟล์นี้หากยังไม่มี)

  • เพิ่มรายการแบบเลื่อนลงในหน้าเครือข่ายมือถือเพื่อเปิดและปิดการรองรับการวัดปริมาณการใช้งานอินเทอร์เน็ต ซึ่งจะไม่มีผลกับภาพระบบเวอร์ชันเก่าที่ไม่รองรับการเปิดตัวเลือกการวัดปริมาณการใช้งานอินเทอร์เน็ต 5G

    • นอกจากนี้ เรายังได้เพิ่มคําสั่งคอนโซลเพื่อวัตถุประสงค์เดียวกันด้วย gsm meter on|off
  • อัปเกรด Toolchain / บิลด์เป็น C++17

แก้ไข: โปรแกรมจำลองที่ฝัง

  • ตอนนี้คลิปบอร์ดควรใช้งานได้แล้ว
  • แก้ไขปัญหาที่ระบบแสดงอักขระตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็กในโปรแกรมจำลอง
  • แก้ไขการโหลดโทเค็นคอนโซลจากเส้นทาง Unicode ใน Windows
  • แก้ไขข้อความแสดงข้อผิดพลาด SO_REUSEPORT ใน Linux
  • แก้ไขปัญหาความผิดพลาดของสแนปชอตเมื่อส่งคําสั่งสแนปชอตผ่าน gRPC รวมถึงเมื่อกดปุ่มบันทึกสแนปชอตในโปรแกรมจำลองที่ฝังอยู่ใน Android Studio
  • เมื่อใช้โปรแกรมจำลอง Linux ที่ฝังอยู่ใน Studio เราพบว่าหากดำเนินการผ่าน Chrome Remote Desktop จะมีข้อบกพร่องที่ XDG_RUNTIME_DIR ไม่ได้ตั้งค่าไว้ และอาจทำให้โปรแกรมจำลองที่ฝังอยู่ไม่ปรากฏเนื่องจากไฟล์การค้นพบโปรแกรมจำลองอยู่ใน XDG_RUNTIME_DIR คุณตรวจสอบสถานะของปัญหาที่เกี่ยวข้องในเครื่องมือติดตามปัญหาของ Chrome ได้

    วิธีแก้ปัญหาคือตอนนี้โปรแกรมจำลองจะกลับไปใช้ไฟล์การค้นพบในไดเรกทอรีอื่นซึ่งอาจแตกต่างกันโดยอิงตาม UID ของผู้ใช้: /run/user/&lt;uid>

  • โปรแกรมจำลองแบบฝัง: ตอนนี้อุปกรณ์ที่มีมุมโค้ง/รอยบากเปลี่ยนเลย์เอาต์ได้อย่างเหมาะสมแล้วเพื่อให้มีพื้นที่สำหรับมุมและรอยบาก ซึ่งต้องใช้ Cold Boot ในโปรแกรมจำลองเหล่านั้น

  • ตอนนี้ปลายทาง gRPC รองรับการส่ง SMS ไปยังอุปกรณ์แล้ว

การแก้ไขทั่วไป

  • เราพบปัญหาความเข้ากันได้เมื่อใช้โปรแกรมจำลอง Windows ที่มี Riot Vanguard ทำงานอยู่ ตอนนี้โปรแกรมจำลอง Windows จะตรวจหาโปรแกรมป้องกันกลโกง Vanguard และแสดงข้อความเตือนหากตรวจพบ Vanguard
  • แก้ไขข้อผิดพลาด FD_SETSIZE ใน Windows ตอนนี้เราใช้ WSAEventSelect() แทน select() ในการสร้างการเชื่อมต่อแบบไม่บล็อกไปยังเซิร์ฟเวอร์ Loopback
  • เพิ่มการรองรับฟีเจอร์ CPUID ของ F16C ในโปรแกรมจำลอง Linux พร้อมแก้ไขปัญหาในการเรียกใช้แอปพลิเคชัน ARM64 บางรายการผ่านการแปล NDK หรือกำลังดำเนินการสำหรับ macOS/Windows
  • แก้ไขการเล่นเส้นทาง gpx/kml ให้เป็นไปตามการประทับเวลา
  • แก้ไขไอคอนที่เด้งเมื่อเปิดใช้งานสำหรับ macOS
  • หาก hw.audioInput=no และ hw.audioOutput=no ใน config.ini เสียงของโปรแกรมจำลองจะปิดอยู่อย่างถูกต้อง
  • แก้ไขปัญหาที่หากย่อหน้าต่างโปรแกรมจำลองขณะที่หน้าต่างการควบคุมแบบขยายเปิดอยู่แต่ไม่ทำงาน หน้าต่างการควบคุมแบบขยายจะยังคงปรากฏขึ้นเมื่อปรับขนาดหน้าต่างโปรแกรมจำลอง เราจะนำลักษณะการทำงาน (เคสที่มีหน้าต่างการควบคุมเพิ่มเติมที่ใช้งานอยู่) ออกทั้งหมดในการอัปเดตในอนาคต
  • แก้ไขข้อบกพร่องที่ทำให้ Wi-Fi ไม่เชื่อมต่อเมื่อโปรแกรมจำลองเริ่มต้น
  • แก้ไขการหยุดทำงานออกเมื่อโปรแกรมจำลองออกคำสั่ง Shell ที่มีระยะหมดเวลาที่ยาวหรือไม่จำกัด
  • อัปเดต pc-bios พร้อมการแก้ไขเพื่อรองรับรูปภาพขนาดใหญ่ที่ส่งไปยัง -initrd ได้ดียิ่งขึ้น BIOS ก่อนหน้านี้ใช้วิธีการที่ไม่มีประสิทธิภาพมากนัก
  • แก้ไขข้อขัดข้องระหว่างการสิ้นสุดเมื่อใช้ตัวเลือก -wifi-server-port
  • ตอนนี้โปรแกรมจำลองจะพิมพ์คำเตือนหากมีการส่งตัวเลือกที่ไม่รองรับไปยัง -prop (รองรับเฉพาะพร็อพเพอร์ตี้ qemu.*)
  • เมื่อสร้างโปรแกรมจำลองใน Windows คุณควรเห็นการเขียนไฟล์ไม่สำเร็จน้อยลง ดูข้อมูลเพิ่มเติมได้ที่วิธีการสำหรับบิลด์ Windows
  • ปิดใช้ปุ่มซูมสำหรับ AVD แบบพับได้ซึ่งทำให้เกิดปัญหา
  • ตอนนี้โปรแกรมจำลองรายงานเวลาในการบูตที่มาจากอุปกรณ์ที่รีบูตได้อย่างถูกต้องแล้ว
  • Linux: ในกรณีที่มีสิทธิ์ KVM ไม่เพียงพอ ตอนนี้โปรแกรมจำลองจะพิมพ์วิธีการแก้ไขข้อบกพร่องได้เร็วขึ้น
  • แก้ปัญหาที่โปรแกรมจำลองไม่สามารถบูตภาพระบบล่าสุดโดยไม่มีการเร่งความเร็ว
  • แก้ไขข้อขัดข้องด้านหน่วยความจำหรือข้อขัดข้องเมื่อเริ่มต้นจากเครื่องตรวจจับที่บูตเสร็จสมบูรณ์
  • แก้ไขปัญหาหน่วยความจำรั่วไหลระหว่างเซสชันการบันทึกหน้าจอเป็นเวลานาน
  • อัปเดตไอคอนโปรแกรมจำลองให้สอดคล้องกับการสร้างแบรนด์ของ Studio 4.1
  • เพิ่มการรองรับที่ดียิ่งขึ้นในการตรวจหาเซสชันระยะไกลใน Windows

การแก้ไข: การถอดรหัสกราฟิกและวิดีโอ

  • แก้ปัญหาที่เกม Asphalt 9 ล่าสุดแสดงผลเป็นหน้าจอสีดำ
  • นําสแปมเกี่ยวกับการล้างบัฟเฟอร์ที่แมปด้วย NULL ออกแล้ว
  • แก้ไขเงื่อนไขการแข่งขันเมื่อมีการทำลายสถานะ Vulkan เมื่อแอป Vulkan สำหรับผู้มาเยือนออก
  • ตอนนี้ตัวสร้างเฉดสีการจำลอง Vulkan ASTC/ETC2 ได้ผสานรวมอยู่ในไลบรารี libOpenglRender ซึ่งจะมีความน่าเชื่อถือมากกว่าการอ่านจากระบบไฟล์
  • แก้ไขปัญหาใน Vulkan ที่หากใช้งานกับอินสแตนซ์ Vulkan 1.0 ในโฮสต์ vkGetImageMemoryRequirements2KHR จะล้างช่อง pNext ของโครงสร้าง VkMemoryRequirements2 ที่แสดงผลอย่างไม่ถูกต้อง
  • แก้ไขปัญหาหน่วยความจำรั่วไหลในโปรแกรมแสดงผล Vulkan
  • แก้ไขการถดถอยล่าสุดที่ชิลด์ GLSL ES 1.00 ที่มีชื่อตัวแปรอย่าง isampler2D คอมไพล์ไม่สำเร็จ
  • อัปเดตโปรแกรมแปล shader ของ ANGLE พร้อมการแก้ไขต่างๆ ที่จัดการกับการคอมไพล์ shader ใน Linux ที่ไม่สำเร็จได้
  • ตอนนี้เราจะทำให้โปรแกรมจำลองขัดข้องหากคอมไพล์ Shader ของ Framebuffer Blit พื้นฐานไม่สำเร็จ เพื่อติดตามปรากฏการณ์นี้
  • อัปเดตเครื่องมือแปลเงาของ ANGLE เพื่อติดตามอัปเดตของ ANGLE การแก้ไขนี้ช่วยแก้ปัญหาเกี่ยวกับความเสียหายของหน่วยความจําเมื่อแปลและแปลงค่าคงที่ของ OpenGL ES Shader ที่ใช้เมทริกซ์ที่ไม่ใช่สี่เหลี่ยมจัตุรัส ตอนนี้โปรแกรมแปลชิดเดอร์เป็นไลบรารีที่ใช้ร่วมกันแยกต่างหากแล้ว libshadertranslator.dll
  • แก้ไขปัญหาเกี่ยวกับการเริ่มต้น Vulkan ในไดรเวอร์ GPU บางรายการ ซึ่งไม่พบฟังก์ชันอุปกรณ์ 1.1 บางรายการ
  • Vulkan: เราเปลี่ยนกลับไปใช้ตัวโหลดที่สร้างไว้ล่วงหน้าเนื่องจากใช้งานตัวโหลด Vulkan มากกว่า ซึ่งทำให้เกิดปัญหาในการตั้งค่าบางอย่าง เราจะหาวิธีที่ดีกว่า
  • แก้ไขปัญหาเมื่อใช้หน่วยความจำภายนอกของ Vulkan ซึ่งอาจมีการนําเข้าดัชนีประเภทหน่วยความจําที่ไม่ตรงกันในโฮสต์
  • แก้ไขปัญหาในการจําลอง GL_ALIASED_POINT_SIZE_RANGE ที่โฮสต์ไม่รองรับ enum
  • แก้ปัญหาที่ตัวปรับแสงเงา Skia คอมไพล์ Skia บน GPU ของโฮสต์บางรายการไม่ได้เนื่องจากข้อผิดพลาดที่เกี่ยวข้องกับ GL_EXT_shader_framebuffer_fetch
  • เนื่องจากเรานำสำเนาโปรแกรมแสดงผล ANGLE ของ D3D9 ออกเมื่อ 2-3 เวอร์ชันที่ผ่านมา ตอนนี้เราจึงเปลี่ยนผู้ใช้ที่ใช้โปรแกรมแสดงผลดังกล่าวเป็น ANGLE ของ d3d11 โดยอัตโนมัติหากเลือกไว้ในค่ากำหนด UI ด้วย
  • เพิ่มข้อมูลการแก้ไขข้อบกพร่องเพิ่มเติมในการเริ่มต้น WGL ใน Windows เพื่อติดตามข้อผิดพลาด
  • เมื่อเป็น hw.gltransport=virtio-gpu-pipe ระบบจะปรับปรุงประสิทธิภาพโดยการไม่แสดงภาพในโฮสต์เมื่อมีการโอนจากโฮสต์ไปยังผู้เข้าร่วม
  • เพิ่มการบันทึกการแก้ไขข้อบกพร่องเพิ่มเติมสำหรับกรณีที่การจําลอง OpenGLES เริ่มต้นไม่สําเร็จ
  • แก้ไขปัญหาวิดีโอ YouTube กะพริบหรือไม่แสดงในภาพหน้าจอขณะโหลด
  • เปลี่ยนกลับไปใช้การถอดรหัสซอฟต์แวร์สำหรับ libvpx ชั่วคราวเนื่องจากเราพบปัญหาเกี่ยวกับการถอดรหัสฮาร์ดแวร์ CUDA ของ libvpx หากคุณมีการใช้งานการถอดรหัสฮาร์ดแวร์ CUDA ที่รองรับในฝั่งโฮสต์ คุณจะเปิดใช้การถอดรหัสฮาร์ดแวร์ของ libvpx อีกครั้งได้ผ่านตัวแปรสภาพแวดล้อม ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1

30.0.10 (30 เมษายน 2020)

การอัปเดตนี้รองรับการเรียกใช้โปรแกรมจำลองใน Android Studio โดยตรง และอุปกรณ์เสมือนที่เปิดใช้งานโหมดหน้าต่างรูปแบบอิสระโดยค่าเริ่มต้น

เรียกใช้โปรแกรมจำลองใน Android Studio

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

โหมดหน้าต่างทรงอิสระ

ตอนนี้คุณสร้าง AVD ที่เปิดใช้โหมดหน้าต่างแบบอิสระได้แล้วโดยเลือกโปรไฟล์ฮาร์ดแวร์แท็บเล็ตแบบอิสระขนาด 13.5 นิ้วเมื่อสร้างอุปกรณ์เสมือนใน Android Studio โปรไฟล์ฮาร์ดแวร์นี้ต้องใช้อิมเมจระบบที่มี Android 11 Developer Preview 3 ขึ้นไป

ปัญหาที่ทราบ

ขณะนี้การปรับขนาดหน้าต่างรูปแบบอิสระใช้งานไม่ได้เนื่องจากปัญหาในการโอนโฟกัสไปยังเครื่องมือจัดการหน้าต่าง การดำเนินการนี้จะได้รับการแก้ไขในการเปิดตัวอิมเมจระบบ Android 11 ในอนาคต

30.0.0 (19 กุมภาพันธ์ 2020)

การอัปเดตนี้รวมภาพระบบ Android 11 (API ระดับ 30) และการปรับปรุงประสิทธิภาพเมื่อเรียกใช้ไบนารี ARM

อิมเมจระบบ Android 11

ตอนนี้คุณสร้าง AVD ที่ทำงานบน Android 11 ได้แล้วโดยเลือกภาพระบบ API ระดับ 30 รายการใดรายการหนึ่งต่อไปนี้

  • x86: รวมทั้ง ABI ของ x86 และ ARMv7
  • x86_64: รวมถึง ABI แบบ x86, x86_64, ARMv7 และ ARM64

การรองรับไบนารี ARM ในอิมเมจระบบ Android 9 และ 11

หากก่อนหน้านี้คุณใช้โปรแกรมจำลอง Android ไม่ได้เนื่องจากแอปต้องใช้ไบนารีของ ARM ตอนนี้คุณสามารถใช้อิมเมจระบบ Android 9 x86 หรืออิมเมจระบบ Android 11 ใดๆ เพื่อเรียกใช้แอปได้แล้ว คุณไม่จำเป็นต้องดาวน์โหลดอิมเมจระบบที่เฉพาะเจาะจงเพื่อเรียกใช้ไบนารี ARM อีกต่อไป อิมเมจระบบ Android 9 และ Android 11 เหล่านี้รองรับ ARM โดยค่าเริ่มต้น และมีประสิทธิภาพ ที่ดีขึ้นอย่างมากเมื่อเทียบกับภาพที่มีการเลียนแบบ ARM เต็มรูปแบบ

ปัญหาที่ทราบ

  • ไฟล์ไบนารี ARMv7 บางไฟล์ไม่สามารถทำงานในอิมเมจระบบ Android 11 x86 และ x86_64 ลองสร้างแอปสำหรับ ARM64 เมื่อกำหนดเป้าหมายเป็น Android 11

29.0.11 (29 พฤษภาคม 2019)

การอัปเดตนี้ประกอบด้วยการปรับปรุงและการแก้ไขต่อไปนี้

  • Windows: ตอนนี้โปรแกรมจำลองใช้ libgcc DLL ที่เราจัดส่งแทนการคอมไพล์แบบคงที่ด้วย libgcc
  • Linux: เพิ่มการรองรับ logcat ลงใน gRPC API ดูข้อมูลเพิ่มเติมเกี่ยวกับ gRPC ได้ที่โปรแกรมจำลองสตรีมมิง gRPC (Linux)
  • ตอนนี้โปรแกรมจำลองมีบิลด์แบบไม่มีส่วนแสดงผลสำหรับแขก x86 32 บิตแล้ว (qemu-system-i386) ฟีเจอร์นี้ช่วยให้อิมเมจ x86 32 บิตสำหรับ API ระดับ 26 และต่ำกว่าทำงานกับบิลด์แบบไม่มีส่วนแสดงผลได้ โปรดทราบว่าสำหรับผู้มาเยือน 32 บิต x86 ที่มี API 27 ขึ้นไป โปรแกรมจำลองจะใช้เครื่องมือ 64 บิต (qemu-system-x86_64) เนื่องจากในอิมเมจระบบเหล่านี้ แม้ว่าพื้นที่ผู้ใช้จะเป็น 32 บิต เคอร์เนลคือ 64 บิต Android Studio ใช้เคอร์เนลเพื่อเลือกเครื่องมือจําลอง
  • ตอนนี้คุณระบุเส้นทางของไลบรารี Qt ที่กําหนดเองได้โดยใช้ANDROID_QT_LIB_PATH ตัวแปรสภาพแวดล้อม
  • ตอนนี้คุณสามารถเรียกใช้โปรแกรมจำลองด้วยไบนารีก่อนหน้าที่ใช้ QEMU1 ได้หากวางไฟล์ปฏิบัติการ QEMU1 (emulator[64]-[x86|arm|etc]) ไว้ในไดเรกทอรีโปรแกรมจำลอง
  • Windows: แก้ไขปัญหาที่บางครั้งอาจทําให้โปรแกรมจําลองไม่เริ่มขึ้นพร้อมข้อความ "คําขอปิด vCPU"
  • แก้ไขปัญหาเกี่ยวกับสิ่งกีดขวางไปป์ไลน์ที่ไม่จำเป็นในพื้นผิวที่บีบอัดแบบจำลองใน Vulkan
  • แก้ไขข้อผิดพลาดที่เกิดขึ้นกับคำขอพร็อกซี HTTP เมื่อใช้การเข้ารหัสการโอนแบบแบ่งกลุ่ม ดูข้อมูลเพิ่มเติมได้ที่รายละเอียดสัญญาผูกมัด

29.0.9 (7 พฤษภาคม 2019)

การอัปเดตนี้มีการแก้ไขต่อไปนี้

  • Windows: แก้ไขปัญหาที่กล้องฉากเสมือนและเว็บแคมไม่ทำงานในโปรแกรมจำลอง

29.0.8 (6 พฤษภาคม 2019)

การอัปเดตนี้ประกอบด้วยการปรับปรุงและการแก้ไขต่อไปนี้

  • เพิ่มการรองรับจอแสดงผลฮาร์ดแวร์เสมือนหลายจอเมื่อมีบริการสำหรับผู้ใช้ชั่วคราวเพื่อแจกแจงและตั้งค่าจอแสดงผลแต่ละจอ จอแสดงผลฮาร์ดแวร์เสมือนจริงหลายจอจะรวมอยู่ในการอัปเดตภาพระบบโปรแกรมจำลองในอนาคต
  • เพิ่มตัวเลือกบรรทัดคำสั่งใหม่ -delay-adb ตัวเลือกนี้จะระงับการประมวลผลแพ็กเก็ต ADB จนกว่าผู้มาเยือนจะเปิดเครื่องเสร็จ (ปิดระบบ Cold Boot) ตัวเลือกนี้ช่วยแก้ปัญหาที่อาจเกิดขึ้นหากคุณใช้โปรแกรมจำลองในสภาพแวดล้อม CI ที่รีบูตโปรแกรมจำลองและใช้ DDMS ในเวลาเดียวกัน
  • แก้ไขข้อผิดพลาดที่เกิดขึ้นเมื่อโหลดภาพนิ่งซึ่ง glIsRenderbuffer จะแสดงผลค่าที่ไม่ถูกต้อง
  • แก้ไขบางปัญหาเกี่ยวกับสถานะเดิมเมื่อผู้ใช้ชั่วคราวของ Android รีบูต
  • Windows: แก้ปัญหาที่ทำให้โปรแกรมจำลองเริ่มต้นไม่ได้เมื่อชื่อผู้ใช้ Windows มีอักขระที่ไม่ใช่ ASCII หรือเว้นวรรค

ปัญหาที่ทราบ

  • UI ของสแนปชอตถูกปิดใช้สำหรับอิมเมจระบบยานยนต์เนื่องจากปัจจุบันยังไม่รองรับสแนปชอตสำหรับอิมเมจระบบเหล่านี้

29.0.6 (1 พฤษภาคม 2019)

การอัปเดตนี้ประกอบด้วยฟีเจอร์ใหม่หลายรายการ การปรับปรุงฟีเจอร์ที่มีอยู่ และการแก้ไขข้อบกพร่อง

การนําการรองรับ QEMU1 และ Windows 32 บิตออก

เราไม่ได้จัดส่ง QEMU1 และไฟล์ปฏิบัติการ Windows 32 บิตอีกต่อไปเพื่อดูแลรักษาโปรแกรมจำลองให้ดียิ่งขึ้น หากใช้ Windows 32 บิต คุณจะอัปเกรดเป็นเวอร์ชัน 29.0.6 ไม่ได้

ข้อกำหนดสำหรับอิมเมจระบบ Android Q

หากต้องการเรียกใช้ AVD ที่ใช้ภาพระบบ Android Q ตอนนี้คุณต้องใช้เวอร์ชัน 29.0.6 (เวอร์ชันนี้) ขึ้นไป

การปรับปรุง Project Marble

การอัปเดตนี้เป็นส่วนหนึ่งของความพยายามอย่างต่อเนื่องในโครงการริเริ่ม Project Marble ที่ประกาศในงาน Android Developer Summit เมื่อเดือนพฤศจิกายน 2018 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับปรุงอื่นๆ ของ Project Marble ในรุ่นก่อนหน้า โปรดดูโปรแกรมจำลอง Android: การปรับปรุง Project Marble

การอัปเดตนี้มุ่งเน้นที่การลดการใช้ทรัพยากรของโปรแกรมจำลองเป็นหลัก เช่น การลดการใช้ CPU ของโปรแกรมจำลองขณะที่ไม่ได้ใช้งาน นอกจากนี้ เรายังได้รวมการเปลี่ยนแปลงที่ช่วยให้ใช้งานโปรแกรมจำลองในสภาพแวดล้อมที่หลากหลายได้ง่ายขึ้น รวมถึงแก้ไขปัญหาด้านคุณภาพทั่วไปด้วย

ส่วนต่อไปนี้จะอธิบายการปรับปรุง Project Marble ที่รวมอยู่ในการอัปเดตนี้

การปรับปรุงลักษณะการทำงานของเสียงของโฮสต์

ตั้งแต่เวอร์ชัน 28.0.3 เป็นต้นไป โปรแกรมจำลองจะบล็อกอินพุตเสียงจากโฮสต์โดยค่าเริ่มต้น

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

หากใช้บรรทัดคำสั่ง คุณจะเปิดใช้เสียงโฮสต์ได้โดยใช้ตัวเลือก -allow-host-audio และใช้คำสั่ง ADB ต่อไปนี้เพื่อเปิดหรือปิดข้อมูลเสียงโฮสต์ตามลำดับได้

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

การปรับปรุงสำหรับบิลด์โปรแกรมจำลองแบบ Headless

ตั้งแต่เวอร์ชัน 28.0.25 เป็นต้นไป โปรแกรมจำลองจะมีตัวเลือกบิลด์แบบไม่มีส่วนหัวที่เรียกใช้ได้โดยไม่ต้องใช้ UI คุณใช้บิลด์แบบไม่มีส่วนหัวเพื่อช่วยตั้งค่าโปรแกรมจำลองสำหรับ Docker และเวิร์กโฟลว์การรวมอย่างต่อเนื่อง (CI) ได้

ในการอัปเดตครั้งนี้ เราได้ทำการปรับปรุงเพิ่มเติมเพื่ออนุญาตให้โปรแกรมจำลองทำงานได้กับจำนวนทรัพยากร Dependency ขั้นต่ำ ใน Linux บิลด์แบบ headless จะไม่รวมไลบรารี pulseaudio หรือ libX11 อีกต่อไป เราได้ลดจำนวนไลบรารีที่แชร์ซึ่งขึ้นอยู่กับระบบที่ไม่ได้รวมอยู่ในแพ็กเกจโปรแกรมจำลองเป็นรายการต่อไปนี้

  • Linux-vdso.so.1
  • Libutil.so.1
  • Libm.so.6
  • Libdl.so.2
  • Librt.so.1
  • Libpthread.so.0
  • Libgcc_s.so.1
  • Libc.so.6
  • ld-linux-x86-64.so.2

อัปเกรดไลบรารี UI ของ Qt เป็น 5.12 LTS

การอัปเดตนี้มีการปรับปรุงต่อไปนี้จากรุ่น Qt 5.12 LTS

  • ตอนนี้โปรแกรมจำลองใช้สำเนา libpng ของตัวเองเพื่อถอดรหัสรูปภาพ PNG เพื่อหลีกเลี่ยงข้อขัดข้องในโปรแกรมถอดรหัส libpng ของ Qt เมื่อเริ่มต้นรูปภาพของระบบบางอย่าง
  • เราได้แพ็กเกจ libfreetype, libsoftokn, libsqlite3 และ libxkbcommon ไว้ในโปรแกรมจำลองแล้วเพื่อแก้ไขปัญหาการติดตั้ง Linux บางรุ่นที่มีไลบรารี Qt บางส่วนซึ่งเข้ากันไม่ได้
  • ตอนนี้โปรแกรมจำลองใช้ไลบรารีกรอบเวลาดั้งเดิมของแพลตฟอร์มเพื่อรับมิติข้อมูลการตรวจสอบ แทนที่จะใช้ไลบรารี Qt ที่ให้ผลลัพธ์ที่เชื่อถือได้

การเพิ่มประสิทธิภาพ CPU โดยอัตโนมัติหลังจากการบูตเย็น

ตอนนี้โปรแกรมจำลองจะเรียกใช้คำสั่ง ADB ต่อไปนี้ในการบูตแบบ Cold หลังจากที่ได้รับสัญญาณ boot complete เพื่อจัดการกับการใช้งาน CPU

adb shell settings put screen_off_timeout 214783647
คำสั่งนี้จะเพิ่มระยะหมดเวลาของหน้าจอที่ปิดอยู่เพื่อให้ใช้โปรแกรมจำลองในโหมดแบตเตอรี่ได้โดยไม่ต้องชาร์จ ในโหมดแบตเตอรี่ การใช้งาน CPU ในเบื้องหลังจะลดลงอย่างมาก
ในโหมดการชาร์จ AC การทำงานในเบื้องหลังของ GMSCore เช่น การอัปเดตแอปอาจเข้าควบคุมแกน CPU ทั้งหมดของอุปกรณ์ รวมไปถึงเครื่องของผู้ใช้โดยไม่มีคำเตือน
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
คำสั่งนี้จะเพิกถอนสิทธิ์เข้าถึงไมโครโฟนสำหรับแอป Google Search ซึ่งจะช่วยลดการใช้งาน CPU ในเบื้องหลังบนหน้าจอหลักและใน Launcher ได้มากเมื่อแอป Google Search ทำงานอยู่
ระบบจะเรียกใช้คำสั่งนี้เพิ่มเติมจากลักษณะการทำงานเริ่มต้นของโปรแกรมจำลองในการปิดใช้เสียงของโฮสต์ นอกจากนี้ ตัวเลือกนี้ยังช่วยลดการใช้งาน CPU โดยอัตโนมัติตามที่อธิบายไว้สำหรับการตรวจหาคําสั่งให้ดำเนินการจากรุ่น 28.0.23

ตัวแปรสภาพแวดล้อมใหม่สำหรับการตรวจสอบประสิทธิภาพ

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

SHOW_PERF_STATS=1
ตัวแปรสภาพแวดล้อมนี้เปิดใช้การติดตามทั้งการใช้งาน CPU และ RAM การติดตามการใช้ RAM จะแยกความแตกต่างระหว่างการใช้กราฟิกกับหน่วยความจําที่ใช้งานอยู่ทั้งหมด
ANDROID_EMU_TRACING=1
ตัวแปรสภาพแวดล้อมนี้เปิดใช้การพิมพ์ทุกครั้งที่การดำเนินการกับอินพุตหรือกราฟิกใช้เวลานาน (นานกว่า 1 มิลลิวินาที)
นอกจากนี้ เรายังใช้ตัวแปรสภาพแวดล้อมนี้เพื่อช่วยวินิจฉัยปัญหาที่ผู้ใช้ Windows พบกับปัญหาข้อบกพร่อง (เฟรมที่ถูกตัด) มากกว่าประสบการณ์ของผู้ใช้ใน macOS หรือ Linux

การปรับปรุงทั่วไปของ Project Marble

การอัปเดตนี้ยังรวมถึงการปรับปรุงทั่วไปต่อไปนี้ซึ่งเป็นส่วนหนึ่งของโครงการริเริ่ม Project Marble

  • ตอนนี้คุณสามารถหยุด vCPU ทั้งหมดในโปรแกรมจำลองชั่วคราวได้ทันทีผ่านคำสั่งคอนโซลต่อไปนี้
    • adb emu avd pause
    • adb emu avd resume
  • ลดค่าใช้จ่ายในการวาด OpenGL ลงอย่างมาก การปรับปรุงนี้ช่วยลดการใช้ CPU ขณะที่โปรแกรมจำลองแสดงภาพเคลื่อนไหว
  • คืนค่าการรองรับอุปกรณ์เครือข่ายเสมือน e1000 ของ QEMU เวอร์ชันหลัก คุณสามารถใช้อุปกรณ์นี้เพื่อตั้งค่าโปรแกรมจำลองในสภาพแวดล้อมเครือข่ายบริดจ์ได้ ในสภาพแวดล้อมเครือข่ายบริดจ์ โปรแกรมจำลองจะแสดงในเครือข่ายโฮสต์และเครือข่ายโฮสต์จะแสดงในโปรแกรมจำลอง
  • ตอนนี้ระบบจะใช้ไบนารี BIOS ที่เหมาะสมกับ QEMU 2.12 เพื่อเริ่มต้นโปรแกรมจำลอง
  • อัปเกรด ffmpeg เป็นเวอร์ชัน 3.4.5 สำหรับการเข้ารหัสและถอดรหัสวิดีโอ
  • ลดค่าใช้จ่ายในการดำเนินการ I/O หลักของ QEMU ใน macOS ลงอย่างมากด้วยการแทนที่ลูปหลักที่ยึดตาม select() ด้วยลูปหลักที่อิงตาม kqueue
  • เพิ่มขนาดบัฟเฟอร์ของ Logcat เป็น 2 MB เพื่อแก้ไขปัญหาเกี่ยวกับ EOF ที่คาดไม่ถึงและทำงานไม่เสถียรเมื่อเรียกใช้ Logcat กับโปรแกรมจำลอง
  • ตอนนี้โปรแกรมจำลองจะส่งออกตัวแปรสภาพแวดล้อม LC_ALL=C โดยค่าเริ่มต้น การเปลี่ยนแปลงนี้จะช่วยแก้ปัญหาข้อขัดข้องและปัญหาความเข้ากันไม่ได้ที่เกี่ยวข้องกับการเรียกใช้โปรแกรมจำลองในภาษาต่างๆ
  • ตอนนี้คุณสามารถติดตามการใช้งาน CPU และ RAM ของโปรแกรมจำลองโดยใช้สถิติประสิทธิภาพที่เข้าถึงได้ที่การควบคุมแบบขยาย > การตั้งค่า > ขั้นสูง > สถิติประสิทธิภาพ ใช้สถิติเหล่านี้เพื่อวินิจฉัยปัญหาได้อย่างรวดเร็วหากดูเหมือนว่าโปรแกรมจำลองใช้ CPU หรือ RAM มากเกินไป
  • ตอนนี้ glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE ใช้ผลลัพธ์ของ GPU โฮสต์แทนผลลัพธ์ที่จำลอง การเปลี่ยนแปลงนี้จะช่วยแก้ปัญหาที่รูปภาพและเนื้อหาไม่แสดงเนื่องจากรูปแบบที่ไม่เหมาะสมในการอ่านย้อนกลับ
  • เพิ่มการรองรับส่วนขยาย OpenGL ES GL_EXT_texture_format_BGRA8888 และ GL_APPLE_texture_format_BGRA8888 หากโฮสต์รองรับส่วนขยายเหล่านี้
  • เพิ่มข้อมูลการวินิจฉัยเพิ่มเติมลงใน UI ของรายงานข้อบกพร่อง นอกจากนี้ คุณยังเข้าถึงรายงานข้อบกพร่องจากคอนโซลได้โดยใช้คําสั่งต่อไปนี้
    • telnet localhost 5554
    • avd bugreport
  • ในภาพระบบ Android Q โปรแกรมจำลองจะเพิ่มขนาด RAM ขั้นต่ำเป็น 2 GB
  • เพิ่มการบันทึกและการพิมพ์มากขึ้นเมื่อใดก็ตามที่ OpenGL หรือ Hypervisor เริ่มต้นไม่สำเร็จ
  • หากโปรแกรมจำลองไม่สามารถเริ่มอินสแตนซ์ -read-only ของ AVD พร้อมกัน โปรแกรมจำลองจะพยายามเปิด AVD -read-only อีกครั้งอีก 3 ครั้งใน 3 วินาที การเปลี่ยนแปลงนี้เพิ่มโอกาสที่เอีมูเลเตอร์จะเปิดอินสแตนซ์ -read-only ของ AVD พร้อมกันได้หากอินสแตนซ์อื่นๆ ที่เขียนได้ของ AVD นั้นยังไม่ได้ล้างไฟล์ที่ล้าสมัย
  • สำหรับอิมเมจระบบที่กำลังจะเปิดตัว ขณะนี้โปรแกรมจำลองรองรับ Computer Composer 2.0 แล้ว การเปลี่ยนแปลงนี้ควรลดค่าใช้จ่ายด้านผู้ขับลงเมื่อเรียกใช้ภาพเคลื่อนไหวส่วนใหญ่
  • ตอนนี้บิลด์โปรแกรมจำลองจะอิงตาม CMake/Ninja
  • ใน UI การควบคุมแบบขยายของโปรแกรมจำลอง เส้นแบ่งในตารางแป้นพิมพ์ลัดได้รับการกู้คืนแล้ว
  • ตอนนี้ผู้ใช้สามารถเลือกให้ทีมของเราทราบเมตริกการใช้งาน CPU และ RAM ในช่วงเวลา 10 วินาที เราใช้เมตริกเหล่านี้เพื่อเพิ่มคุณค่าให้กับข้อมูลเกี่ยวกับการใช้ทรัพยากรของโปรแกรมจำลองด้วย Use Case ต่างๆ จากผู้ใช้ ซึ่งช่วยให้เราทำให้โปรแกรมจำลองมีประสิทธิภาพและตอบสนองได้ดีขึ้น

แก้ไข Project Marble ทั่วไป

การอัปเดตนี้ยังรวมถึงการแก้ไขทั่วไปต่อไปนี้ซึ่งเป็นส่วนหนึ่งของโครงการริเริ่ม Project Marble

  • แก้ไขปัญหาเฟรมกระตุกและเฟรมที่ไม่ถูกต้องซึ่งแสดงในระบบที่มี GPU ของ Intel เมื่อใช้ภาพระบบ Android Q
  • แก้ไขปัญหาที่หน้าจอสีดําแสดงขึ้นเมื่อใช้ภาพในระบบ Android Q กับสกิน Pixel 2 XL (หรือสกินที่มีรอยบากหรือมุมมน)
  • แก้ไขปัญหาที่ตัวเลือกบรรทัดคำสั่ง -partition-size จะไม่กำหนดขนาดพาร์ติชันข้อมูล
  • แก้ไขปัญหาที่ pulseaudio ในโปรแกรมจำลอง Linx จะทำงานอยู่ตลอดและกินทรัพยากรทั้งแกน CPU ในบางสถานการณ์
  • แก้ไขปัญหาการเข้าถึงหน่วยความจำเกินขอบเขตเมื่อประมวลผลพื้นผิวที่บีบอัด
  • แก้ไขข้อผิดพลาด GL ที่เกิดขึ้นบนโฮสต์ใน glTexSubImage2D เมื่ออัปเดตบัฟเฟอร์ Gralloc บางรายการ (ในรูปแบบ RGB 565, RGB10A2, RGB(A)16F)
  • แก้ไขปัญหาการแสดงผลในภาพระบบ Android Q ที่มีภาพนิ่งซึ่งเรนเดอร์เรขาคณิตของแผงการแจ้งเตือนด้วยการตั้งค่าตัวหารอินสแตนซ์ที่ไม่เหมาะสม
  • แก้ไขปัญหาข้อขัดข้องและการค้างซึ่งยากที่จะจำลองได้เมื่อเปิดใช้งาน ซึ่งเกิดขึ้นเนื่องจาก Qt สูญเสียสัญญาณหรือมีสถานะที่ทำงานไม่สม่ำเสมอเมื่อเริ่มต้น
  • แก้ไขปัญหาการเกิดขึ้นพร้อมกันหลายรายการ ตอนนี้เราสามารถสร้างโปรแกรมจำลอง Linux ด้วย ThreadSanitizer (TSAN) ซึ่งจะตรวจหาข้อบกพร่องที่จำลองได้ยากได้อย่างง่ายดาย
  • สำหรับผู้ใช้ Linux: เราพบว่าเคอร์เนลของโฮสต์บนโฮสต์บางรายการ เคอร์เนล Android สำหรับผู้มาเยือนอาจเกิดข้อผิดพลาดและออกใน KVM ได้ด้วยข้อผิดพลาดของฮาร์ดแวร์ทั่วไป ตอนนี้โปรแกรมจำลองจะ abort() เมื่อเกิดเหตุการณ์ดังกล่าวขึ้นเพื่อเพิ่มความสามารถในการแก้ไขข้อบกพร่อง (ก่อนหน้านี้โปรแกรมจำลองเพิ่งค้าง)
  • สําหรับผู้ใช้ Linux: คุณสามารถใช้ตัวเลือกบรรทัดคําสั่ง -stdouterr-file <file-name> ใหม่เพื่อเปลี่ยนเส้นทางทั้ง stdout และ stderr ไปยังไฟล์ได้เพื่อความสะดวกในการตั้งค่า CI
  • แก้ไขปัญหาที่ใช้ SO_REUSEADDR อย่างไม่ถูกต้อง สำหรับข้อมูลเพิ่มเติม โปรดดูรายละเอียดการคอมมิต
  • แก้ไขปัญหาที่แก้ไม่ตกมานานเกี่ยวกับโปรแกรมจำลองของ Windows ซึ่งทำให้กระบวนการย่อย เช่น คำสั่ง ADB ไม่สามารถเริ่มต้นได้หากชื่อผู้ใช้มีการเว้นวรรค
  • แก้ไขปัญหาการเริ่มต้น RCU ในเธรด vCPU ของ HAXM ขาดหายไป การแก้ไขนี้อาจช่วยแก้ปัญหาข้อขัดข้องและเงื่อนไขการแข่งขันบางรายการได้
  • แก้ไขข้อขัดข้องที่เกิดจากรูปแบบการบันทึกและโหลดภาพนิ่งบางอย่างจาก UI ภาพนิ่งโดยใช้ภาพระบบ Android Q ล่าสุด
  • แก้ไขปัญหาที่กล้องฉากเสมือนจะว่างเปล่าเมื่อเริ่มต้นโปรแกรมจำลองจากภาพหน้าจอ หากแมโคร AR เล่นอยู่เมื่อบันทึกภาพหน้าจอนั้น
  • แก้ไขปัญหาที่ผู้ใช้บางรายที่ตั้งค่าเดสก์ท็อประยะไกลเห็นหน้าจอเป็นสีดำเมื่อเปิดโปรแกรมจำลองบน Linux เพื่อหลีกเลี่ยงปัญหานี้ ตอนนี้โปรแกรมจำลองจะกำหนดค่า MESA_RGB_VISUAL อย่างชัดแจ้ง ดูข้อมูลเพิ่มเติมได้ที่รายละเอียดสัญญาผูกมัด
  • แก้ไขปัญหาที่ปุ่มหมุนจะปรากฏใน AVD ของทีวี
  • แก้ไขปัญหาข้อบกพร่องที่หากตั้งค่าโปรแกรมจำลองให้แสดงอยู่ด้านบนเสมอ หน้าต่างตัวควบคุมแบบขยายจะปรากฏขึ้นทุกครั้งที่โปรแกรมจำลองหมุน

โปรไฟล์ฮาร์ดแวร์สำหรับอุปกรณ์แบบพับได้

ตอนนี้โปรแกรมจำลองมีโปรไฟล์ฮาร์ดแวร์สำหรับอุปกรณ์แบบพับได้แล้ว หากต้องการใช้โปรไฟล์ฮาร์ดแวร์ใหม่เหล่านี้ คุณต้องใช้ Android Studio 3.5 Canary 10 ขึ้นไป

โปรไฟล์ฮาร์ดแวร์แบบพับได้ที่คุณสามารถใช้สร้าง AVD มี 2 ประเภท ได้แก่

  • 7.3 นิ้วแบบพับได้: 1536x2152 เมื่อกางออก, 4.6 นิ้ว 840x1960 เมื่อพับ
  • จอพับขนาด 8 นิ้ว: 2200x2480 เมื่อกางออก, 6.6 นิ้ว 1480x2480 เมื่อพับ

เมื่อเรียกใช้โปรแกรมจำลองโดยใช้โปรไฟล์ฮาร์ดแวร์อย่างใดอย่างหนึ่งเหล่านี้ คุณจะพับและกางอุปกรณ์ได้โดยใช้การดำเนินการพับและกางในแถบเครื่องมือของโปรแกรมจำลอง คำสั่งคอนโซล หรือแป้นพิมพ์ลัดต่อไปนี้

  • พับ: Ctrl + F (Command + F ใน macOS)
  • กางออก: Ctrl + U (Command + U ใน macOS)

มาโคร AR

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

ดูข้อมูลเพิ่มเติมได้ที่ทดสอบการดำเนินการ AR ทั่วไปด้วยมาโคร

รองรับ Vulkan (Windows, Linux)

ผู้ใช้ Windows และ Linux สามารถทดสอบแอป Vulkan ด้วยโปรแกรมจำลอง Android ได้ถึงระดับ Vulkan 1.1 เมื่อใช้อิมเมจระบบที่เข้ากันได้ (Android Q เบต้า 3 ขึ้นไปสำหรับ Vulkan 1.1, Android Q เบต้า 2 สำหรับ Vulkan 1.0) และ GPU ของโฮสต์ที่เข้ากันได้ (ซึ่งรวมถึง Intel, NVIDIA และ AMD GPU ส่วนใหญ่จากปี 2014 ขึ้นไป)

หากต้องการเปิดใช้การรองรับ Vulkan คุณต้องเพิ่ม Flag ฟีเจอร์ต่อไปนี้ลงในไฟล์ ~/.android/advancedFeatures.ini (สร้างไฟล์หากยังไม่มี)

  • Vulkan = on
  • GLDirectMem = on

การสนับสนุนเบื้องต้นสำหรับนักพัฒนา ROM

ตอนนี้นักพัฒนา ROM ที่สร้างเป้าหมาย sdk_phone_x86 หรือ sdk_phone_x86_64 (ตัวแปร userdebug, eng) ในสาขา AOSP master สามารถเรียกใช้โปรแกรมจำลองที่เปิดใช้ Vulkan ได้แล้ว

การรองรับนี้ยังอยู่ระหว่างการทดสอบและมีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่ทำงานเกี่ยวกับอิมเมจของระบบ ไดรเวอร์ และเครื่องมือเกมเป็นหลัก ส่วนขยายจำนวนมากยังคงหายไป แต่ระบบรองรับหน่วยความจำ HOST_COHERENT และตอนนี้คุณควรที่จะเรียกใช้ตัวอย่างบทแนะนำ Vulkan API ได้

หากคุณใช้ Linux คุณสามารถลองใช้คำสั่งต่อไปนี้

mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem

การแสดงภาพ Skia กับ Vulkan

GPU ของ NVIDIA และ AMD ที่รองรับ Vulkan จะรองรับการทำงานร่วมกันแบบไม่คัดลอกข้อมูลกับ OpenGL ผ่านส่วนขยาย GL_EXT_memory_objects ด้วย โปรแกรมจำลองใช้ประโยชน์จากความสามารถนี้เพื่อมอบวิธีเต็มรูปแบบในการแสดงผล UI ของ Android โดยใช้ Skia Vulkan API

หากคุณมี GPU ของ NVIDIA หรือ AMD ที่รองรับ Vulkan ให้ใช้คำสั่งต่อไปนี้เพื่อทดสอบการแสดงผล Skia ด้วยภาพระบบที่เข้ากันได้ (Android Q เบต้า 3 ขึ้นไป)

adb shell
su
setprop debug.hwui.renderer skiavk
stop
start

การรองรับ Vulkan ของ macOS

การรองรับ macOS ยังอยู่ระหว่างการทดสอบ แต่โปรแกรมจำลองมี API ของ Swiftshader, MoltenVK และ libportability (gfx-rs) อยู่แล้ว คุณสามารถทดสอบ API เหล่านี้ได้โดยการตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • ความรับผิด: ANDROID_EMU_VK_ICD=portability

ปัญหาที่ทราบ

ในบางครั้ง HAXM อาจแมปหน่วยความจำแบบสอดคล้องกันของ Vulkan ไปยังระบบปฏิบัติการที่ทำงานร่วมกันไม่ได้และปิดโปรแกรมจำลอง เราได้แก้ไขไว้ในการอัปเดต HAXM ที่กำลังจะเกิดขึ้น

โปรแกรมจำลองสตรีมมิง gRPC (Linux)

เราพยายามทำให้โปรแกรมจำลองใช้งานได้หลากหลายที่สุดเท่าที่จะเป็นไปได้ โดยอนุญาตให้แสดงผลและการโต้ตอบของ GPU โฮสต์ในบริบทการทำงานที่กว้างที่สุด ผู้ใช้ CI และเดสก์ท็อประยะไกลของเราพบปัญหาต่อไปนี้มาอย่างยาวนาน

  • การส่งคำสั่งอินพุตไปยังโปรแกรมจำลองด้วยโปรแกรมจะเกี่ยวข้องกับการเรียกใช้คำสั่ง adb shell ที่อาจทำให้เกิดค่าใช้จ่ายเพิ่มเติมสูง หรือการใช้คอนโซล telnet ซึ่งเร็วกว่า แต่อาจใช้ไม่ได้กับการกำหนดค่าเครือข่ายบางอย่าง
  • ผู้ใช้ CI มักจะเรียกใช้โปรแกรมจำลองแบบ headless ซึ่งอาจทำให้สังเกตปัญหาที่หน้าจอต้องแสดงหรือโต้ตอบได้ยาก
  • ผู้ใช้เดสก์ท็อประยะไกลมักโต้ตอบกับโปรแกรมจำลองไม่ได้เมื่อใช้การแสดงผล GPU ของโฮสต์ เนื่องจากการแสดงผล GPU มักจะเชื่อมโยงกับจอแสดงผลที่ไม่ใช่แบบเสมือนของโฮสต์

ในการแก้ปัญหานี้ เมื่อทำงานบนเครื่อง Linux ตอนนี้โปรแกรมจำลองจะให้บริการ gRPC gRPC เป็นเฟรมเวิร์กทั่วไปสำหรับ RPC ที่ทำงานผ่าน HTTP

โดยค่าเริ่มต้น ระบบจะปิดใช้บริการ gRPC ของโปรแกรมจำลอง แต่คุณสามารถเปิดใช้บริการได้โดยใช้ตัวเลือกบรรทัดคำสั่งต่อไปนี้ โดยที่ <port> คือพอร์ตที่โปรแกรมจำลองควรให้บริการคำขอ gRPC (ปกติจะเป็น 5556)

-grpc <port>

เมื่อเริ่มบริการแล้ว คุณจะออกคําสั่ง gRPC จากไคลเอ็นต์ได้ ชุดคำสั่งปัจจุบันอนุญาตให้ทั้งส่งเหตุการณ์การป้อนข้อมูลและรับภาพหน้าจอ คำสั่งเหล่านี้จะช่วยแก้ปัญหาต่อไปนี้

  • คุณสามารถส่งคำสั่งอินพุตไปยังโปรแกรมจำลองที่มีโอเวอร์เฮดผ่าน HTTP ต่ำ HTTP ยังช่วยให้สามารถส่งคําสั่งในการกําหนดค่าเครือข่ายเพิ่มเติมได้อีกด้วย
  • คุณส่งคำสั่งภาพหน้าจอเพื่อค้นหาหน้าจอปัจจุบันได้ แม้ว่าโปรแกรมจำลองจะทำงานแบบไม่มีการแสดงผลก็ตาม สำหรับการโต้ตอบ คุณสามารถส่งเหตุการณ์อินพุต กลับไปยังโปรแกรมจำลองได้ด้วย
  • ผู้ใช้เดสก์ท็อประยะไกลสามารถเรียกใช้โปรแกรมจำลองแบบไม่มีส่วนหัวบนจอแสดงผลหลักพร้อมการแสดงผลแบบเร่ง GPU ในขณะที่ใช้ gRPC เพื่อรับภาพหน้าจอและส่งเหตุการณ์อินพุตเพื่อโต้ตอบกับโปรแกรมจำลอง

ดูรายการคำสั่งทั้งหมดที่ใช้ได้ที่ Protobuf นี้

เราได้จัดเตรียมตัวอย่างไคลเอ็นต์ไว้ให้คุณเพื่อใช้อ้างอิงในการเริ่มต้นใช้งาน gRPC

ปัจจุบันมีตัวอย่างต่อไปนี้

  • บริการที่ใช้ภาษา Go ซึ่งสามารถใช้เพื่อค้นหาสถานะโปรแกรมจำลอง
  • แอป React ที่สาธิตการโต้ตอบระยะไกลผ่านภาพหน้าจอและอินพุต RPC ตัวอย่างนี้ต้องใช้ protobuf เวอร์ชัน 3.7.0 ขึ้นไป
  • ตัวอย่าง Python ที่ค้นหาการกำหนดค่า VM ของโปรแกรมจำลอง จากนั้นส่งชุดคำสั่ง

28 มีนาคม 2019 (29 มีนาคม 2019)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

บิลด์โปรแกรมจำลองแบบ Headless

การตั้งค่าโปรแกรมจำลองกับ Docker และเวิร์กโฟลว์การผสานรวมอย่างต่อเนื่อง (CI) อื่นๆ นั้นทำได้ยาก เนื่องจากระบบคาดหวังโดยนัยว่าจะรองรับ Qt พร้อมกับไลบรารีที่ใช้ร่วมกัน (และปัญหาอื่นๆ)

ขั้นตอนแรกในการแก้ไขปัญหานี้คือการเปิดตัวตัวแปรของโปรแกรมเปิดโปรแกรมจำลองที่มีไฟล์ปฏิบัติการ QEMU ที่ไม่ขึ้นอยู่กับ Qt สำหรับ Linux ยังมีลิงก์ไปยัง libX11 อยู่ แต่เราหวังว่าจะนำลิงก์นี้ออกในเร็วๆ นี้

หากต้องการใช้โปรแกรมจำลองแบบไม่มีส่วนแสดงผล ให้เรียกใช้โปรแกรมจำลองจากบรรทัดคำสั่งตามปกติ แต่แทนที่การเรียกใช้ไบนารีของโปรแกรมจำลองด้วย emulator-headless ดูข้อมูลเพิ่มเติมได้ที่การอัปเดตรุ่น 28.1.8 Canary

  • แก้ไขการกระตุกและการแสดงเฟรมที่ไม่ถูกต้องบน Intel GPU เมื่อใช้อิมเมจระบบ Android Q
  • แก้ปัญหาที่หน้าจอสีดำแสดงเมื่อใช้รูปภาพระบบ Android Q กับสกิน Pixel 2 XL
  • ตอนนี้ระบบจะใช้ไบนารี BIOS เวอร์ชันล่าสุดเพื่อเปิดโปรแกรมจำลอง การเปลี่ยนแปลงนี้จะช่วยลดความผิดพลาด "คำขอปิด vCPU" ที่บางครั้งเกิดขึ้นเมื่อเปิดโปรแกรมจำลองใน Windows
  • ย้ายข้อมูลการแก้ไขสำหรับปัญหา"การแสดงผลไม่ถูกต้องเมื่อกลับมาทำงานต่อจากภาพระบบ Android Q จากสแนปชอต" ไปยังรุ่นเก่า
  • ผู้ใช้พบปัญหาเกี่ยวกับโปรแกรมจำลอง"ไม่ได้รับอนุญาต" เนื่องจากการเปลี่ยนแปลง ADB ในแพลตฟอร์มเครื่องมือ 28.0.2 ที่เข้ากันไม่ได้ ตอนนี้คุณใช้ ADB จากแพลตฟอร์มเครื่องมือ 28.0.2 กับโปรแกรมจำลองได้อย่างปลอดภัยแล้ว หากพบปัญหาเกี่ยวกับโปรแกรมจำลอง "ที่ไม่ได้รับอนุญาต" ให้ทำตามขั้นตอนการแก้ปัญหาต่อไปนี้
    1. ออกจากโปรแกรมจำลองทั้งหมด
    2. ลบทั้งไฟล์ ~/.android/adbkey และ ~/.android/adbkey.pub
    3. เรียกใช้คำสั่งต่อไปนี้ adb kill-server
    4. เรียกใช้คำสั่งต่อไปนี้ adb devices
    5. ล้างข้อมูล AVD
    6. เปิดโปรแกรมจำลองอีกครั้ง

28 มกราคม 2019 (29 มกราคม 2019)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

อินพุตเสียงโฮสต์จะถูกปิดใช้โดยค่าเริ่มต้น

โพสต์ล่าสุดใน Reddit อธิบายอย่างละเอียดว่าระบบปฏิบัติการ Android ของผู้มาเยือนจะใช้เสียงของไมโครโฟนโฮสต์อยู่เสมอ ซึ่งทำให้ "Ok Google" ทำงานโดยไม่คาดคิด เราต้องขออภัยเกี่ยวกับปัญหานี้ และจะทำงานร่วมกับทีม Android เพื่อให้แน่ใจว่าการตรวจหาคำสั่งให้ดำเนินการในอิมเมจของระบบจะถูกปิดใช้งานด้วย

เราได้ทำการเปลี่ยนแปลงต่อไปนี้เพื่อแก้ไขปัญหาดังกล่าว

  • ตอนนี้ระบบจะลดระดับข้อมูลเสียงของโฮสต์จริงโดยค่าเริ่มต้น เมื่อผู้เข้าร่วมใช้ไมโครโฟน ระบบจะส่งเสียงเงียบแทนเสียงของโฮสต์
  • หากต้องการใช้ข้อมูลเสียงของโฮสต์ ตอนนี้คุณเปิดใช้ตัวเลือกดังกล่าวได้แล้วโดยไปที่การควบคุมเพิ่มเติม > ไมโครโฟน แล้วเปิดใช้ไมโครโฟนเสมือนใช้อินพุตเสียงของโฮสต์ ระบบจะปิดใช้ตัวเลือกนี้โดยอัตโนมัติทุกครั้งที่รีสตาร์ทโปรแกรมจำลอง

ข้อมูลอัปเดตเกี่ยวกับการตรวจสอบการใช้งาน CPU

ในระหว่างการตรวจสอบ Project Marble เราพบว่าการใช้งาน CPU สูงในโปรแกรมจำลองโดยทั่วไปจะแบ่งออกเป็น 3 หมวดหมู่ต่อไปนี้

ขณะไม่ได้ใช้งาน: การอัปเดตแอปอัตโนมัติในรูปภาพ Play Store

เราพบว่าแอปทั้งหมดที่ติดตั้งไว้จะอัปเดตเป็นระยะๆ แบบสุ่ม แม้ว่าผู้ใช้จะไม่ได้เข้าสู่ระบบก็ตาม ในระหว่างกระบวนการนี้ การใช้งาน CPU จะเพิ่มขึ้นตามจำนวนแกน x 100% (โดยทั่วไปจะอยู่ที่ประมาณ 400%) ใน GMSCore และ dex2oat คุณสามารถลดปัญหานี้ โดยปิดการอัปเดตแอปอัตโนมัติในแอป Play Store

ขณะไม่ได้ใช้งาน: การตรวจหาคำที่เปิดใช้งาน Assistant

เมื่ออยู่ในหน้าจอหลักและไม่มีแอปใดทำงานอยู่เบื้องหน้า อาจมีการใช้ CPU เป็นจำนวนมาก (~25% โดยเพิ่มขึ้นเป็น 50%) ปัญหานี้เกิดจากการตรวจหาคำที่นิยมซึ่งส่งคําสั่ง ping ไปยังโฮสต์อย่างต่อเนื่อง คุณลดปัญหานี้โดยการปิดใช้อินพุตเสียงของโฮสต์ไม่ได้ เนื่องจากค่าใช้จ่ายของ CPU เกิดจากเวลาที่โฮสต์ใช้ในการเดินทางไปยังผู้เข้าร่วม แต่คุณลดปัญหานี้ได้ด้วยการเพิกถอนสิทธิ์เข้าถึงไมโครโฟนจากแอป Google

ขณะใช้งานอยู่และบางครั้งเมื่อไม่มีการใช้งาน: ภาพเคลื่อนไหว

แหล่งที่มาที่สามของการใช้งาน CPU สูงคือภาพเคลื่อนไหว เราพบว่าการเพิ่มประสิทธิภาพสแต็กโปรแกรมควบคุมกราฟิกยังช่วยลดการใช้งาน CPU ได้อีกด้วย แม้ว่าโปรแกรมจำลองจะไม่อยู่ในสถานะว่าง เราจะทยอยเปิดตัวการเพิ่มประสิทธิภาพโปรแกรมควบคุมกราฟิกโดยเป็นส่วนหนึ่งของโปรเจ็กต์ Marble

28.0.22 (21 ธันวาคม 2018)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • แก้ไขปัญหาที่เกิดขึ้นมาอย่างยาวนานในการตั้งค่าบางอย่าง โปรแกรมจำลอง Mac จะรีบูตหรือตื่นตระหนกเคอร์เนลเมื่อบันทึก Quickboot (ปัญหา 120951634)
  • เมื่อใช้ไฟล์ที่แมปเป็นภาพรวม RAM ตอนนี้โปรแกรมจำลองจะยกเลิกการแมปการแมปไฟล์อย่างชัดเจนเมื่อออก

28.0.20 (11 ธันวาคม 2018)

การอัปเดตนี้มีการปรับปรุงและการแก้ไขต่อไปนี้

  • แก้ไขปัญหาใน Windows ที่ทำให้โปรแกรมจำลองค้างเมื่อโหลดภาพนิ่งด้วย GPU บางรุ่นของ Intel
  • แก้ไขปัญหาที่ทำให้เกิดสถานะของอุปกรณ์ ADB unauthorized เมื่อใช้ตำแหน่ง ANDROID_SDK_HOME ที่ไม่ใช่แบบมาตรฐาน
  • แก้ไขปัญหาใน Windows ที่ทำให้โปรแกรมจำลองขัดข้องเมื่อบูตระบบอิมเมจโดยปิดใช้การเร่งความเร็ว CPU
  • แก้ไขปัญหาการแสดงผลโปรแกรมจำลองที่แตกเป็นพิกเซล การดาวน์เกรดระบบควรใช้ได้แล้ว
  • แก้ไขปัญหาใน macOS 10.14 ขึ้นไปที่การควบคุมการมองด้วยเมาส์ของกล้องฉากเสมือนอาจทำงานได้ไวเกินไปเนื่องจากการโต้ตอบกับการตั้งค่าความปลอดภัยการช่วยเหลือพิเศษใหม่
  • แก้ไขข้อผิดพลาดในการคำนวณเขตเวลาที่อาจทําให้นาฬิกาของโปรแกรมจําลองเปลี่ยนแปลงเป็นระยะๆ
  • แก้ไขข้อผิดพลาดในการแสดงผลในแอป cocos2d และ Unreal เครื่องมือต่างๆ
  • เพิ่มการรองรับWi-Fi แบบ peer-to-peer ในโปรแกรมจำลอง ตอนนี้โปรแกรมจำลอง 2 ตัวสามารถสื่อสารกันได้โดยตรงผ่าน Wi-Fi หากใช้ภาพ Play Store ของ Pie เวอร์ชันล่าสุด หากต้องการใช้ Wi-Fi แบบ Peer-to-Peer ให้เริ่ม AVD 2 รายการโดยใช้อาร์กิวเมนต์ -wifi-server-port และ -wifi-client-port เดียวกัน ดังนี้
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • เพิ่มการรองรับเว็บแคมใน Windows ได้มากขึ้นโดยใช้ขนาดเฟรมที่ใช้ร่วมกันไม่ได้และปรับขนาดแบบไดนามิกเพื่อให้พอดีกับการตั้งค่ากล้องในโหมดผู้มาเยือนของ Android

28.0.16 (พฤศจิกายน 2018)

การอัปเดตนี้รวมถึงฟีเจอร์ใหม่หลายรายการ การปรับปรุงฟีเจอร์ที่มีอยู่ และการแก้ไขข้อบกพร่อง

การใช้ทรัพยากร

ตอนนี้โปรแกรมจำลองใช้ RAM โดยรวมน้อยลง โดยเฉพาะอย่างยิ่งเมื่อใช้อิมเมจระบบที่มี API ระดับ 28 ขึ้นไป อิมเมจระบบเหล่านี้รวมถึงการใช้งานหน่วยความจำที่ดีขึ้นสำหรับไดรเวอร์กราฟิกฝั่งผู้มาเยือน

นอกจากนี้ เรายังได้ปรับปรุงการใช้ทรัพยากรในด้านต่อไปนี้

  • ลดการใช้หน่วยความจำของโปรแกรมจำลองระหว่างการทดสอบที่ทำงานเป็นเวลานาน หากยังพบปัญหาเกี่ยวกับการใช้หน่วยความจำระหว่างการทดสอบที่ใช้เวลานาน โปรดสร้างปัญหาที่อธิบาย Use Case ของคุณในเครื่องมือติดตามปัญหา
  • ลดการใช้ CPU เมื่อเรียกใช้แอปที่มีภาพเคลื่อนไหว
  • แก้ไขปัญหาที่บริบท AIO ของ QEMU อาจรั่วใน Windows

เรียกใช้อินสแตนซ์ AVD รายการเดียวหลายรายการพร้อมกัน

ตอนนี้คุณสามารถเปิดอินสแตนซ์ AVD เดียวกันหลายรายการและเรียกใช้พร้อมกันได้แล้ว อินสแตนซ์ที่คุณเปิดหลังจากอินสแตนซ์แรกจะเป็นแบบอ่านอย่างเดียว และระบบจะทิ้งการเปลี่ยนแปลงในดิสก์เสมือนของผู้ใช้ที่เข้าสู่ระบบเมื่อออก

หากต้องการเรียกใช้อินสแตนซ์ AVD เดียวกันหลายรายการพร้อมกัน ให้เปิดอินสแตนซ์ใดก็ได้หลังจากอินสแตนซ์แรกจากบรรทัดคำสั่งโดยใช้ Flag -read-only

ฟีเจอร์นี้ทําได้โดยการคัดลอกไฟล์ QCOW2 ที่เชื่อมโยงกับส่วนที่เขียนได้ของภาพ Android เพื่อช่วยให้คุณจัดการพื้นที่ดิสก์ได้ เรายังได้รวมqemu-imgเครื่องมือบรรทัดคำสั่งไว้ด้วยเพื่อให้คุณคอมมิตไฟล์ QCOW2 ล่วงหน้าก่อนที่จะเปิดใช้งานอินสแตนซ์หลายรายการ

นอกจากนี้ เมื่อใช้ร่วมกับฟีเจอร์สแนปชอต RAM ของผู้ใช้ที่สนับสนุนไฟล์ อินสแตนซ์ AVD หลายรายการจะแชร์สแนปชอตการบูตด่วน AVD หลักเป็นแหล่งที่มาทั่วไปของ RAM ของผู้ใช้แบบเขียนทับ พร็อพเพอร์ตี้นี้หมายความว่าอินสแตนซ์ใช้ RAM ร่วมกันเป็นจำนวนมาก ใช้ฟีเจอร์นี้เพื่อทำการทดสอบที่ต้องใช้อุปกรณ์หลายเครื่องทำงานพร้อมกัน

ขอขอบคุณสำหรับความคิดเห็นเกี่ยวกับกรณีการใช้งานที่เป็นไปได้ซึ่งเป็นส่วนหนึ่งของเวิร์กโฟลว์แบบอินเทอร์แอกทีฟหรือ CI โปรดสร้างหรือโหวตเห็นด้วยกับปัญหาในเครื่องมือติดตามปัญหา

สแนปชอต RAM ของผู้เข้าร่วมที่สำรองไฟล์

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

เนื่องจากตอนนี้ RAM ผู้มาเยือนของ Android จะบันทึกโดยอัตโนมัติโดยค่าเริ่มต้น หากคุณต้องการกำหนดสถานะของอุปกรณ์และโหลดซ้ำๆ จากสถานะนั้น คุณต้องบอกให้โปรแกรมจำลองทิ้งการเปลี่ยนแปลงหลังแต่ละเซสชัน ซึ่งทำได้ด้วยวิธีต่อไปนี้

  • ใช้ Flag -no-snapshot-save หรือ -read-only เมื่อเปิดโปรแกรมจำลองจากบรรทัดคำสั่ง
  • ไปที่การควบคุมเพิ่มเติม > สแนปชอต > การตั้งค่า และเปลี่ยนสถานะปัจจุบันการบันทึกอัตโนมัติเป็น Quickboot? เป็น ไม่
  • คุณจะต้องรีสตาร์ทโปรแกรมจำลองหลังจากเลือกตัวเลือกนี้ หากตั้งค่าโปรแกรมจำลองให้บันทึกโดยอัตโนมัติ คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อตั้งจุดตรวจสอบได้
    adb emu avd snapshot remap 0
    
    หลังจากเรียกใช้คำสั่งนี้แล้ว สแนปชอตการบูตด่วนของโปรแกรมจำลองจะยังคงอยู่ที่จุดตรวจสอบนั้น เรียกใช้คําสั่งเดิมอีกครั้งเพื่อโหลดโปรแกรมจําลองจากจุดตรวจสอบ

ภาพนิ่งที่ถ่ายและโหลดผ่านฟังก์ชัน UI ของภาพนิ่งจะยังคงทำงานเหมือนเดิม ไม่มีการแมปไฟล์

เนื่องจากการเปลี่ยนแปลงนี้ส่งผลอย่างมากต่อวิธีการทำงานของ Quickboot เราจึงอยากทราบความคิดเห็นของคุณว่าฟีเจอร์นี้ช่วยปรับปรุงประสิทธิภาพของ Quickboot หรือไม่ และคุณพบปัญหาอะไรบ้างเมื่อใช้ฟีเจอร์นี้ หากพบปัญหา คุณสามารถปิดใช้ฟีเจอร์นี้ได้โดยการเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ ~/.android/advancedFeatures.ini

QuickbootFileBacked = off

เมื่อคุณเริ่มโปรแกรมจำลองจากสแนปชอต (โดยใช้-snapshotตัวเลือกบรรทัดคำสั่งหรือเปิดจากสแนปชอตในเครื่องมือจัดการ AVD) โปรแกรมจำลองจะปิดใช้ทั้งการบันทึกอัตโนมัติสำหรับสแนปชอตการบูตด่วนและการบันทึกสแนปชอตการบูตด่วนเมื่อออก ซึ่งจะช่วยลดโอกาสที่ระบบจะเขียนทับสแนปชอตการบูตด่วนโดยไม่ตั้งใจ และหลีกเลี่ยงเส้นทางสำรองที่ช้าซึ่งไม่ได้ใช้สแนปชอตการบูตด่วนที่สำรองข้อมูลไฟล์

QEMU 2.12

เราได้เปลี่ยนฐานของตัวแปร QEMU จาก QEMU 2.9 เป็น QEMU 2.12 การอัปเดตนี้รวมถึงการเปลี่ยนแปลง QEMU ต่อไปนี้

การเปลี่ยนแปลงที่สำคัญบางอย่างที่ส่งผลต่อโปรแกรมจำลอง Android มีดังนี้

  • x86: ตอนนี้ gdbstub มีสิทธิ์เข้าถึงรีจิสเตอร์ SSE แล้ว
  • รูปภาพดิสก์: ระบบจะเพิ่มและเปิดใช้การล็อกรูปภาพโดยค่าเริ่มต้น กระบวนการ QEMU หลายรายการจะเขียนลงในภาพเดียวกันไม่ได้ ตราบใดที่โฮสต์รองรับ OFD หรือการล็อกแบบ POSIX เว้นแต่จะมีการระบุตัวเลือกเป็นอย่างอื่น
  • qemu-img: qemu-img resize รองรับการจัดสรรพื้นที่ล่วงหน้าสำหรับส่วนของรูปภาพใหม่
  • ตอนนี้ qemu และ qemu-img รองรับการย่อ QCOW2 แล้ว

การช่วยเหลือพิเศษ

  • แก้ไขปัญหาเกี่ยวกับโปรแกรมอ่านหน้าจอและเพิ่มการรองรับเครื่องมือเหล่านี้ให้ดียิ่งขึ้นใน UI การบันทึกหน้าจอและภาพหน้าจอ
  • ทำให้ผู้ใช้ที่ตาบอดสีเข้าถึงไอคอนการแจ้งเตือนการเปิดเครื่องด่วนได้ง่ายขึ้น

กราฟิก

  • แก้ไขปัญหาการเข้าถึงหน่วยความจำเกินขอบเขตที่อาจเกิดขึ้นกับเคอร์เซอร์อาร์เรย์เวกเตอร์ของ OpenGL ES
  • GPU บางรุ่นเก่าไม่รองรับ OpenGL 2.1 ขึ้นไป (ซึ่งจำเป็น) หรือมีปัญหาด้านความเสถียรอื่นๆ ปัญหาเหล่านี้อาจทำให้โปรแกรมจำลองขัดข้องเมื่อเริ่ม ค้าง หรือไม่สามารถใช้งานกับการตั้งค่า GPU เริ่มต้นได้ ตอนนี้โปรแกรมจำลองจะเปลี่ยนไปใช้โปรแกรมแสดงผล Swiftshader โดยอัตโนมัติหากตรวจพบว่ามีการใช้ GPU เหล่านี้
  • แก้ไขปัญหาที่ทำให้โปรแกรมจำลองไม่แสดงเฟรมบัฟเฟอร์ที่ถูกต้องหากมีการเชื่อมโยง FBO != 0 ไว้ ณ เวลา eglSwapBuffers
  • แก้ไขปัญหาที่หน้าจอ Android เสมือนจะแสดงเฉพาะที่มุมซ้ายบน เราเชื่อว่าปัญหานี้เกิดจากตัวแปรสภาพแวดล้อม Qt ที่กำหนดค่าไม่ถูกต้อง ตอนนี้โปรแกรมจำลองจะลบล้างตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับการปรับขนาด Qt ทั้งหมด
  • แก้ปัญหาที่โปรแกรมจำลองขัดข้องในบางสถานการณ์เมื่อโหลดแอป GLES1 จากสแนปชอต
  • แก้ไขปัญหาการทำงานพร้อมกันใน OpenGL และการเปิดใช้งานเธรดการแสดงผลที่อาจส่งผลให้มีการลบซ้ำหรือข้อมูลเสียหาย
  • ตอนนี้โปรแกรมจำลอง Android รองรับพื้นผิวที่บีบอัด ASTC LDR (GL_KHR_texture_compression_astc_ldr) สำหรับภาพระบบที่ใช้ API ระดับ 28 ขึ้นไปแล้ว
  • ตอนนี้ GPU สมัยใหม่ส่วนใหญ่ควรเปิดโปรแกรมจำลองที่เปิดใช้ OpenGL ES 3.x โดยค่าเริ่มต้นได้โดยไม่ต้องใช้ Flag ฟีเจอร์ GLESDynamicVersion
  • -gpu guest (การแสดงผลด้วยซอฟต์แวร์ในโหมดผู้มาเยือน) เลิกใช้งานแล้ว ตอนนี้รูปภาพของระบบสำหรับ API ระดับ 28 ขึ้นไปจะเปลี่ยนไปใช้ Swiftshader โดยอัตโนมัติแทน (-gpu swiftshader_indirect)
  • หากเปิดโปรแกรมจำลองจากบรรทัดคำสั่งโดยใช้ Flag -no-window โปรแกรมแสดงผลเริ่มต้นจะเป็น Swiftshader

ตำแหน่ง

  • ตอนนี้โปรแกรมจำลองสามารถอัปเดตทิศทางพร้อมกับตำแหน่งละติจูดและลองจิจูดได้แล้ว เซ็นเซอร์เสมือนแม่เหล็กจะปรับตัวเองแบบไดนามิกตามทิศเหนือแม่เหล็กโดยอนุมานการเคลื่อนไหวเมื่อเล่นไฟล์ GPX หรือ KML
  • ตอนนี้คุณตั้งค่าความเร็วของอุปกรณ์ได้ในหน้าตำแหน่ง
  • เมื่อเล่นไฟล์ GPX หรือ KML ระบบจะตั้งค่าความเร็วโดยอัตโนมัติ และตั้งค่าเป็น 0 เมื่อการเล่นสิ้นสุดลง
  • ระดับความสูงไม่จํากัดอยู่ในช่วง -1,000 ถึง +10,000 เมตรอีกต่อไป
  • แก้ไขปัญหาที่ตำแหน่ง GPS เสมือนจะไม่ได้รับการอัปเดตเป็นระยะๆ เว้นแต่ว่าจะมีการเปิดหน้าต่างการควบคุมแบบขยายอย่างน้อย 1 ครั้ง

กล้อง

ตอนนี้ Windows รองรับเว็บแคมได้มากขึ้นเนื่องจากโปรแกรมจำลองจะปรับขนาดเฟรมกล้องที่ส่งจากเว็บแคมแบบไดนามิก นอกจากนี้ ฟีเจอร์นี้ยังป้องกันไม่ให้เกิดข้อผิดพลาดในการนำส่งเฟรมที่ทำให้โปรแกรมจำลองค้าง

Play Store

ตอนนี้โปรแกรมจำลองจะปรับขนาดพาร์ติชัน userdata เป็น 6 GB โดยอัตโนมัติเมื่อทำงานกับ AVD ของ Play Store ใหม่ เพื่อแก้ไขปัญหาพื้นที่ดิสก์ในภาพ Play Store ไม่เพียงพอ

การปรับปรุงและแก้ไขคุณภาพทั่วไป

  • ผู้ใช้บางรายรายงานว่าโปรแกรมจำลองทํางานช้า เราพบสาเหตุหนึ่งที่อาจเป็นไปได้ที่ทำให้ไดเรกทอรีชั่วคราวสำหรับโปรแกรมจำลองมีไฟล์เก่าอยู่ด้านในมากเกินไป ในการแก้ปัญหาชั่วคราว โปรแกรมจำลองจะไม่จัดเก็บไฟล์ตรวจสอบความพร้อมใช้งานของ ADB ในไดเรกทอรีนั้นอีกต่อไป อย่างไรก็ตาม การดำเนินการนี้อาจช่วยลบเนื้อหาในโฟลเดอร์นั้นด้วย โฟลเดอร์จะอยู่ในตำแหน่งใดตำแหน่งหนึ่งต่อไปนี้ โดยขึ้นอยู่กับระบบปฏิบัติการของคุณ
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS หรือ Linux: /tmp/android-<username>/*
  • หากโปรแกรมจำลองไม่สามารถเริ่มต้นเนื่องจากมี RAM ว่างไม่เพียงพอ ระบบจะแสดงข้อความแสดงข้อผิดพลาด หากคุณใช้ Windows และพบว่ามี RAM ว่างอยู่ แต่ยังคงเริ่มโปรแกรมจำลองไม่ได้ แสดงว่าอาจมีการใช้พื้นที่ในคอมมิตเกิน หากต้องการความช่วยเหลือเกี่ยวกับปัญหานี้ โปรดดูหน้าการแก้ปัญหาเกี่ยวกับโปรแกรมจำลอง
  • ตอนนี้ตัวเลือกบรรทัดคำสั่ง -sysdir จะลบล้างไดเรกทอรีรูปภาพของระบบที่อนุมานได้อย่างถูกต้อง
  • ตอนนี้โมเด็มเสมือนรองรับการค้นหา+MAIข้อมูลกิจกรรมของโมเดลแล้ว
  • แก้ไขปัญหาต่างๆ เกี่ยวกับหน่วยความจำรั่วไหล หน่วยความจำเสียหาย และการใช้งาน CPU หากพบปัญหาการขัดข้อง หน่วยความจำรั่วไหล หรือการใช้ทรัพยากรสูงอื่นๆ โปรดสร้างปัญหาในเครื่องมือติดตามปัญหา
  • แก้ไขปัญหาที่ปรากฏขึ้นอีกครั้งใน macOS 10.14 ซึ่งการใช้ชุดหูฟังบลูทูธกับโปรแกรมจำลองจะทำให้เสียงมีคุณภาพต่ำลง ด้วยเหตุนี้ ตอนนี้โปรแกรมจำลองจึงหลีกเลี่ยงการใช้เสียงบลูทูธเมื่อทำงานบน macOS (ปัญหา 37070892)
  • แก้ไขปัญหาใน Windows ที่นาฬิกาของโปรแกรมจำลองไม่ได้อยู่ในเขตเวลาที่เหมาะสม
  • แก้ไขการทำงานช้าของโปรแกรมจำลองและค้างในระบบ Linux ด้วยฮาร์ดไดรฟ์ที่หมุน (HDD)
  • แก้ไขคำเตือนการคอมไพล์บางรายการที่อาจทำให้สแต็กเสียหายใน macOS
  • แก้ไขปัญหาที่อาจส่งผลให้การรายงานการหยุดทำงานทำให้เข้าใจผิด
  • แก้ไขปัญหาการทำลายพูลเธรดซึ่งอาจทำให้เกิดการขัดข้องหากสร้างเธรดใดเธรดหนึ่งไม่สำเร็จ
  • แก้ปัญหาการจับเวลาใน macOS ที่ไม่น่าเชื่อถือ ซึ่งนำไปสู่การค้างและการทำงานที่แปลกอื่นๆ หากพบว่าโปรแกรมจำลองค้างบน macOS โปรดสร้างปัญหาในเครื่องมือติดตามปัญหา
  • แก้ไขปัญหาที่การปิดโปรแกรมจำลองจะปิดใช้ UI แต่ไม่ได้ปิดโปรแกรมจำลองจริงๆ
  • แก้ไขปัญหาการขัดข้องที่เกิดขึ้นเป็นพักๆ รวมถึงการยกเลิกเนื่องจากเปิด/dev/urandomหลายอินสแตนซ์เกินไป
  • แก้ไขปัญหาที่ทำให้โปรแกรมจำลองไม่เริ่มทำงานหลังจากครั้งแรกหากมีการสิ้นสุด ADB อย่างรุนแรง
  • นําบิลด์ MIPS ออกแล้ว หากยังต้องการ MIPS โปรดสร้างปัญหาในเครื่องมือติดตามปัญหา
  • แก้ไขปัญหาที่การเชื่อมต่อ ADB อาจเสียหายเมื่อโหลดสแนปชอต
  • แก้ไขปัญหาที่หน้าต่างโปรแกรมจำลองจะมีภาพซ้อนหรือย้ายไปนอกหน้าจอเมื่อกลับมาดูภาพนิ่งอีกครั้งโดยที่การวางแนวของอุปกรณ์แตกต่างจากการวางแนวเริ่มต้นของ AVD
  • แก้ไขปัญหาการขัดข้องเมื่อบันทึกภาพหน้าจอ
  • ใน Linux ระบบไฟล์ btrfs อาจทําให้ระบบช้าลงอย่างมากเนื่องจากโปรแกรมจําลองจะบันทึกภาพรวมโดยอัตโนมัติและใช้การคัดลอกเมื่อเขียนสําหรับอุปกรณ์ดิสก์เสมือน เราขอแนะนำให้ล้างข้อมูลในไดเรกทอรี ~/.android/avd และเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรี ~/.android/avd ที่ว่างเปล่า
    chattr +C
    
    การดำเนินการนี้จะสร้างสแนปชอตใหม่ในโฟลเดอร์ที่ปิดใช้การคัดลอกเมื่อเขียน

HAXM 7.3.2

เราขอพูดถึง HAXM 7.3.2 อีกครั้งเนื่องจากต้องติดตั้งเพื่อให้อิมเมจระบบล่าสุดทำงานได้อย่างถูกต้องบนโปรแกรมจำลอง HAXM 7.3.2 ควรมีอยู่ในเวอร์ชันเสถียรอยู่แล้ว และคุณสามารถติดตั้งด้วยตนเองจาก https://github.com/intel/haxm/releases ได้

ปัญหาที่ HAXM เวอร์ชันนี้แก้ไขได้มีดังนี้

  • แก้ไขข้อขัดข้องแบบสุ่มของระบบปฏิบัติการที่ติดตั้งใช้งานซึ่งใช้เคอร์เนล Linux เวอร์ชันล่าสุด (>= 4.6) เช่น Ubuntu 18.04 (#39, #74)
  • แก้ไขข้อบกพร่องของโปรแกรมจำลองคำสั่ง x86 ที่อาจทำให้โฮสต์ขัดข้อง (#93)

การเลิกใช้งาน Windows 32 บิต

เนื่องจากมีการใช้งานน้อยและค่าใช้จ่ายในการบำรุงรักษาสูง เราจึงวางแผนที่จะเลิกใช้งานโปรแกรมจำลอง Android เวอร์ชัน 32 บิตที่ทำงานบน Windows เราจะเปิดตัวแผนการเปลี่ยนแปลงก่อนการนําออกและหยุดให้บริการโปรแกรมจําลอง Android เวอร์ชัน 32 บิต อย่างไรก็ตาม เรายินดีรับฟังความคิดเห็นหรือข้อกังวลเกี่ยวกับการเปลี่ยนแปลงในอนาคตนี้

โปรดแจ้งให้เราทราบในเครื่องมือติดตามปัญหาหากคุณใช้โปรแกรมจำลอง Android เวอร์ชัน 32 บิตที่ทำงานบน Windows อยู่ในปัจจุบัน และบอกเราว่าเราจะช่วยเหลือคุณได้อย่างไรต่อไป

27.3.10 (สิงหาคม 2018)

การอัปเดตนี้มีการแก้ไขข้อบกพร่องต่อไปนี้

การแก้ไขการกำหนดค่าขนาด RAM

ผู้ใช้บางคนรายงานว่าโปรแกรมจำลองทำงานช้า เราพบสาเหตุหนึ่งที่อาจเป็นไปได้ที่ทำให้ขนาด AVD RAM ในไฟล์ config.ini ของ AVD ตั้งค่าไม่ถูกต้อง

โปรแกรมจำลองจะเพิ่มระดับ RAM ขั้นต่ำสำหรับรูปภาพที่ใช้ API ระดับ 26 ขึ้นไปให้เป็นระดับเริ่มต้นของ Android Studio ที่ 1536 MB เพื่อหลีกเลี่ยงปัญหานี้ หากไฟล์ config.ini ของ AVD ไม่ได้แสดง hw.ramSize เป็นเมกะไบต์ โปรดสร้างปัญหาในเครื่องมือติดตามปัญหา คุณจะค้นหาไฟล์ config.ini ได้ในตำแหน่งต่อไปนี้

~/.android/avd/<avdname>.avd/config.ini

27.3.9 (กรกฎาคม 2018)

การอัปเดตนี้ประกอบด้วยการปรับปรุงและการแก้ไขข้อบกพร่องต่อไปนี้

ปรับปรุงข้อความแสดงข้อผิดพลาดสำหรับ Windows Hypervisor Platform

ผู้ใช้บางรายพบปัญหาในการวินิจฉัยสาเหตุที่ Windows Hypervisor Platform (WHPX) เริ่มต้นไม่สำเร็จเมื่อเปิดใช้งานโปรแกรมจำลอง WHPX เราได้เพิ่มข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์มากขึ้นเพื่อช่วยให้คุณวิเคราะห์ปัญหาเหล่านี้ได้ คุณสามารถเปิดใช้ข้อความแสดงข้อผิดพลาดเหล่านี้ได้โดยเรียกใช้โปรแกรมจำลองจากบรรทัดคำสั่งโดยใช้แฟล็ก -verbose

การแก้ไขทั่วไป

  • แก้ไขข้อผิดพลาด OpenGL ที่เกิดขึ้นเมื่อโหลดสแนปชอตในแอปกล้อง

27.3.8 (กรกฎาคม 2018)

การอัปเดตนี้ประกอบด้วยฟีเจอร์ใหม่หลายรายการ การปรับปรุงฟีเจอร์ที่มีอยู่ และการแก้ไขข้อบกพร่อง

สแนปชอต

ตอนนี้คุณสามารถบันทึกภาพรวม AVD หลายรายการสำหรับการกำหนดค่าอุปกรณ์หนึ่งๆ และเลือกภาพรวมที่บันทึกไว้ที่จะโหลดเมื่อเริ่มโปรแกรมจำลองได้

ตั้งแต่ Android Studio 3.2 Canary 13 เป็นต้นไป การกําหนดค่าอุปกรณ์แต่ละรายการจะมีการควบคุมในการตั้งค่าขั้นสูงในกล่องโต้ตอบการกําหนดค่าอุปกรณ์เสมือน ซึ่งคุณสามารถระบุภาพนิ่ง AVD ที่จะโหลดเมื่อเริ่ม AVD ได้

เราได้เพิ่มหมวดหมู่สแนปชอตในกล่องโต้ตอบตัวควบคุมเพิ่มเติมเพื่อรองรับการขยายฟีเจอร์สแนปชอตนี้ แผงใหม่นี้มีการควบคุมสำหรับการบันทึกและโหลดสแนปชอต AVD รวมถึงการควบคุมสำหรับการบันทึกและโหลดสแนปชอตการบูตด่วนซึ่งก่อนหน้านี้อยู่ในแผงการตั้งค่า

คุณแก้ไขชื่อและคำอธิบายของภาพหน้าจอที่บันทึกไว้แต่ละรายการได้

โปรดดูรายละเอียดที่หัวข้อภาพรวม

HAXM 7.2.0

HAXM 7.2.0 พร้อมให้ใช้งานแล้วในทุกช่องทาง

การอัปเดตนี้มีการแก้ไขข้อบกพร่องและการปรับปรุงการรองรับ RAM ปริมาณมาก นอกจากนี้การอัปเดต HAXM และโปรแกรมจำลอง 27.3 ขึ้นไปนี้ทำให้สแนปชอตโหลดเนื้อหาลงใน RAM ตามคำขอแทนการโหลดสแนปชอตทั้งหมดเมื่ออุปกรณ์เสมือนเริ่มทำงาน การเปลี่ยนแปลงนี้ควรช่วยลดเวลาในการโหลดภาพรวมได้อย่างมาก

โปรดดูรายละเอียดที่หัวข้อการกำหนดค่าการเร่งความเร็ว VM

27.2.9 (พฤษภาคม 2018)

การอัปเดตนี้รวมถึงฟีเจอร์ใหม่หลายรายการ การปรับปรุงฟีเจอร์ที่มีอยู่ และการแก้ไขข้อบกพร่อง

การบันทึกหน้าจอ

ตอนนี้คุณสามารถบันทึกวิดีโอและเสียงจากโปรแกรมจำลอง Android และบันทึกไฟล์บันทึกเป็นไฟล์ WebM หรือ GIF แบบเคลื่อนไหวได้แล้ว

ตัวควบคุมการบันทึกหน้าจอจะอยู่ในแท็บบันทึกหน้าจอของหน้าต่างตัวควบคุมเพิ่มเติม

เคล็ดลับ: คุณยังเปิดการควบคุมการบันทึกหน้าจอโดยกด Control + Shift + R (Command + Shift + R ใน Mac) ได้ด้วย

หากต้องการเริ่มบันทึกหน้าจอ ให้คลิกปุ่มเริ่มบันทึกในแท็บบันทึกหน้าจอ หากต้องการหยุดบันทึก ให้คลิกหยุดบันทึก

ตัวควบคุมสำหรับเล่นและบันทึกวิดีโอที่บันทึกไว้อยู่ที่ด้านล่างของแท็บบันทึกหน้าจอ หากต้องการบันทึกวิดีโอ ให้เลือก WebM หรือ GIF จากเมนูที่ด้านล่างของแท็บ แล้วคลิกบันทึก

นอกจากนี้ คุณยังบันทึกและบันทึกวิดีโอการบันทึกหน้าจอจากโปรแกรมจำลองได้โดยใช้คำสั่งต่อไปนี้ในบรรทัดคำสั่ง

adb emu screenrecord start --time-limit 10 [path to save video]/sample_video.webm

ภาพหน้าจอ

คุณถ่ายภาพหน้าจอจากบรรทัดคำสั่งได้ด้วยคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้

  • screenrecord screenshot [destination-directory]
  • adb emu screenrecord screenshot [destination-directory]

ระบบจะบันทึกภาพหน้าจอในรูปแบบ PNG

กล้องฉากเสมือนและ ARCore

ตอนนี้การพัฒนาและทดสอบแอป Augmented Reality (AR) ด้วย ARCore ง่ายขึ้นกว่าเดิมด้วยกล้องฉากเสมือนจริงแบบใหม่ ซึ่งช่วยให้คุณทดสอบประสบการณ์ AR ในสภาพแวดล้อมเสมือนจริงได้

สำหรับข้อมูลเกี่ยวกับการใช้กล้องถ่ายฉากเสมือนจริงในโปรแกรมจำลอง โปรดดู เรียกใช้แอป AR ใน Android Emulator

รูปภาพของ Google Play Store ในอุปกรณ์ Pixel

Google Play Store เปิดใช้รูปภาพในอุปกรณ์ Pixel และ Pixel 2 แล้ว ซึ่งจะระบุไว้ในเครื่องมือจัดการ AVD ใน Android Studio 3.2 ขึ้นไปด้วยโลโก้ Google Play ในคอลัมน์ Play Store AVD ที่เปิดใช้ Google Play Store จะมีแท็บ Google Play ในกล่องโต้ตอบการควบคุมแบบขยายซึ่งมีปุ่มที่สะดวกสำหรับการอัปเดตบริการ Google Play ในอุปกรณ์

สแนปชอต

ตอนนี้คุณโหลด Quick Boot Snap โดยไม่ต้องรีสตาร์ทโปรแกรมจำลอง หากต้องการโหลดสแนปชอต ให้เปิดหน้าต่าง Extended Controls ในหน้า Settings แล้วคลิกปุ่ม Load Now

เราได้ทำการปรับปรุงการโหลดและบันทึกภาพรวมหลายอย่างเพื่อเพิ่มประสิทธิภาพการใช้ทรัพยากรและลดเวลาในการดำเนินการแต่ละรายการ หากยังคงพบการบันทึกที่นานผิดปกติ โปรดรายงานปัญหาโดยระบุรายละเอียดของ CPU, RAM และการตั้งค่าของซอฟต์แวร์ป้องกันไวรัส / ไฟร์วอลล์/ซอฟต์แวร์การรักษาความปลอดภัยที่กำลังทำงานอยู่

การแสดงผลด้วย Skia

เมื่อใช้รูปภาพสำหรับ API 27 ขึ้นไป โปรแกรมจำลองจะแสดงผล UI ของ Android ด้วย Skia ซึ่งจะแสดงผลได้อย่างราบรื่นและมีประสิทธิภาพมากขึ้น

ขณะนี้ การใช้ Skia กำหนดให้คุณต้องเปิดใช้อย่างชัดเจน

หากต้องการเปิดใช้การแสดงผล Skia ให้ใช้คำสั่งต่อไปนี้ในเชลล์ adb

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

กล้อง

ใน Windows ตอนนี้โปรแกรมจำลอง Android ใช้ Media Foundation เป็นแบ็กเอนด์ของเว็บแคมแล้ว ซึ่งช่วยปรับปรุงประสิทธิภาพและอัตราเฟรมในการจับภาพจากเว็บแคมได้อย่างมาก โดยสามารถจับภาพได้สูงสุด 720p 30 FPS

ตอนนี้คุณใช้ webcam0 และ webcam1 ร่วมกันใน Mac ได้แล้ว

เบ็ดเตล็ด

ตัวเลือกบรรทัดคำสั่ง -phone-number-prefix ได้เปลี่ยนเป็น -phone-number [number] ซึ่งช่วยให้ตั้งค่าหมายเลขโทรศัพท์แบบเต็มได้

ตอนนี้คุณใช้ที่อยู่ SMS แบบตัวอักษรและตัวเลขได้แล้ว

การแก้ไข

  • ตอนนี้โปรแกรมจำลอง Android เวอร์ชัน Linux สร้างขึ้นโดยใช้ชุดเครื่องมือ Clang C++ ที่ทันสมัย การเปลี่ยนแปลงนี้แก้ปัญหาโปรแกรมจำลองไม่สามารถเริ่มต้นได้เนื่องจากข้อผิดพลาด libGL และ libstdc++
  • แก้ไขสาเหตุหลายประการที่ทําให้แอปขัดข้องและค้าง
  • ตอนนี้โปรแกรมจำลองจะตรวจสอบพื้นที่ว่างในดิสก์ที่เพียงพอเมื่อเริ่มต้น และจะไม่เริ่มต้นหากมีพื้นที่ว่างน้อยกว่า 2 GB
  • แก้ไขปัญหาที่ทำให้เกม Unity บางเกมแสดงผลไม่ได้
  • แก้ไขปัญหา DNS ที่ทำให้โปรแกรมจำลองไม่สามารถเชื่อมต่อเครือข่ายได้
  • แก้ไขปัญหาที่ทำให้การเปลี่ยนแปลงพื้นที่เก็บข้อมูลภายในที่จัดสรรให้กับ AVD ผ่านกล่องโต้ตอบการกําหนดค่าอุปกรณ์เสมือนไม่ทํางาน
  • แก้ไขปัญหาที่มีการสร้างกระบวนการ adb หลายรายการและปิดไม่ถูกต้อง
  • แก้ไขปัญหาที่ทำให้ปุ่มหมุนและส่วนอื่นๆ ของ UI ไม่ตอบสนอง เว้นแต่ว่าหน้าต่างการควบคุมแบบขยายจะเปิดอยู่
  • แก้ไขปัญหาที่ทำให้การคัดลอกและวางจากโฮสต์ไม่ทำงาน เว้นแต่ว่าจะมีการเปิดกล่องโต้ตอบการควบคุมแบบขยายอย่างน้อย 1 ครั้ง
  • สี่เหลี่ยมผืนผ้าใหญ่ปรับขนาดของโปรแกรมจำลองแบบไร้กรอบได้รับการอัปเดตแล้วเพื่อให้เป็นไปตามธีมภาพของโปรแกรมจำลองมากยิ่งขึ้น
  • ตอนนี้โทรศัพท์และ SMS จะปิดใช้งานอย่างถูกต้องเมื่อโหมดบนเครื่องบินเปิดอยู่
  • แก้ไขปัญหาที่ทำให้ SMS และฟังก์ชันการทำงานของเครือข่ายมือถือปิดอยู่หลังจากโหลดสแนปชอต
  • คุณจะไม่ได้รับการแจ้งเตือนที่เป็นเท็จอีกต่อไปซึ่งระบุว่า “Unable to open... \pstore.bin. Permission denied.”
  • แก้ไขปัญหาที่ทำให้จัดตำแหน่ง AVD ใหม่ในหน้าจอ Mac บางรุ่นไม่ได้
  • แก้ไขปัญหาหน้าจอกะพริบและว่างเปล่าในคอมพิวเตอร์ MacBook Pro รุ่นใหม่เมื่อเรียกใช้ AVD ด้วยสกิน Pixel 2 XL
  • แก้ปัญหาหน้าจอว่างเปล่าเมื่อเปลี่ยนเป็นโหมดซูมขณะที่โปรแกรมจำลองแบบไม่มีกรอบทำงานอยู่
  • แก้ไขปัญหาที่ทำให้สกินอุปกรณ์และเนื้อหาโปรแกรมจำลองเลื่อนไม่สอดคล้องกันเมื่อซูมเข้า

หากยังพบปัญหาการหยุดทำงานหรือความไม่เสถียรอื่นๆ อยู่ โปรดรายงานปัญหา

27.1.12 (มีนาคม 2018)

การอัปเดตนี้มีการแก้ไขปัญหาต่อไปนี้

  • คุณภาพเสียงบลูทูธลดลงหลังจากเริ่มโปรแกรมจำลอง (ปัญหา 37095756)
  • ตำแหน่งที่ส่งไปยังโปรแกรมจำลอง 1 ตัวจะส่งไปยังโปรแกรมจำลองทั้งหมด (ปัญหา 73450633)
  • ค่าที่ตั้งไว้โดยใช้การควบคุมเพิ่มเติม > ตำแหน่ง ในอินเทอร์เฟซผู้ใช้แบบกราฟิกได้ลบล้างตำแหน่ง GPS ที่ตั้งค่าไว้โดยใช้คอนโซล (ปัญหา 73471760)

หากคุณยังพบปัญหาเครื่องค้างหรือขัดข้องอื่นๆ โปรดแจ้งปัญหา

การอัปเดตนี้ อิมเมจระบบปัจจุบัน และ Android Studio เวอร์ชันตัวอย่างจะช่วยให้คุณใช้โปรแกรมจำลอง Android เพื่อเรียกใช้แอปพลิเคชันความจริงเสริมที่สร้างขึ้นด้วย ARCore ได้ ดูข้อกำหนดและวิธีการโดยละเอียดได้ที่ เรียกใช้แอป AR ใน Android Emulator

10.1.27 (กุมภาพันธ์ 2018)

  • ความละเอียดของภาพจากกล้อง

    คุณสามารถจับภาพเฟรม 720p จากเว็บแคมที่ต่ออยู่ได้แล้ว

    หากต้องการทำงานกับ Android 8.1 (API ระดับ 27) และอิมเมจระบบที่สูงกว่า เว็บแคมที่แนบต้องมีความสามารถในการจับภาพเฟรม 720p

  • การแก้ไข

    • แก้ไขปัญหาที่ทำให้การจับภาพจากเว็บแคมแสดงผลเป็นภาพที่บิดเบี้ยวหรือเป็นสีเขียวล้วนในบางครั้ง
    • แก้ไขปัญหาที่ทำให้เห็นข้อความต่อไปนี้แม้ว่าจะไม่มีการค้างจริง: "โปรแกรมจำลอง: ข้อผิดพลาด: ตรวจพบเทรดที่แขวนไว้ "ลูปเหตุการณ์ Qt" ไม่มีการตอบสนองเป็นเวลา 15,000 มิลลิวินาที"

หากยังพบปัญหาการหยุดทำงานหรือความไม่เสถียรอื่นๆ อยู่ โปรดรายงานปัญหา

27.1.7 (กุมภาพันธ์ 2018)

  • หน้าต่างโปรแกรมจำลองแบบไม่มีกรอบ

    โดยค่าเริ่มต้น ตอนนี้โปรแกรมจำลองที่มีไฟล์สกินอุปกรณ์จะแสดงโดยไม่มีกรอบหน้าต่างโดยรอบ หากต้องการแสดงกรอบหน้าต่างรอบๆ ให้เปิดใช้แสดงกรอบหน้าต่างรอบๆ อุปกรณ์ในแผงการตั้งค่าของหน้าต่างการควบคุมแบบขยาย

  • การปรับปรุงการบูทด่วนเพื่อทําให้การทำงานกับสแนปชอต AVD มีประสิทธิภาพมากขึ้น

    • คุณบันทึกสแนปชอต AVD ได้ทุกเมื่อโดยใช้ปุ่ม Save Now ในแผงการตั้งค่าของกล่องโต้ตอบตัวควบคุมแบบขยาย
    • โปรแกรมจำลองจะลดเวลาที่ใช้ในการบันทึกสแนปชอตในหลายๆ กรณีด้วยการบันทึกเฉพาะความแตกต่างระหว่างสถานะปัจจุบันและสแนปชอตที่บันทึกไว้ก่อนหน้านี้

    โปรดดูรายละเอียดในเอกสารประกอบการบูตด่วน

  • เครื่องจำลองได้รับการอัปเดตให้ใช้ QEMU 2.9 แล้ว

    การปรับปรุงที่โดดเด่นบางส่วนมีดังนี้

    • I/O ที่เพิ่มประสิทธิภาพและการล็อกเธรด I/O ที่ละเอียดยิ่งขึ้นเพื่อประสิทธิภาพที่ดียิ่งขึ้น
    • แก้ไขข้อบกพร่องตั้งแต่ QEMU 2.8 (26.1.4)
    • การติดตั้งใช้งานแบ็กเอนด์ HAXM ใหม่

    ดูรายการการเปลี่ยนแปลงทั้งหมดได้ในบันทึกการเปลี่ยนแปลงของ QEMU 2.9

  • การใช้งาน Swiftshader ที่เป็นไปตาม OpenGL ES 3.0

    ตอนนี้โปรแกรมแสดงผล Swiftshader ของโปรแกรมจำลองเป็นไปตามข้อกำหนดของ OpenGL ES 3.0 ทั้งหมดแล้ว ดูรายละเอียดเกี่ยวกับโปรแกรมแสดงผล Swiftshader ได้ที่ส่วนการควบคุมแบบขยายในการตั้งค่า > ขั้นสูง

  • การแก้ไข

    • แก้ไขปัญหาที่การแชร์คลิปบอร์ดไม่ทำงาน เว้นแต่จะมีการสลับตัวเลือกเปิดใช้การแชร์คลิปบอร์ดเป็นปิดและเปิด
    • แก้ไขการค้างเมื่อใช้ระบบแบ็กเอนด์การแสดงผล Swiftshader ด้วย AVD ความละเอียดต่ำ

27.0.5 (มกราคม 2018)

  • ตอนนี้ ANGLE สำหรับการแสดงผลใน Windows ปิดใช้อยู่โดยค่าเริ่มต้น

    หาก ANGLE ทำงานได้ดีกว่า คุณก็เปิดใช้อีกครั้งได้โดยใช้ Flag -gpu angle_indirect ในบรรทัดคำสั่ง หรือเปิดหน้าต่างการควบคุมแบบขยาย แล้วไปที่การตั้งค่า > ขั้นสูง แล้วเลือก ANGLE D3D11 สำหรับการตั้งค่าโปรแกรมแสดงผล OpenGL ES

  • แก้ไขปัญหาที่แป้น Shift+B ไม่ได้พิมพ์อักขระ B ตัวพิมพ์ใหญ่

27.0.2 (ธันวาคม 2017)

  • ฟีเจอร์ Quick Boot ใหม่มีเวลาเริ่มต้นโปรแกรมจำลองที่เร็วขึ้น โดยอิงตามสแนปชอตของอินสแตนซ์ AVD

    ระบบจะเปิดใช้การบูตด่วนโดยค่าเริ่มต้นสำหรับ AVD ทั้งหมด แม้ว่าครั้งแรกที่คุณเริ่มใช้ AVD โปรแกรมดังกล่าวก็จะต้องเปิดเครื่องแบบ Cold Boot (เหมือนการเปิดอุปกรณ์) การเปิดใช้งานครั้งต่อๆ ไปทั้งหมดจะเป็นไปอย่างรวดเร็วและระบบจะได้รับการคืนค่าเป็นสถานะที่คุณปิดโปรแกรมจำลอง (คล้ายกับการปลุกอุปกรณ์)

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

    • ใช่: บันทึกสแนปชอตการเปิดเครื่องอย่างรวดเร็วเสมอเมื่อปิดโปรแกรมจำลอง ซึ่งเป็นค่าเริ่มต้น
    • ไม่: อย่าบันทึกภาพรวมการบูตด่วน ทำการบูตจากเครื่องเย็นเสมอ
    • ถาม: ให้แจ้งว่าจะบันทึกสแนปชอตการเปิดเครื่องอย่างรวดเร็วหรือไม่เมื่อคุณปิดโปรแกรมจำลอง

    การเลือกของคุณจะมีผลกับ AVD ที่เปิดอยู่ในปัจจุบันเท่านั้น

    ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับการบูตด่วน

  • เพิ่มการรองรับ Mac OpenGL ES 3 (สำหรับอิมเมจระบบที่ใช้ API ระดับ 24 ขึ้นไป, Google APIs และ x86 ABI)

  • ตอนนี้โปรแกรมจำลองใช้โปรไฟล์หลัก OpenGL (หากมี) เพื่อให้แอป OpenGL ES 2 ขึ้นไปมีความเสถียรมากขึ้น

  • ตัวเลือกใหม่สำหรับการเรนเดอร์ด้วย Swiftshader / ANGLE

    • -gpu swiftshader_indirect: Swiftshader เวอร์ชันที่เร็วและเสถียรยิ่งขึ้นซึ่งทำงานร่วมกับการเปิดเครื่องอย่างรวดเร็วได้
    • -gpu angle_indirect (Windows เท่านั้น): ANGLE D3D เวอร์ชันเสถียรยิ่งขึ้นซึ่งใช้งานร่วมกับ Quick Boot ได้

    ตัวเลือก -gpu swiftshader และ -gpu angle เวอร์ชันเก่าเลิกใช้งานแล้ว ในหน้าต่างการควบคุมแบบขยาย ตัวเลือก "SwiftShader" และ "ANGLE" สำหรับการตั้งค่าการแสดงผล OpenGL ES ในการตั้งค่า > ขั้นสูงจะใช้ตัวแปร *_indirect

  • การแก้ไขข้อบกพร่องอื่นๆ อีกมากมาย

26.1.4 (สิงหาคม 2017)

นี่เป็นรุ่นย่อยที่มีการแก้ไขข้อบกพร่องและการปรับปรุงการกำหนดค่า GPU ต่อไปนี้

  • เปิดใช้ภาพเคลื่อนไหวในการบูตเมื่อทำงานบนโปรแกรมแสดงผล ANGLE
  • ปิดใช้ GLES3 เมื่อเรียกใช้บนโหมดแสดงภาพ ANGLE

26.1.3 (สิงหาคม 2017)

นี่เป็นรุ่นย่อยที่มีการแก้ไขข้อบกพร่อง ปรับปรุงประสิทธิภาพ และการเปลี่ยนแปลงฟีเจอร์เล็กๆ น้อยๆ

  • ตอนนี้เวอร์ชันนี้ต้องใช้กับภาพระบบ Android 8.0 เวอร์ชันล่าสุด เป็นไปตามข้อกำหนดของ Treble โดยมีพาร์ติชัน vendor.img แยกกัน
  • HAXM 6.2.0 ใหม่พร้อมให้บริการแล้ว (ดู SDK Manager) และมีการอัปเดตต่อไปนี้
    • การใช้งานหน่วยความจำที่ดีขึ้น ชุดหน่วยความจำที่ใช้งานได้สูงสุดซึ่ง HAXM ปักหมุดไว้ไม่เท่ากับขนาดของ RAM ของ AVD อีกต่อไป แต่จะมีการแบ่งหน้าหน่วยความจำตามความต้องการ วิธีนี้จะช่วยให้โปรแกรมจำลองทำงานได้อย่างเสถียรยิ่งขึ้นในเครื่องที่มี RAM จำนวนต่ำ
    • ตอนนี้โปรแกรมจำลองที่มี HAXM 6.2.0 สามารถบูตได้เร็วขึ้นบน macOS โดยข้ามขั้นตอนการเริ่มต้นที่ใช้เวลานาน
  • การปรับปรุงการกำหนดค่า GPU
    • แก้ไขปัญหาหน้าจอสีดําเมื่อบูตเมื่อทำการเรนเดอร์ซอฟต์แวร์ฝั่งผู้มาเยือนโดยเปลี่ยนไปใช้ซอฟต์แวร์เรนเดอร์ฝั่งโฮสต์ด้วย Swiftshader อิมเมจระบบเวอร์ชันล่าสุดสำหรับ API ระดับ 19-25 ที่มี Google API ควรมีการแสดงผลฝั่งผู้มาเยือนที่ใช้งานได้
    • แก้ไขปัญหาที่ระบบเปลี่ยนโปรแกรมจำลองเป็นโปรแกรมแสดงผลซอฟต์แวร์เนื่องจากตรวจพบ GPU ของ Intel รุ่นเก่า แต่โปรแกรมจำลองทำงานอยู่บน GPU แบบแยกต่างหาก ระบบจะพิจารณา GPU ที่จะเปลี่ยนไปใช้การแสดงผล ANGLE หรือ Swiftshader ดังนี้
      • iGPU ของ Intel รุ่นเก่ามีปัญหาเกี่ยวกับไดรเวอร์ทั้ง OpenGL และ ANGLE D3D ผู้ใช้ที่มี Intel HD Graphics 3xxx หรือเก่ากว่าจะใช้ Swiftshader
      • ผู้ใช้บางรายรายงานว่าใช้รูปภาพ API ระดับ 25 ไม่ได้เนื่องจากข้อบกพร่องที่ "Pixel Launcher หยุดทำงานอยู่เรื่อยๆ" ปัญหานี้ดูเหมือนจะเป็นปัญหาเกี่ยวกับไดรเวอร์ใน Intel HD 4xxx บางรุ่น ระบบจึงจะเปลี่ยนให้ใช้ ANGLE โดยอัตโนมัติ
    • เราขอแนะนำให้ใช้ GPU แบบแยกของ NVIDIA หรือ AMD หรือ GPU ของ Intel รุ่นใหม่กว่า (Iris, HD 5xxx, HD 5xx/6xx) เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดในการจําลอง GPU
    • แก้ไขปัญหาที่โปรแกรมจำลองไม่เริ่มทำงาน (การจําลอง OpenGL เริ่มต้นไม่สําเร็จ) หากกําหนดค่า AVD ด้วย hw.gpu.mode=host และเปิดโปรแกรมจําลองในไคลเอ็นต์เดสก์ท็อประยะไกล
    • ชี้แจงการตั้งค่า "ระดับ API ของ OpenGL ES (ต้องรีสตาร์ท)" เพิ่มตัวเลือกในการดาวน์เกรดจาก OpenGL ES 3 เป็น OpenGL ES 2 หากพบปัญหาหรือต้องทดสอบใน API ของ OpenGL ES ระดับต่ำกว่า
    • เลิกใช้งานโหมดแสดงภาพ Mesa แล้ว hw.gpu.mode=mesa จะเปลี่ยนไปใช้ Swiftshader ในโฮสต์โดยอัตโนมัติ
  • การปรับปรุงสำหรับ macOS
    • ตอนนี้โปรแกรมจำลองใช้งานได้กับ macOS 10.13 High Sierra ผ่าน Hypervisor.Framework หรือ HAXM 6.2.0 ได้อย่างเต็มรูปแบบ
    • ระบบจะเปิดใช้ Hypervisor.framework โดยค่าเริ่มต้นใน macOS สำหรับรูปภาพ x86 32 บิต เพื่อปรับปรุงประสิทธิภาพและความเข้ากันได้กับ macOS หากคุณพบปัญหาเกี่ยวกับฟีเจอร์นี้โดยเฉพาะ โปรดส่งรายงานข้อบกพร่องและเพิ่ม HVF = off ต่อท้าย ~/.android/advancedFeatures.ini (สร้างไฟล์นี้หากยังไม่มี)
    • แก้ไขปัญหาไม่มีอินเทอร์เน็ต / แนบโปรแกรมแก้ไขข้อบกพร่องไม่สำเร็จขณะใช้ Hypervisor.framework
    • เราได้แทนที่การจับภาพจากกล้องที่ใช้ QTKit เป็นการจับภาพที่บัฟเฟอร์แล้วซึ่งอิงตาม AVFoundation เพื่อปรับปรุงความเข้ากันได้และประสิทธิภาพของการจับภาพจากเว็บแคม
  • เพิ่มการรองรับ Wi-Fi ในภาพระบบบางรายการ (ปัจจุบันรองรับเฉพาะ API ระดับ 25) มีจุดเข้าใช้งานชื่อ "AndroidWifi" และ Android จะเชื่อมต่อกับจุดเข้าใช้งานดังกล่าวโดยอัตโนมัติ ปิดใช้การรองรับ Wi-Fi ได้โดยเรียกใช้โปรแกรมจำลองที่มีพารามิเตอร์บรรทัดคำสั่ง -feature -Wifi
  • ผู้ใช้บางรายกังวลว่าภาพระบบของ Play Store ขนาดคงที่จะมีพื้นที่เก็บข้อมูลไม่เพียงพอ เราได้เพิ่มขนาดเป็น 2 GB โดยค่าเริ่มต้น (จากเดิม 800 MB)
  • เพิ่มแป้นพิมพ์ลัด (Ctrl+Shift+U) เพื่อเปิดหน้า UI การรายงานข้อบกพร่องจากหน้าการตั้งค่าโดยตรง
  • แก้ไขปัญหาที่หากใช้ CPU รุ่นเก่าที่มี Intel x86 EPT แต่ไม่มี UG โปรแกรมจำลองจะบูตไม่สำเร็จหากมีการกำหนดค่ามากกว่า 1 คอร์
  • แก้ไขปัญหาที่ระบบจะตรวจจับ HyperV ไม่ถูกต้องหากโปรแกรมจำลองทำงานใน Hypervisor ของ Xen
  • แก้ไขปัญหาที่โปรแกรมจำลองจะขัดข้องเมื่อเริ่มต้นในการกำหนดค่า Linux บางรายการ

26.1.2 (กรกฎาคม 2017)

รุ่นนี้ประกอบด้วยฟีเจอร์ใหม่และการปรับปรุงประสิทธิภาพ

  • เพิ่มความสามารถในการกำหนดการกำหนดค่าพร็อกซี HTTP ที่กำหนดเองในส่วนการควบคุมแบบขยาย (คลิกเพิ่มเติม แล้วคลิกการตั้งค่าและพร็อกซี) โดยค่าเริ่มต้น โปรแกรมจำลองจะใช้การตั้งค่าพร็อกซี HTTP ของ Android Studio แต่หน้าจอนี้จะช่วยให้คุณกำหนดค่าพร็อกซีด้วยตนเองได้

  • เพิ่มการรองรับ VNC สำหรับ GPU ในโหมดผู้มาเยือนเพื่อให้ดูและควบคุมโปรแกรมจำลองจากระยะไกลได้ ตัวอย่างเช่น คุณสามารถเปิดโปรแกรมจำลองและอนุญาตให้ VNC ฟังพอร์ต 5901 ได้โดยทำดังนี้

    1. ดำเนินการ: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. เปิดเครื่องมือดู VNC เช่น เครื่องมือตรวจสอบการเชื่อมต่อแบบเครือข่าย (Titvnc) เพื่อเชื่อมต่อกับพอร์ต 5901

      • หากต้องการใช้ไคลเอ็นต์การแชร์หน้าจอในตัวของ Mac คุณจะต้องมีรหัสผ่าน VNC เมื่อเปิดโปรแกรมจำลอง หากต้องการตั้งรหัสผ่าน ให้ใช้คำสั่งนี้

        emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio

        จากนั้นป้อน change vnc password ในคอนโซล แล้วป้อนรหัสผ่าน

    ขณะนี้โหมด VNC ยังไม่รองรับ Android O

  • เพิ่มปุ่มรายงานข้อบกพร่องในหน้าจอความช่วยเหลือเพิ่มเติมของตัวควบคุม (คลิกเพิ่มเติม จากนั้นคลิกความช่วยเหลือและความช่วยเหลือเกี่ยวกับโปรแกรมจำลอง) การคลิกรายงานข้อบกพร่องจะเปิดกล่องโต้ตอบที่คุณสามารถดูรายละเอียดรายงานข้อบกพร่อง เช่น ภาพหน้าจอ ข้อมูลการกําหนดค่า AVD และบันทึกรายงานข้อบกพร่อง จากนั้นคุณจะบันทึกรายงานให้ตัวเองหรือรายงานปัญหาโปรแกรมจำลองได้

  • เพิ่มเซ็นเซอร์ไจโรสโคปลงในโปรแกรมจำลองและแผงเซ็นเซอร์เสมือน การดำเนินการนี้ต้องใช้ภาพระบบที่รองรับ Gyroscope (ปัจจุบันคือ API ระดับ 24 และ 25)

  • เพิ่ม DNS ที่โฮสต์ต้องการไปยังรายการ DNS ของ Qemu ใน Windows เมื่ออินเทอร์เฟซเครือข่ายเสมือนหลายรายการในโฮสต์แนะนำที่อยู่ DNS หลายรายการซึ่งใช้งานไม่ได้สำหรับโปรแกรมจำลอง

  • เพิ่มการรองรับ macOS Hypervisor.Framework เวอร์ชันทดลองสำหรับภาพ x86 32 บิตใน macOS 10.10 ขึ้นไปผ่าน Flag ของเซิร์ฟเวอร์ ซึ่งควรช่วยปรับปรุงเวลาในการบูตและประสิทธิภาพ

    • หากพบปัญหา ให้เพิ่มบรรทัด HVF = off ใน ~/.android/advancedFeatures.ini
  • ตอนนี้ระบบจะเปิดใช้ OpenGL ES 3.x โดยค่าเริ่มต้นสำหรับอิมเมจระบบและ GPU โฮสต์ที่รองรับ OpenGL ES 3 ปัจจุบันมีเพียงโฮสต์ Android O (ระดับ API 26) และ Windows/Linux เท่านั้นที่รองรับ OpenGL ES 3

    • หากพบปัญหาเกี่ยวกับ OpenGL ES 3 ให้เพิ่มบรรทัด GLESDynamicVersion = off ใน ~/.android/advancedFeatures.ini
  • ตอนนี้โปรแกรมจำลองใช้ OpenGL FBO นอกหน้าจอสำหรับการแสดงภาพทั้งหมด ยกเว้นการโพสต์รูปภาพที่แสดงในขั้นสุดท้าย ซึ่งน่าจะช่วยแก้ปัญหาเรื่องความสอดคล้องของสีในแพลตฟอร์มต่างๆ ได้

  • หลังจากรวบรวมข้อมูลเกี่ยวกับปัญหาการจําลองที่ช้าลงอย่างฉับพลันแล้ว เราพบว่าปัญหาอาจเกี่ยวข้องกับการโต้ตอบบางอย่างระหว่างไดรเวอร์ Intel OpenGL รุ่นเก่ากับการอัปเดต Windows ดังนั้น ผู้ใช้ที่มี Intel HD 4000, 3000, 2000 (และ GPU ที่เกี่ยวข้อง) จะมีการตั้งค่าการแสดงผลเป็นโปรแกรมแสดงผล D3D (ANGLE) หรือ Swiftshader (โปรแกรมแสดงผลซอฟต์แวร์) โดยค่าเริ่มต้น

26.0.0 (มีนาคม 2017)

รุ่นนี้เข้ากันได้กับ API ระดับ 26 รวมถึงการปรับปรุงประสิทธิภาพและการแก้ไขข้อบกพร่องหลายรายการ

การแก้ไขเล็กน้อย 26.0.3 (พฤษภาคม 2017)

  • เพิ่ม Flag ฟีเจอร์ที่อัปเดตได้ทางออนไลน์เพื่อแก้ไขปัญหาที่เกิดจากการกำหนดค่าฮาร์ดแวร์ที่เป็นปัญหาได้อย่างรวดเร็ว วิธีนี้ช่วยให้ Google เปิดตัวการแก้ไขและฟีเจอร์ต่างๆ ที่ขึ้นอยู่กับการกำหนดค่าของผู้ใช้ด้วยการอัปเดต Flag ฝั่งเซิร์ฟเวอร์ หากคุณพบปัญหาเกี่ยวกับฮาร์ดแวร์ที่เจาะจง โปรดรายงานข้อบกพร่องเพื่อให้เราตรวจสอบปัญหาได้
  • การรองรับใหม่สำหรับการป้อนข้อมูลแบบหมุนสำหรับรูปภาพของระบบ Android Wear API ระดับ 25 หากต้องการจําลองปุ่มหมุนป้อนข้อมูลในอุปกรณ์ Wear ให้คลิกแท็บการป้อนข้อมูลด้วยปุ่มหมุนในหน้าต่างแบบขยาย
  • ตอนนี้กล่องโต้ตอบการรายงานข้อขัดข้องปรับขนาดได้และจะไม่รีเซ็ตอีกต่อไป เมื่อใดที่จะส่งรายงานข้อขัดข้องเป็นถามโดยไม่มีอินพุต
  • ตอนนี้โปรแกรมจำลอง 32 บิตกำหนดให้ขนาด RAM สูงสุดของ AVD ต้องน้อยกว่าหรือเท่ากับ 512 MB เพื่อป้องกันไม่ให้โปรแกรมจำลองมีพื้นที่ไม่เพียงพอในพื้นที่ที่อยู่เสมือน 2 GB
  • เพิ่มการรองรับเส้นทางสัมบูรณ์ในอิมเมจโปรแกรมจำลอง
  • เพิ่มแท็บใหม่ในหน้าต่างแบบขยายสำหรับรูปภาพใน Google Play Store ที่แสดงเวอร์ชันของบริการ Google Play และปุ่มสำหรับตรวจหาการอัปเดตบริการ Google Play
  • เพิ่มเมนูแบบเลื่อนลงเพื่อเลือกโปรแกรมแสดงผล OpenGL ในหน้าการตั้งค่าโปรแกรมจำลอง หากพบปัญหาเกี่ยวกับไดรเวอร์ OpenGL ในเครื่อง Windows ให้ลองใช้ตัวเลือก ANGLE (D3D11) หรือ ANGLE (D3D9) (ต้องรีสตาร์ท) หากพบปัญหาเกี่ยวกับไดรเวอร์ OpenGL ในเครื่องที่ไม่ใช่ Windows ให้ลองใช้โปรแกรมแสดงผลซอฟต์แวร์ Swiftshader (ต้องรีสตาร์ท)
  • แก้ไขข้อขัดข้องที่พบได้น้อยเมื่อออกเมื่อโปรแกรมจำลองได้รับทั้งคำสั่ง exit และ minimize
  • แก้ไขปัญหาการปรับขนาดเมื่อเปลี่ยนจอแสดงผลในเครื่อง Mac (ปัญหา 268296)
  • แก้ไขปัญหาที่โปรแกรมจำลองใช้ CPU 300% อย่างต่อเนื่องหลังจากคอมพิวเตอร์โฮสต์กลับมาทำงานจากโหมดสลีปหรือเมื่อโปรแกรมจำลองทำงานเป็นเวลานาน
  • แก้ไขข้อขัดข้องเมื่อโปรแกรมจำลองปิดเครื่อง

การอัปเดตด้วย HAXM v6.1.1 (มีนาคม 2017)

หมายเหตุ: HAXM v6.1.1 พร้อมให้บริการแก่ผู้ใช้ Mac ผ่านSDK Manager ตั้งแต่วันที่ 30 มีนาคม และจะพร้อมให้บริการแก่ผู้ใช้ Windows ในเร็วๆ นี้

โปรแกรมจำลอง Android เวอร์ชัน 26.0.0 รองรับ HAXM v6.1.1 ซึ่งมีการอัปเดตต่อไปนี้

  • เปิดใช้การจำลอง Performance Monitoring Units (PMU) (ปัญหา 223377)
  • แก้ไขการทำงานร่วมกันกับ VirtualBox และ Docker ใน Mac (ปัญหา 197915)
  • แก้ไขข้อความแสดงข้อผิดพลาดในการติดตั้งที่ปรากฏขึ้นเมื่อโปรแกรมติดตั้งตรวจไม่พบ Intel VT-x ใน Windows ซึ่งมักเกิดจากมีการเปิดใช้ Hyper-V
  • เพิ่มการรองรับการเร่งความเร็วโปรแกรมจำลอง Android ใน VM ของ Windows ที่ใช้ Hyper-V การอัปเดตนี้กำหนดให้อินสแตนซ์ Hyper-V โฮสต์ (อินสแตนซ์ที่จัดการ VM/แขก Windows) ใช้ Hyper-V เวอร์ชันล่าสุดที่เปิดใช้การจำลองเสมือนที่ซ้อนกัน ต้องปิดใช้ Hyper-V ในอินสแตนซ์ Hyper-V ของผู้ใช้ (VM ของ Windows)

ทรัพยากร Dependency

  • เครื่องมือแพลตฟอร์ม Android SDK เวอร์ชัน 25.0.4 ขึ้นไป
  • Android SDK Tools เวอร์ชัน 26.0.0 ขึ้นไป

ฟีเจอร์ใหม่และการแก้ไขข้อบกพร่อง

  • เข้ากันได้กับ API ระดับ 26
  • เป็นไปตามข้อกำหนด GLES 2.0 อย่างสมบูรณ์ เมื่อใช้ GPU โฮสต์ที่มีไดรเวอร์ OpenGL ของเดสก์ท็อปที่เป็นไปตามข้อกำหนด ตอนนี้โปรแกรมจำลองผ่านรายการ dEQP-GLES2 ของ Android CTS mustpass 100% เราได้เปิดตัวฟีเจอร์นี้สำหรับอิมเมจ x86 ระดับ API 24 (ฉบับแก้ไข 11 ขึ้นไป) แล้ว และจะรวมไว้ในอิมเมจระบบทั้งหมดในเร็วๆ นี้
  • ปรับปรุงประสิทธิภาพการเล่นวิดีโอ ตอนนี้โปรแกรมจำลองจะจัดเก็บบัฟเฟอร์สีวิดีโอทั้งหมดในหน่วยความจำที่แชร์ของโฮสต์/ผู้มาเยือน และแปลง YUV เป็น RGB ขั้นสุดท้ายที่จำเป็นใน GPU ปัจจุบัน 1080p30 น่าจะเข้าถึงได้จากระบบส่วนใหญ่แล้ว เราได้เปิดตัวฟีเจอร์นี้สำหรับอิมเมจ x86 ระดับ API 24 (ฉบับที่ 11 ขึ้นไป) แล้ว และจะรวมไว้ในอิมเมจระบบทั้งหมดในเร็วๆ นี้
  • ตอนนี้โปรแกรมจำลองจะยกเลิกการลงทะเบียนตัวเองจากรายการ adb devices เมื่อออกอย่างถูกต้องและปิดพอร์ต TCP ที่เปิดอยู่ในเครื่อง Linux
  • การเชื่อมต่อ adb มีความน่าเชื่อถือมากขึ้นแล้ว ระบบจะตรวจพบโปรแกรมจำลองที่ทำงานอยู่ได้เร็วขึ้นและจะไม่เข้าสู่สถานะ "ออฟไลน์" หรือ "ไม่ได้รับอนุญาต" อีกต่อไป

25.3.0 (มีนาคม 2017)

ในรุ่นนี้ โปรแกรมจำลองของ Android จะเผยแพร่แยกต่างหากจากเครื่องมือ SDK รุ่นนี้มีการปรับปรุงประสิทธิภาพ ฟีเจอร์ใหม่ๆ และการแก้ไขข้อบกพร่องหลายอย่าง

การแก้ไขเล็กน้อย 25.3.1 (มีนาคม 2017)

  • แก้ไขข้อขัดข้องที่เกิดขึ้นในการกำหนดค่า GPU บางส่วนโดยปิดใช้ GLAsyncSwap โดยค่าเริ่มต้น ฟีเจอร์นี้เพิ่มเข้ามาในเวอร์ชัน 25.3.0 เพื่อปรับปรุงการกำหนดเวลาเฟรมและเฟรมต่อวินาทีสำหรับเกมและวิดีโอ แต่ทำให้โปรแกรมจำลองทำงานไม่สำเร็จในการกำหนดค่าเครื่องที่ไม่รู้จักบางรายการ คุณเปิดใช้ด้วยตนเองได้โดยการเปิดไฟล์ android_sdk/emulator/lib/advancedFeatures.ini และตั้งค่า GLAsyncSwap = on

ทรัพยากร Dependency

  • เครื่องมือแพลตฟอร์ม Android SDK เวอร์ชัน 24 ขึ้นไป
  • Android SDK Tools เวอร์ชัน 25.3.0

ฟีเจอร์ใหม่และการแก้ไขข้อบกพร่อง

  • อัปเดตเครื่องมือจำลองเป็น QEMU 2.7 ซึ่งรวมถึงการแก้ไขข้อบกพร่องล่าสุดทั้งหมด ประสิทธิภาพที่ดีขึ้น และฟีเจอร์ใหม่ทั้งหมด
  • การรองรับ IPv6 ใหม่
  • ตอนนี้โปรแกรมจำลองใช้ SwiftShader เป็นตัวแสดงผลซอฟต์แวร์ล้วนในโฮสต์
  • การปรับปรุงประสิทธิภาพของ Android Pipe: Android Pipe ซึ่งเป็นช่องทางการสื่อสารหลักระหว่างโปรแกรมจำลองกับระบบปฏิบัติการ Android ทำงานได้เร็วขึ้นหลายเท่า มีค่าเวลาในการตอบสนองต่ำลง และมีประสิทธิภาพแบบหลายเธรดที่ดียิ่งขึ้น ซึ่งส่งผลให้มีการปรับปรุงประสิทธิภาพของโปรแกรมจำลองหลายประการ ดังนี้
    • ปรับปรุงความเร็วในการส่ง/รับ ADB
    • รองรับการเร่งความเร็ว 3 มิติได้ดียิ่งขึ้น
    • การตอบสนองโดยรวมของเอมมูเลเตอร์เพิ่มขึ้น
    • ปรับปรุงประสิทธิภาพกราฟิก
  • ตอนนี้โปรแกรมจำลองใช้บัฟเฟอร์ฝั่ง GPU (glBindBuffers / glBufferData) เมื่อผู้มาเยือนขอบัฟเฟอร์ ซึ่งจะลดค่าใช้จ่ายเพิ่มเติมของ CPU ในบางแอป
  • การรองรับเสียงที่ดีขึ้น
  • I/O ของดิสก์เร็วขึ้น: ตอนนี้โปรแกรมจำลองใช้เธรดแยกต่างหากเพื่อส่ง I/O ของดิสก์ ส่งผลให้เวลาในการตอบสนองต่ำลงและอัตรารับส่งข้อมูลดีขึ้น (~1.5 เท่าของความเร็ว I/O ตามลำดับ, ~5 เท่าของความเร็ว I/O แบบเข้าถึงแบบสุ่ม) การดำเนินการนี้ยังลดจำนวนการล้างดิสก์ ทำให้โหลดอุปกรณ์จริงน้อยลงมาก
  • ตอนนี้โปรแกรมจำลองใช้ไฟล์แบบเบาบางสำหรับการบูตดิสก์ในเครื่อง Windows ซึ่งจะเร่งทั้งการบูตครั้งแรกและการบูตแบบ "ล้างข้อมูล" เมื่อสร้างหรือรีเซ็ต AVD ตอนนี้โปรแกรมจำลองจะเขียนข้อมูล 100-200 MB ลงในดิสก์แทนที่จะเขียน 2 GB ขึ้นไป
  • การปรับปรุง GUI ต่างๆ
    • ตอนนี้โปรแกรมจำลองใช้ Qt 5.7.0 ซึ่งมีการแก้ไขข้อบกพร่องและปรับปรุงประสิทธิภาพ
    • อินทิอลไลเซชัน UI จะไม่พยายามโหลดไฟล์เรียกใช้ได้ทั้งหมดของโปรแกรมจำลองเป็นปลั๊กอิน Qt อีกต่อไป ดังนั้นจึงใช้เวลาน้อยลงอย่างมาก โดยเฉพาะใน HDD
    • ตอนนี้การโต้ตอบกับ UI เร็วขึ้นและราบรื่นขึ้นแล้ว ซึ่งรวมถึงการหมุน การปรับขนาดหน้าต่าง และการโหลดและปิดหน้าต่างการควบคุมแบบขยาย