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

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

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

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

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

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

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

35.4.4 Canary (12 ธ.ค. 2024)

โปรแกรมจำลอง Android XR เวอร์ชันใหม่

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

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

จนถึงตอนนี้ โปรแกรมจำลอง Android XR ได้รับการทดสอบกับการกำหนดค่าฮาร์ดแวร์ต่อไปนี้

  • Mac (ARM)
  • Windows 11
    • GPU ของ nVidia, VRAM 4 GB, ไดรเวอร์เวอร์ชัน 553.35 ขึ้นไป
  • RAM ความจุ 16 GB ขึ้นไป
  • 8 คอร์ขึ้นไป

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

โปรแกรมจำลอง - ความเสถียรและประสิทธิภาพ

  • การล็อกหรือขัดข้องของระบบอย่างร้ายแรงระหว่างการบูตหรือขณะเรียกใช้แอปพลิเคชันอาจเกิดขึ้นได้ในการกำหนดค่า Windows บางรายการ โปรดตรวจสอบว่าได้เปิดใช้ Windows Hypervisor Platform (WHPX) โดยทำตามคู่มือนักพัฒนาแอป Android Studio เพื่อเปิดใช้ WHPX
  • ปัญหา เช่น AVD หรือองค์ประกอบ UI ไม่ตอบสนองในแล็ปท็อปหลังจากวงจรการหยุดชั่วคราวและกลับมาทำงานอีกครั้ง (เช่น การปิดแล็ปท็อปแล้วเปิดขึ้นมาใหม่)
  • แอปขัดข้องเป็นครั้งคราวเมื่อเปลี่ยนแอปพลิเคชันจาก "โหมดหน้าจอหลัก" เป็น "โหมดเต็มหน้าจอ"
  • Gemini API ยังไม่พร้อมใช้งาน แอปเทมเพลตเริ่มต้นของ Gemini API จะขัดข้อง

โปรแกรมจำลอง - การจําลองอินพุตและเอาต์พุต

  • ปุ่มกดเสมือนจริงสำหรับช่องค้นหาและแก้ไขอาจปรากฏให้เห็นเพียงบางส่วนในมุมมอง
  • ไม่สามารถย้ายองค์ประกอบในแนว z (เข้าและออกจากหน้าจอ) โดยใช้เมาส์และแป้นพิมพ์

  • อินพุตเสียงของโฮสต์ไมโครโฟน AVD ไม่เสถียรอาจส่งผลให้ AVD รีบูตและขัดข้อง

  • เสียงอาจแตกพร่าหรือเพี้ยนเป็นครั้งคราว

  • เมื่อย้ายกล้องออกจากห้องนั่งเล่นเสมือนจริง คุณจะเห็นข้อผิดพลาดในการเรนเดอร์

  • การกําหนดค่า Windows แสดงสีเข้มกว่าปกติ

  • เสียงไม่ทำงานอีกต่อไปหลังจากปล่อยโปรแกรมจำลองไว้โดยไม่ใช้งานและล็อกหน้าจอใน macOS (การรีสตาร์ทโปรแกรมจำลองจะกู้คืนข้อมูล)

  • การเชื่อมต่อเครือข่ายขาดตอนเมื่อเครื่องโฮสต์เปลี่ยน Wi-Fi

  • เมื่อเปิดใช้ Caps Lock คุณจะยังพิมพ์ตัวอักษรพิมพ์เล็กได้

  • การเลื่อนโดยใช้แทร็กแพดใน Mac ไม่ลื่นไหล

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

  • ข้อความ UI และข้อบกพร่องอื่นๆ ใน Chrome เบลอในการกำหนดค่าระบบ Windows บางรายการ วิธีแก้ปัญหาที่เป็นไปได้: การเปิดใช้ WHP

โปรแกรมจำลอง - การจำลองเครื่องบินและจุดยึด:

  • บางครั้งจุดยึดจะไม่เกิดใหม่ใกล้กับตำแหน่งเดิม
  • บานหน้าต่างแบบเคลื่อนย้ายไม่ได้ต้องยึดกับผนังหรือเพดาน
  • เครื่องบินจำลองไม่ตรงกับเลย์เอาต์จริงของห้อง 3 มิติในโหมดการส่งผ่าน
  • พื้นที่โดยรวมที่จำกัดสำหรับการยึดวัตถุในห้องเสมือน
  • สิ่งประดิษฐ์ขนาดเล็กที่มองเห็นได้ในมุมมองการแสดงภาพใน Windows
  • ในบางกรณี การวางหมุดอาจทำให้แอปขัดข้อง
  • เส้นสีดําอาจปรากฏบนแอปเมื่อย้ายแอปไปไว้ใกล้กับด้านล่างใน Windows

โปรแกรมจำลอง - อื่นๆ

  • โปรแกรมจำลองจะเริ่มต้นในโหมด "สแตนด์อโลน" เท่านั้น ยังไม่รองรับโหมด "ฝัง" (UI ที่ฝัง)
  • การเข้าสู่ระบบด้วยบัญชีในโปรแกรมจำลองใน Windows อาจทำให้โปรแกรมจำลองค้าง
  • เนื้อหา UI ของหน้าต่างอาจหายไปหลังจากปรับขนาด (วิธีแก้ปัญหา: กดปุ่ม "Home")
  • ในแอป JXRCore ActivityPanelTest แผงรองจะไม่แสดงในตอนแรก
  • รายการการตั้งค่าด่วนอาจหายไปจากการตั้งค่าระบบหลังจากผ่านไประยะหนึ่ง
  • UI ของโปรแกรมจำลองอาจปรากฏนอกพื้นที่หน้าจอในตอนแรก หากเป็นเช่นนั้น ให้ปรับขนาดหน้าต่างโปรแกรมจำลองเล็กน้อย แล้วหน้าต่างควรกลับมาอยู่ในตำแหน่งเดิม
  • โปรแกรมจำลองอาจไม่เริ่มต้นเมื่อใช้ Chrome Remote Desktop ใน Windows
  • ขณะนี้โปรแกรมจำลองยังไม่รองรับ Open XR และแอป Open XR อาจทำให้โปรแกรมจำลองขัดข้อง
  • การส่งรายงานข้อบกพร่องผ่านการตั้งค่าเพิ่มเติมของ Android Studio ใน Windows ล้มเหลวในบางกรณี
  • ไอคอน "กลับไปยังหน้าก่อนหน้า" จะไม่แสดงอย่างถูกต้องในแอปการตั้งค่าจนกว่าเคอร์เซอร์จะวางไว้ใกล้ๆ ไอคอนนั้นใน Mac
  • ในบางกรณี การสร้างอาจเกิดข้อผิดพลาดเมื่อใช้โมดูล "โปรไฟล์พื้นฐาน" เป็นส่วนหนึ่งของโปรเจ็กต์เทมเพลต XR
  • ขณะนี้การช่วยเหลือพิเศษ "XR Talkback" ผสานรวมกับโปรแกรมจำลองเพียงบางส่วนเท่านั้น

แอป Scene Viewer

  • การย้ายองค์ประกอบภายใน Scene Viewer อาจทําให้โปรแกรมขัดข้อง วิธีแก้ปัญหานี้ก็คือให้ย้ายตำแหน่งของหัวออกจากตำแหน่งเริ่มต้นเล็กน้อย (เช่น โดยใช้การแพน ดอลลี่ WASD ฯลฯ) ก่อนพยายามย้ายองค์ประกอบ
  • ฟีเจอร์ขนาดจริง 1:1 จะไม่ทำงานอย่างถูกต้องหากขนาดจริงของโมเดล 3 มิติต่ำกว่าหรือสูงกว่าขีดจำกัดต่ำสุดและสูงสุดของสเกล (ปัจจุบันตั้งค่าไว้ที่ 20 ซม. และ 70 ม. ตามลำดับ)
  • โมเดล 3 มิติอาจข้ามไปยังเฟรมแรกหลังจากการโหลด

35.2.10 (1 ต.ค. 2024)

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

35.1.20 (29 ส.ค. 2024)

  • เพิ่ม AVD ของ Pixel 8a
  • การแก้ไขข้อบกพร่องต่างๆ สำหรับอุปกรณ์แบบพับได้
  • การอัปเดต 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)

  • การแก้ไขข้อขัดข้องต่างๆ ที่เกี่ยวข้องกับโหมดสลับและการดูและทำความสะอาดผู้ลงโฆษณา

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 ที่ใช้กับฟีเจอร์ตำแหน่งในการควบคุมแบบขยายของโปรแกรมจำลอง ซึ่งจะเกิดขึ้นในช่วงสิ้นเดือนพฤษภาคม
  • การแก้ไขข้อขัดข้องที่มีผลกระทบสูง
  • การแก้ไขต่างๆ ใน AVD ของ Pixel
  • อัปเดตไลบรารีกราฟิกที่ใช้สําหรับการแสดงผลด้วยซอฟต์แวร์
  • [การแก้ไขข้อบกพร่อง]ปัญหา 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 Emulator ได้อย่างปลอดภัยจากภายในการทดสอบเครื่องมือวัดผลของ 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 แพตช์ 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 Emulator

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 Emulator 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 ระหว่างการติดตั้ง
  • แก้ไขข้อขัดข้องใน emulator-check

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
  • นำแบ็กเอนด์ libportability Vulkan ออก
  • เพิ่มการรองรับฟีเจอร์อื่นๆ ในเครื่องจำลองโมเด็ม

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

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

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

  • เพิ่มการรองรับเซ็นเซอร์บานพับสำหรับอุปกรณ์แบบพับได้ ซึ่งต้องใช้การกำหนดค่า 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 ในเธรด vcpu (เนื่องจากระบบจะส่งงานแสดงผลไปยังเธรดอื่นๆ อยู่แล้ว) เนื่องจากวิธีการทำงานของโปรแกรมจำลอง
  • ในอิมเมจระบบในอนาคต โปรแกรมจำลองจะเรียกใช้กราฟิกทั้งหมดได้ด้วยสแต็กที่อิงตาม 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 ทั้งหมดทั่วโลก เรามี Flag ฟีเจอร์ NoDeviceFrame ซึ่งเปิดใช้งานได้ด้วยการเปิดโปรแกรมจำลองจากบรรทัดคำสั่งที่มีเฟรม -feature NoDevice หรือหากต้องการล็อกไว้ ให้เพิ่ม NoDeviceFrame = on ลงใน ~/.android/advancedFeatures.ini (สร้างไฟล์นี้หากยังไม่มี)

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

    • นอกจากนี้ เรายังได้เพิ่มคําสั่งคอนโซลเพื่อวัตถุประสงค์เดียวกันด้วย gsm meter on|off
  • อัปเกรดเครื่องมือ / บิลด์เป็น 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>

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

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

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

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

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

  • แก้ไขปัญหาที่เกม Asphalt 9 เวอร์ชันล่าสุดแสดงผลเป็นหน้าจอสีดํา
  • นําสแปมเกี่ยวกับการล้างบัฟเฟอร์ที่แมปด้วย NULL ออกแล้ว
  • แก้ไขเงื่อนไขการแข่งขันเมื่อมีการทำลายสถานะ Vulkan เมื่อแอป Vulkan สำหรับผู้มาเยือนออก
  • ตอนนี้ Shader การจําลอง 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 เวอร์ชัน upstream การแก้ไขนี้ช่วยแก้ปัญหาเกี่ยวกับความเสียหายของหน่วยความจำเมื่อแปลและแปลงค่าคงที่ของ OpenGL ES Shader ที่ใช้เมทริกซ์ที่ไม่ใช่สี่เหลี่ยมจัตุรัส ตอนนี้โปรแกรมแปลชิดเดอร์เป็นไลบรารีที่ใช้ร่วมกันแยกต่างหากแล้ว libshadertranslator.dll
  • แก้ไขปัญหาเกี่ยวกับการเริ่มต้น Vulkan ในไดรเวอร์ GPU บางรายการ ซึ่งไม่พบฟังก์ชันอุปกรณ์ 1.1 บางรายการ
  • Vulkan: เราได้เปลี่ยนกลับไปใช้โปรแกรมโหลดที่สร้างไว้ล่วงหน้าแล้ว เนื่องจากการใช้โปรแกรมโหลด Vulkan ของระบบทำให้เกิดปัญหาในการตั้งค่าบางอย่าง เราจะหาวิธีแก้ปัญหาที่ดีกว่า
  • แก้ไขปัญหาเมื่อใช้หน่วยความจำภายนอก Vulkan ซึ่งอาจมีการนําเข้าดัชนีประเภทหน่วยความจําที่ไม่ตรงกันในโฮสต์
  • แก้ไขปัญหาในการจําลอง GL_ALIASED_POINT_SIZE_RANGE ที่โฮสต์ไม่รองรับ enum
  • แก้ไขปัญหาที่ GPU โฮสต์บางรุ่นไม่สามารถคอมไพล์ Skia Shader ได้เนื่องจากข้อผิดพลาดที่เกี่ยวข้องกับ 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 Emulator ไม่ได้เนื่องจากแอปของคุณใช้ไบนารี 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 และต่ำกว่าทำงานกับบิลด์แบบไม่มีส่วนแสดงผลได้ โปรดทราบว่าสำหรับแขก x86 32 บิตที่มี 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 จนกว่าระบบปฏิบัติการของแขกจะบูตเสร็จสมบูรณ์ (จากบูตเย็น) ตัวเลือกนี้ช่วยแก้ปัญหาที่อาจเกิดขึ้นหากคุณใช้โปรแกรมจำลองในสภาพแวดล้อม 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 เป็นต้นไป โปรแกรมจำลองจะมีตัวเลือกการสร้างแบบ headless ที่ทำงานได้โดยไม่ต้องใช้ UI คุณสามารถใช้บิลด์แบบ Headless เพื่อช่วยในการตั้งค่าโปรแกรมจำลองสําหรับเวิร์กโฟลว์การรวมอย่างต่อเนื่อง (CI) และ Docker

ในการอัปเดตครั้งนี้ เราได้ทำการปรับปรุงเพิ่มเติมเพื่อให้โปรแกรมจำลองทำงานได้โดยมีทรัพยากรที่ต้องพึ่งพาน้อยที่สุด ใน 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 นั้นยังไม่เสร็จสิ้นการล้างไฟล์ที่ล้าสมัย
  • สำหรับภาพระบบที่กำลังจะเปิดตัว โปรแกรมจำลองจะรองรับ Hardware 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 โฮสต์ที่เข้ากันได้ (ซึ่งรวมถึง GPU ส่วนใหญ่ของ Intel, NVIDIA และ AMD ตั้งแต่ปี 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
  • libportability: ANDROID_EMU_VK_ICD=portability

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

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

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

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

  • การส่งคำสั่งอินพุตไปยังโปรแกรมจำลองด้วยโปรแกรมจะเกี่ยวข้องกับการเรียกใช้คำสั่ง adb shell ที่อาจทำให้เกิดค่าใช้จ่ายเพิ่มเติมสูง หรือการใช้คอนโซล telnet ซึ่งเร็วกว่า แต่อาจใช้ไม่ได้กับการกำหนดค่าเครือข่ายบางอย่าง
  • ผู้ใช้ CI มักจะเรียกใช้โปรแกรมจำลองแบบไม่มีการแสดงผล ซึ่งอาจทำให้สังเกตปัญหาที่หน้าจอต้องแสดงหรือโต้ตอบได้ยาก
  • ผู้ใช้เดสก์ท็อประยะไกลมักโต้ตอบกับโปรแกรมจำลองไม่ได้เมื่อใช้การแสดงผล 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.0.25 (29 มีนาคม 2019)

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

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

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

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

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

  • แก้ไขการแสดงเฟรมที่กระตุกและไม่ถูกต้องใน GPU ของ Intel เมื่อใช้ภาพระบบ 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.0.23 (29 มกราคม 2019)

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

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

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

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

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

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

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

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

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

ขณะไม่ได้ใช้งาน: การตรวจหาคําสั่งให้ดำเนินการ

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

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

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

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

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

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

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

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

  • แก้ไขปัญหาใน Windows ที่ทำให้โปรแกรมจำลองค้างเมื่อโหลดภาพนิ่งด้วย GPU บางรุ่นของ Intel
  • แก้ไขปัญหาที่ทำให้เกิดสถานะunauthorizedอุปกรณ์ ADB เมื่อใช้ตำแหน่งANDROID_SDK_HOMEที่ไม่เป็นมาตรฐาน
  • แก้ไขปัญหาใน Windows ที่ทำให้โปรแกรมจำลองขัดข้องเมื่อบูตระบบอิมเมจโดยปิดใช้การเร่งความเร็ว CPU
  • แก้ไขปัญหาการแสดงผลโปรแกรมจำลองที่แตกเป็นพิกเซล ตอนนี้การลดขนาดควรจะใช้งานได้
  • แก้ไขปัญหาใน macOS 10.14 ขึ้นไปที่การควบคุมการมองด้วยเมาส์ของกล้องฉากเสมือนอาจทำงานได้ไวเกินไปเนื่องจากการโต้ตอบกับการตั้งค่าความปลอดภัยการช่วยเหลือพิเศษใหม่
  • แก้ไขข้อผิดพลาดในการคำนวณเขตเวลาที่อาจทําให้นาฬิกาของโปรแกรมจําลองเปลี่ยนแปลงเป็นระยะๆ
  • แก้ไขข้อผิดพลาดการแสดงผลในแอป cocos2d และ Unreal Engine ต่างๆ
  • เพิ่มการรองรับ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 เมื่อเรียกใช้แอปที่มีภาพเคลื่อนไหว
  • แก้ไขปัญหาที่บริบท QEMU AIO อาจรั่วใน Windows

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

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

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

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

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

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

สแนปชอต RAM ของผู้ใช้ที่โฮสต์ซึ่งสำรองข้อมูลด้วยไฟล์

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

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

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

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

เนื่องจากการเปลี่ยนแปลงนี้ส่งผลอย่างมากต่อวิธีการทำงานของฟีเจอร์การบูตด่วน เราจึงอยากทราบความคิดเห็นของคุณว่าฟีเจอร์นี้ช่วยปรับปรุงประสิทธิภาพการบูตด่วนหรือไม่ และคุณพบปัญหาใดบ้างเมื่อใช้ฟีเจอร์นี้ หากพบปัญหา คุณสามารถปิดใช้ฟีเจอร์นี้ได้โดยการเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ ~/.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

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

ในการลดปัญหานี้ เครื่องจำลองจะเพิ่มระดับ RAM ขั้นต่ำสำหรับภาพที่ใช้ API ระดับ 26 ขึ้นไปเป็นระดับเริ่มต้นของ Android Studio ที่ 1, 536 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

รูปภาพของ 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 ในอุปกรณ์

สแนปชอต

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

เราได้ทำการปรับปรุงการโหลดและบันทึกภาพรวมหลายอย่างเพื่อเพิ่มประสิทธิภาพการใช้ทรัพยากรและลดเวลาในการดำเนินการแต่ละรายการ หากยังพบปัญหาการบันทึกที่ใช้เวลานานผิดปกติ โปรดแจ้งปัญหาพร้อมระบุรายละเอียดของ 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

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

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

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

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

  • การแก้ไข

    • แก้ไขปัญหาที่ทำให้การจับภาพจากเว็บแคมแสดงผลเป็นภาพที่บิดเบี้ยวหรือเป็นสีเขียวล้วนในบางครั้ง
    • แก้ไขปัญหาที่ทำให้เห็นข้อความต่อไปนี้แม้ว่าจะไม่มีการค้างจริงก็ตาม "emulator: ERROR: detected a hanging thread 'Qt event loop' ไม่ได้รับการตอบกลับเป็นเวลา 15000 มิลลิวินาที"

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

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

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

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

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

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

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

  • เครื่องจำลองได้รับการอัปเดตให้ใช้ 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)

  • ฟีเจอร์การบูตด่วนใหม่ช่วยให้โปรแกรมจำลองเริ่มต้นได้เร็วขึ้น โดยอิงตามภาพรวมของอินสแตนซ์ 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 ที่เสถียรกว่าซึ่งยังทำงานร่วมกับการบูตด่วนได้ด้วย

    ตัวเลือก -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 เช่น TightVNC Viewer เพื่อเชื่อมต่อกับพอร์ต 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
  • ตอนนี้โปรแกรมจำลองใช้ FBOs ของ OpenGL นอกหน้าจอสำหรับการเรนเดอร์ทั้งหมด ยกเว้นการแสดงภาพสุดท้าย ซึ่งน่าจะช่วยแก้ปัญหาความสม่ำเสมอของสีในแพลตฟอร์มต่างๆ ได้

  • หลังจากรวบรวมข้อมูลเกี่ยวกับปัญหาการจําลองที่ช้าลงอย่างฉับพลันแล้ว เราพบว่าปัญหาอาจเกี่ยวข้องกับการโต้ตอบบางอย่างระหว่างไดรเวอร์ 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 ที่แสดงเวอร์ชันของบริการ Play และปุ่มสำหรับตรวจสอบการอัปเดตบริการ 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 ซึ่งมีการอัปเดตต่อไปนี้

  • เปิดใช้การจําลองหน่วยตรวจสอบประสิทธิภาพ (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 Platform-Tools เวอร์ชันแก้ไข 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 เร็วขึ้นและราบรื่นขึ้นแล้ว ซึ่งรวมถึงการหมุน การปรับขนาดหน้าต่าง และการโหลดและปิดหน้าต่างการควบคุมแบบขยาย