یادداشت های انتشار شبیه ساز

شبیه ساز اندروید همراه با اندروید استودیو موجود است.

نسخه های شبیه ساز قبل از 25.3.0 به عنوان بخشی از ابزار Android SDK توزیع شده است.

برای اطمینان از اینکه آخرین نسخه را دارید، مدیر SDK را برای به روز رسانی بررسی کنید.

برای دانلود نسخه های قبلی شبیه ساز اندروید، به آرشیو دانلود شبیه ساز مراجعه کنید.

برای یادداشت‌های انتشار نسخه‌های شبیه‌ساز قبل از 25.3.0، به یادداشت‌های انتشار Android SDK Tools مراجعه کنید.

برای مشکلات شناخته شده و عیب یابی، لطفاً به عیب یابی شبیه ساز مراجعه کنید.

35.2.10 (1 اکتبر 2024)

  • Pixel AVD های جدید شامل Pixel 9، Pixel 9 Pro، Pixel 9 Pro XL و Pixel 9 Pro Fold اضافه شده است.
  • اضافه شدن تصویر سیستم تبلت جدید برای بستنی وانیلی (API 35)

35.1.20 (29 اوت 2024)

  • Pixel 8a AVD اضافه شد
  • رفع اشکال مختلف برای تاشو
  • به روز رسانی Qt و رفع خرابی ها و هنگ های مربوط به qt
  • [رفع اشکال] رفع خرابی و فریز کردن ویندوز با برنامه‌هایی که از Vulkan استفاده می‌کنند

34.2.16 (9 ژوئیه 2024)

  • [رفع اشکال] UI ثابت می شود که در Pixel Fold در حین فولد/گشودن رخ می دهد
  • [رفع اشکال] نمایش نادرست نسخه اندروید به عنوان پیش نمایش بستنی وانیلی اندروید به جای API 35 در Mac M1.
  • [رفع اشکال] شماره 296162661 : ویژگی HasSystem FeaTURE_SENSOR_HINGE_ANGLE در شبیه‌ساز رایانه لوحی Pixel C به درستی برمی‌گردد

34.2.15 (31 مه 2024)

  • رفع خرابی های مختلف مربوط به حالت swangle و پاکسازی تبلیغ کننده

34.2.14 (20 مه 2024)

تست شده با Android Studio Jellyfish Stable Patch 1.

  • [رفع اشکال] Snapshot گاهی اوقات روی شبیه ساز تعبیه شده آویزان می شود
  • [رفع اشکال] دکمه های «خیر» و «لغو» به درستی روی عکس فوری کار نمی کنند
  • [رفع اشکال] دکمه های پد جهت کار نمی کنند
  • [رفع اشکال] مشکل مشاهده شده در ویندوز را برطرف کرد که مانع از شروع شبیه‌ساز در برخی شرایط هنگام استفاده از حالت‌های GPU با ANGLE می‌شد، و پیام خطای "Failed to Initialize GL emulation" را در گزارش برمی‌گرداند. توجه داشته باشید که شروع شبیه ساز توسط خط فرمان با گزینه -gpu swangle_indirect ممکن است همچنان این خطا را در این نسخه ایجاد کند. اگر همچنان می‌خواهید شبیه‌ساز را با استفاده از خط فرمان در ویندوز با رندر گرافیک نرم‌افزار با این نسخه شروع کنید، لطفاً از -gpu swiftshader_indirect استفاده کنید.
  • [رفع اشکال] میانبر مکان روی صفحه کلید یک نقشه غیرقابل استفاده را بارگیری می کند
  • [رفع اشکال] هنگام تنظیم مکان، گفتگوی "ذخیره مسیر" وجود ندارد

34.2.13 (30 آوریل 2024)

تست شده با Android Studio Jellyfish Stable.

  • به روز رسانی به Qt 6.5.3
  • سازگاری برای به‌روزرسانی‌های Google Maps API مورد استفاده در ویژگی‌های مکان در کنترل‌های توسعه‌یافته شبیه‌ساز، که در پایان ماه می انجام می‌شود.
  • رفع خرابی با ضربه زیاد
  • اصلاحات مختلف Pixel AVDs
  • کتابخانه گرافیکی مورد استفاده برای رندر نرم افزار را به روز کنید
  • [رفع اشکال] شماره 225541819 راه‌اندازی شبیه‌ساز خرابی کروم در x86_64
  • [رفع اشکال] شماره 314614435 - سوئیچ -http-proxy اشتباه تجزیه شده است

34.1.20 (1 آوریل 2024)

با Android Studio Iguana Stable تست شده است.

  • [رفع اشکال] شماره 314614435 : رفع مشکلی که سوئیچ -http-proxy اشتباه تجزیه شده است

34.1.19 (7 مارس 2024)

با Android Studio Iguana Stable تست شده است.

  • [رفع اشکال] شماره 312677259 : ثابت ماندن صفحه نمایش در شبیه ساز تعبیه شده پس از تغییر اندازه پنجره.

34.1.18 (29 فوریه 2024)

با Android Studio Iguana Stable تست شده است.

  • دستگاه هایی به شبیه ساز اضافه شدند از جمله:
    • Pixel Fold
    • تبلت پیکسل
    • پیکسل 8
    • پیکسل 8 پرو
    • پیکسل 7a
  • آزمایش ادغام gRPC: نقاط پایانی gRPC اکنون برای آزمایش‌های ابزاری که در داخل شبیه‌ساز اجرا می‌شوند در دسترس هستند و امکان تست سناریوهای واقعی را فراهم می‌کنند. این ویژگی به توسعه دهندگان این امکان را می دهد تا از طریق تست های ابزار دقیق اندروید با نقطه پایانی gRPC میزبانی شده توسط شبیه ساز Android به طور ایمن تعامل داشته باشند.
  • رفع اشکال مختلف
    • رفع اشکال : بهبود در قابلیت استفاده از دستگاه تاشو
    • رفع اشکال : موقعیت شبیه ساز را پس از چرخش تنظیم کنید
    • رفع خرابی

33.1.24 (28 دسامبر 2023)

تست شده با Android Studio Hedgehog Stable و Iguana Beta 1.

  • مشکل وب کم شبیه ساز را که اجازه ضبط صفحه نمایش در فرمت mp4 را نمی دهد، برطرف کنید.
  • رفع خرابی شبیه‌ساز در Pixel Fold AVD هنگامی که در حین ضبط صفحه نمایش باز می‌شود.
  • رفع مشکلی که Pixel Fold پوسته تلفن متفاوتی را با صفحه‌کلید جدا شده نشان می‌دهد و غیرقابل استفاده است (در Windows، Mac Intel و Linux رفع شد)
  • رفع اشکال ظاهری در حسگرهای مجازی در حالت مستقل (در ویندوز، مک اینتل و لینوکس رفع شد)
  • ارائه راه حل برای برخی از خرابی ها، به خصوص در هنگام بستن شبیه ساز، رفع شد

33.1.23 (30 نوامبر 2023)

تست شده با Android Studio Giraffe Patch 4 و Hedgehog Stable.

  • اجرای جدید تاشو برای شبیه‌سازی بهتر دستگاه 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 پیامک عبری در API 33 ارسال نمی‌شود
  • [رفع اشکال] شماره 257097404 شبیه ساز زمان صحیح را پس از بیدار شدن میزبان در API 29 و 30 نشان نمی دهد
  • [رفع اشکال] شماره 228201899 نمی‌توان نقشه‌های گوگل را در کنترل‌های توسعه‌یافته شبیه‌ساز Android مشاهده کرد

32.1.14 (27 ژوئن 2023)

با Android Studio Hedgehog Canary 8، Giraffe Beta 5 و Flamingo Stable تست شده است.

  • جهت گیری و اعوجاج دوربین شبیه ساز را برطرف کنید.
  • [رفع اشکال] شماره 257097404 "Emulator زمان صحیح را پس از بیدار شدن میزبان نشان نمی دهد". این باگ همچنان برای API 29 و API 30 قابل تکرار است.
  • [رفع اشکال] شماره 243456582 "انتشارهای اندروید پس از API 30 ممکن است به درستی در شبیه ساز در ماشین های Mac M1 شروع نشود"

32.1.13 (22 مه 2023)

با Android Studio Hedgehog Canary 2، Giraffe Beta 1 و Flamingo Stable تست شده است.

  • پشتیبانی از Pixel Fold و Pixel Tablet AVDs را اضافه کنید.
  • مشکل خرابی gLinux را بهبود بخشید.
  • [رفع اشکال] شماره 215231636 "Emulator با API بالاتر از API 30 در پردازنده نسل دوازدهم اینتل کار نمی کند".
  • [رفع اشکال] شماره 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 شروع شبیه‌ساز خرابی کروم در x86_64
  • [رفع اشکال] شماره 257097404 شبیه ساز زمان صحیح را پس از بیدار شدن میزبان نشان نمی دهد
  • اضافه کردن گزارش خرابی برای دستگاه های Apple M1

32.1.11 (8 فوریه 2023)

تست شده با Android Studio Giraffe Canary 2، Flamingo Beta 1 و Electric Eel Patch 1.

  • بهینه سازی سرعت شبکه
  • پشتیبانی از ماوس در Embedded Emulator
  • بهبودهای Virtio-snd
  • در حین نصب شبیه‌ساز اندروید، استفاده از سیم‌لینک‌ها را غیرفعال کنید
  • رفع خرابی در بررسی شبیه ساز

31.3.14 (13 دسامبر 2022)

با Android Studio Dolphin، Electric Eel RC1 و Flamingo Canary 9 تست شده است.

  • [رفع اشکال] خرابی های AVD که هنگام ورود به فروشگاه Play رخ می دهد را برطرف کنید.

31.3.13 (27 اکتبر 2022)

با Android Studio Dolphin، Electric Eel Beta 2 و Flamingo Canary 5 تست شده است.

  • [رفع اشکال] شماره 249948338: پارامتر منطقه زمانی کار نمی کند
  • [رفع اشکال] شماره 249366543: گزینه Emulator -dns-server بعد از API 31 کار نمی کند

31.3.12 (10 اکتبر 2022)

تست شده با Android Studio Dolphin و Electric Eel Beta 1.

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • [رفع اشکال] شماره 247843000: خطای مدیریت مسیر نسبی AVD
  • اندازه دیسک را برای API 24 و جدیدتر افزایش دهید

31.3.11 (23 سپتامبر 2022)

تست شده با Android Studio Dolphin و Electric Eel Canary 10.

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • [رفع اشکال] خرابی Embedded Emulator AVD در پنجره Extended Controls
  • [رفع اشکال] شماره 183139207: مشکلات صوتی مرتبط با میکروفون فعال کننده شبیه ساز
  • [رفع اشکال] شماره 229764024: اشکال لمسی چسبنده AVD که منجر به مشکلات رفتار رابط کاربری می شود
  • [رفع اشکال] خطا در راه اندازی API 33 AVD در Mac M1.
  • [رفع اشکال] شماره 243053479: سرعت پایین شبکه پس از به‌روزرسانی شبیه‌ساز
  • [رفع اشکال] شماره 244617627: مکان Maps ناکارآمد در ویندوز و لینوکس
  • [رفع اشکال] شماره 232971796: دکمه "تماس با دستگاه" غیرفعال در کنترل های توسعه یافته > صفحه تلفن
  • شبیه ساز اندروید را به minigbm به روز کنید
  • مهاجرت اسکریپت های ساخت به پایتون 3

31.3.10 (18 اوت 2022)

تست شده با Android Studio Dolphin Beta 5 و Electric Eel Canary 9.

دانلودهای مستقل شبیه ساز اکنون در دسترس هستند. اگر در این آخرین نسخه پایدار با مشکل یا خرابی مواجه شدید، لطفاً یک اشکال را ثبت کنید و نسخه‌ای که قبلاً کار می‌کرده را از بایگانی دانلود شبیه‌ساز دانلود کنید.

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • پشتیبانی بهتر از مسیر یونیکد در ویندوز
  • مدیریت بهتر خاموش شدن شبیه ساز تا راه اندازی جدید همان AVD موفق شود.
  • طراحی AVD تاشو و تنظیمات پیش فرض به روز شده است
  • دکمه های شبیه ساز Wear به روز شده است
  • بهبود جریان صوتی gRPC
  • دستور کنسول شبیه ساز قابل تغییر اندازه اضافه شد
  • Chrome Fix برای API 31
  • [رفع اشکال] تأیید حساب Google با GmsCore نسخه 21.42.18 انجام نشد

31.2.10 (20 آوریل 2022)

تست شده با Android Studio Dolphin Canary 8 و Chipmunk RC 1.

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • ابزاری را برای بارگیری توابع Vulkan با فالبک اضافه کنید
  • [رفع اشکال] خطای ساخت gcc8 را برطرف کنید

31.2.9 (23 مارس 2022)

تست شده با اندروید استودیو Dolphin Canary 7.

این به روز رسانی شامل اصلاح زیر است:

  • [رفع اشکال] هنگام ذخیره عکس فوری در M1، فشار حافظه را نادیده بگیرید

31.2.8 (7 فوریه 2022)

تست شده با Android Studio Bumblebee Patch 1 و Chipmunk Canary 6.

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • [رفع اشکال] امکان ورود به برنامه ها وجود ندارد
  • [رفع اشکال] شماره 215368358: «راه‌اندازی مجدد adb» در پلتفرم اینتل با «درخواست خاموش کردن vcpu»، avd را از کار می‌اندازد.

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 OS اضافه شد.
  • همه ویژگی های خودرو را در تب VHAL قابل ویرایش کرد.
  • [رفع اشکال] تأیید حساب Google با GmsCore نسخه 21.42.18 انجام نشد.
  • [رفع اشکال] Netshaper به خوبی با VirtioWifi کار نمی کند.
  • [رفع اشکال] فرمان کنسول موس رویداد کار نکرد.
  • بررسی KVM برای ایجاد AVD محلی اضافه شد.

31.1.3 (18 ژانویه 2022)

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • پورت های کنسول برای Fuchsia فعال شده است.
  • هنگام تغییر اندازه یک پنجره چند نمایشگر، جهت نادیده گرفته می شود.
  • Wi-Fi: اضافه شدن پشتیبانی برای فیلتر کردن بسته های unicast بر اساس آدرس مک MAT.
  • Wi-Fi: رفع خرابی زمانی که vmnet در حال استفاده است.

30.9.5 (15 دسامبر 2021)

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • اضافه شدن قابلیت تغییر اندازه آسان به یک پنجره به اندازه دسکتاپ یا تبلت.
  • پشتیبانی از ورودی چند لمسی از دستگاه های میزبان سازگار اضافه شده است.
  • VirtioWifi: پشتیبانی از شبکه شیر اضافه شده است.
  • ورودی چرخشی برای تصاویر سیستم Wear فعال شده است.
  • مشکل پیکربندی صوتی gRPC برطرف شد.
  • پخش شبیه ساز SensorReplay به روز شده برای پشتیبانی از سنسورهای استاندارد اندروید.
  • شبیه ساز را به وسایل جانبی و دستگاه هایی با استفاده از USB با عبور USB متصل کرد.

30.4.5 (23 فوریه 2021)

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • macOS: مشکلات مربوط به اعوجاج ورودی صدا برطرف شد.
  • اضافه شدن پشتیبانی از virtio-vsock در فضای کاربری.
  • تصاویر سیستم آینده از کنسول virtio برای logcat و پیام های هسته استفاده خواهند کرد.
  • سرعت رندر Vulkan را افزایش دهید.
  • اضافه شدن پشتیبانی از اشکال زدایی فوری در صورت شکست تست.
  • virtio-gpu: تعاریف به روز شده برای پشتیبانی از آخرین فهرست منابع حباب.
  • اضافه شدن پشتیبانی از عکس فوری برای حمل و نقل گرافیکی نوع 'asg'.
  • macOS: اضافه شدن پشتیبانی برای ساخت در برابر macOS SDK 11.1+.
  • KVMclock به طور پیش فرض در تصاویر سیستم جدیدتر فعال است.
  • پشتیبانی از حسگر ضربان قلب به شبیه سازهای Wear اضافه شده است.
  • libportability باطن Vulkan حذف شد.
  • پشتیبانی از ویژگی های بیشتر در شبیه ساز مودم اضافه شده است.

30.0.26 (16 اوت 2020)

این به روز رسانی شامل چندین ویژگی جدید، بهبود ویژگی های موجود و رفع اشکال است.

قابلیت تاشو با حسگر لولای مجازی و نمای سه بعدی پشتیبانی می‌شود

  • پشتیبانی از سنسورهای لولا برای دستگاه های تاشو اضافه شده است. این به یک تصویر سیستم اندروید 11 و پیکربندی AVD آینده نیاز دارد. نمای سه بعدی تاشو و پارامترهای لولا اکنون با پیش تنظیمات تاشو موجود یکپارچه شده است. برای مثال می‌توان موارد زیر را با فایل 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 اکنون در دسترس است. برای مطالعه بیشتر به وبلاگ توسعه اندروید 11 با شبیه ساز اندروید مراجعه کنید.

  • سنسور لولا اکنون به طور پیش فرض فعال است.

  • اگر یک دستگاه تاشو پیکربندی شده باشد، شبیه ساز اکنون به روز رسانی حسگرهای زاویه لولا و تغییرات وضعیت بدن را برای مهمان ارسال می کند. دستگاه‌های تاشوی موجود اکنون با فشار دادن دکمه‌های تا و باز کردن نوار ابزار، زاویه و وضعیت حسگر لولا را به‌روزرسانی می‌کنند.

شبیه ساز برای هاست های ARM64

  • کد منبع شبیه ساز لینوکس اکنون از کامپایل متقابل از میزبان های x86_64 تا arm64 پشتیبانی می کند و امکان اجرای تصاویر سیستم arm64 را با مجازی سازی KVM فراهم می کند. در حال حاضر، فقط -gpu swiftshader_indirect (پردازش میزبان Swiftshader arm64) پشتیبانی می‌شود، اما مجموعه سازگاری از کتابخانه‌های میزبان GPU libEGL/libGLESv2 نیز می‌تواند با جایگزینی 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

  • پشتیبانی از سمت میزبان برای منابع حباب منسجم میزبان virtio-gpu اضافه شده است.
  • با توجه به نحوه عملکرد رندر شبیه ساز، ما اکنون virtio-gpu virtqueue را در رشته vcpu پردازش می کنیم (زیرا به هر حال رندر در رشته های دیگر بارگذاری می شود). رندر virtio-gpu در نسخه بعدی تصویر سیستم و شبیه ساز فعال خواهد شد.
  • در یک تصویر سیستم آینده، شبیه ساز قادر خواهد بود تمام گرافیک ها را با یک پشته مبتنی بر virtio-gpu اجرا کند.

سایر ویژگی ها و پیشرفت های جدید

  • عبور USB اکنون با استفاده از -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id> در ویندوز در دسترس است. (این همچنین باید قبلاً روی لینوکس و macOS کار می کرد)
  • کتابخانه های WebRTC را به M83 به روز کرد.
  • این شبیه ساز اکنون از پخش صدا در کانتینرها از طریق WebRTC پشتیبانی می کند.
  • نقطه پایانی لوله داروین حذف شده است.
  • رمزگشایی CUDA VPx برای ویدیو اکنون در دسترس است، اگر رمزگشایی CUDA VPx در سخت افزار موجود باشد، از طریق متغیر محیطی ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 .
  • در macOS، SSE 4.1 و 4.2 اکنون از داخل مهمان اندروید در دسترس هستند.
  • در macOS، INVTSC اکنون به طور پیش فرض فعال است. این می تواند دقت اندازه گیری زمان را از مهمان بهبود بخشد.
  • اکنون ما ردیابی می کنیم که کدام صفحه کنترل توسعه یافته توسط کاربر در متریک انتخاب شده است.
  • شبیه ساز لینوکس اکنون از ساعت paravirtualized KVM زمانی که نسخه هسته مهمان >= 5.4 باشد (تصاویر سیستم R یا جدیدتر) استفاده می کند.
  • Emulator اکنون از LZ4 برای فشرده سازی هسته های مهمان استفاده می کند و آن را با خط لوله مدرن هسته سازگار می کند.
  • دستورات کنسول برای به دست آوردن دایرکتوری AVD شبیه ساز، مسیر فایل کشف در مورد استفاده تعبیه شده در استودیو، و مسیر به عکس های فوری اضافه شده است:

    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 فعلی در Extended Controls > Settings اضافه کرده‌ایم. برای مخفی کردن جهانی فریم‌های دستگاه برای همه AVD‌ها، پرچم ویژگی NoDeviceFrame را در دسترس قرار داده‌ایم که می‌تواند از طریق راه‌اندازی شبیه‌ساز از خط فرمان با قاب -feature NoDevice یا قفل کردن آن با افزودن NoDeviceFrame = on به ~/.android/advancedFeatures.ini فعال شود. ~/.android/advancedFeatures.ini (اگر از قبل وجود ندارد این فایل را ایجاد کنید).

  • یک مورد کشویی در صفحه سلولی برای روشن و خاموش کردن پشتیبانی اندازه‌گیری اضافه شده است، این یک گزینه غیرفعال برای تصاویر سیستم قدیمی‌تر است که از کلید سنجش سنجش 5G پشتیبانی نمی‌کنند.

    • همچنین دستور کنسول را برای همین منظور اضافه کرد: gsm meter on|off
  • Toolchain/build به C++17 ارتقا یافته است.

رفع: شبیه ساز تعبیه شده

  • کلیپ بورد اکنون باید کار کند.
  • مشکلی که در آن کاراکترهای بزرگ به صورت حروف کوچک در شبیه ساز ارائه می شدند، برطرف شد.
  • رفع توکن کنسول بارگیری از مسیر یونیکد در ویندوز.
  • پیغام خطای SO_REUSEPORT در لینوکس رفع شد.
  • مشکل خرابی عکس فوری هنگام ارسال دستورات عکس فوری از طریق gRPC و همچنین هنگام فشار دادن دکمه ذخیره عکس فوری در شبیه ساز تعبیه شده اندروید استودیو برطرف شد.
  • هنگام استفاده از شبیه‌ساز لینوکس تعبیه‌شده در استودیو، متوجه شدیم که اگر این کار از طریق دسک‌تاپ از راه دور Chrome انجام شود، اشکالی وجود دارد که در آن XDG_RUNTIME_DIR تنظیم نشده است و ممکن است به دلیل قرار دادن فایل‌های کشف شبیه‌ساز در XDG_RUNTIME_DIR شبیه‌ساز تعبیه‌شده ظاهر نشود. . می‌توانید وضعیت مشکل مربوطه را در ردیاب مشکل Chrome بررسی کنید.

    به عنوان یک راه حل، شبیه ساز اکنون به استفاده از فایل های کشف در یک فهرست احتمالاً متفاوت که بر اساس UID کاربر است باز می گردد: /run/user/&lt;uid> .

  • شبیه‌ساز تعبیه‌شده: دستگاه‌هایی که گوشه‌ها/بریدگی‌های گرد دارند اکنون به‌درستی طرح‌بندی خود را تغییر می‌دهند تا جایی برای گوشه‌ها و بریدگی‌ها ایجاد شود. این نیاز به بوت سرد از آن شبیه سازها دارد.

  • نقطه پایانی gRPC اکنون از ارسال پیامک به دستگاه پشتیبانی می کند.

اصلاحات کلی

  • ما شاهد مشکلات سازگاری در اجرای شبیه ساز ویندوز با فعال Riot Vanguard بوده ایم. شبیه ساز ویندوز اکنون ضد تقلب Vanguard را شناسایی می کند و در صورت شناسایی Vanguard یک پیام هشدار ظاهر می کند.
  • رفع خطای FD_SETSIZE در ویندوز. ما اکنون از WSAEventSelect() به جای select() برای ایجاد اتصالات غیر مسدود کننده به سرورهای حلقه بک استفاده می کنیم.
  • اضافه شدن پشتیبانی از ویژگی F16C CPUID به شبیه ساز لینوکس با رفع مشکلات اجرای برخی از برنامه های ARM64 از طریق ترجمه NDK. macOS/Windows در حال انجام است.
  • پخش مسیر gpx/kml برای دنبال کردن مُهرهای زمانی ثابت شد.
  • نماد جهش ثابت در راه اندازی برای MacOs.
  • اگر hw.audioInput=no و hw.audioOutput=no در config.ini ، صدای شبیه ساز اکنون به درستی غیرفعال شده است.
  • مشکلی برطرف شد که در آن اگر پنجره شبیه‌ساز در حالی که پنجره کنترل‌های توسعه‌یافته باز بود اما فعال نبود، به حداقل برسد، پنجره کنترل‌های توسعه‌یافته هنگام تغییر اندازه پنجره شبیه‌ساز همچنان ظاهر می‌شود. ما رفتار (مورد پنجره کنترل های توسعه یافته فعال) را در یک به روز رسانی آینده به طور کامل حذف خواهیم کرد.
  • رفع یک اشکال پوسته پوسته با اتصال Wi-Fi هنگام شروع شبیه ساز.
  • هنگامی که شبیه‌ساز دستورات پوسته را با وقفه‌های زمانی طولانی یا نامحدود صادر می‌کند، حالت Hang-on-Exit برطرف شد.
  • pc-bios به روز شده با اصلاحاتی برای پشتیبانی بهتر از تصاویر بزرگ ارسال شده به -initrd . بایوس قبلی از روش بسیار ناکارآمدی استفاده می کرد.
  • رفع خرابی در حین خاتمه زمانی که از گزینه -wifi-server-port استفاده می شود.
  • در صورتی که گزینه های پشتیبانی نشده به -prop منتقل شوند، شبیه ساز اکنون یک هشدار چاپ می کند (فقط props qemu.* پشتیبانی می شود).
  • هنگام ساخت شبیه ساز در ویندوز، احتمال کمتری برای مشاهده شکست های پوسته پوسته برای نوشتن روی فایل ها وجود خواهد داشت. برای اطلاعات بیشتر، دستورالعمل‌های ساخت ویندوز را ببینید.
  • دکمه زوم غیرفعال برای AVD های تاشو که باعث ایجاد مشکل می شد.
  • شبیه ساز اکنون به درستی زمان بوت را از راه اندازی مجدد دستگاه گزارش می دهد.
  • لینوکس: در مواردی که مجوزهای KVM کافی وجود ندارد، شبیه ساز اکنون دستورالعمل های اشکال زدایی را سریعتر چاپ می کند.
  • مشکلی که شبیه ساز نمی توانست تصاویر اخیر سیستم را بدون شتاب بوت کند، برطرف شد.
  • رفع خرابی یا خرابی حافظه هنگام شروع از یک آشکارساز بوت کامل.
  • رفع نشت حافظه در طول جلسات ضبط طولانی صفحه.
  • نمادهای شبیه‌ساز به‌روزرسانی شدند تا نشان‌دهنده استودیو 4.1 را نشان دهند.
  • پشتیبانی بهتر برای تشخیص جلسات از راه دور در ویندوز اضافه شده است.

رفع: گرافیک و رمزگشایی ویدیو

  • مشکلی که در آن آخرین بازی Asphalt 9 با صفحه سیاه رندر شده بود برطرف شد.
  • هرزنامه مربوط به شستشوی بافر نقشه‌برداری شده با NULL حذف شد.
  • وضعیت مسابقه هنگام از بین بردن حالت Vulkan هنگام خروج برنامه مهمان Vulkan برطرف شد.
  • سایه‌زن‌های شبیه‌ساز Vulkan ASTC/ETC2 اکنون در کتابخانه libOpenglRender قرار گرفته‌اند. این در مقایسه با خواندن از سیستم فایل قابل اعتمادتر خواهد بود.
  • مشکلی در Vulkan برطرف شد که در آن اگر با یک نمونه Vulkan 1.0 در هاست اجرا شود، vkGetImageMemoryRequirements2KHR به اشتباه فیلد pNext ساختار VkMemoryRequirements2 برگشتی را پاک می‌کند.
  • رفع نشت حافظه در رندر Vulkan.
  • یک رگرسیون اخیر که در آن سایه‌زن‌های GLSL ES 1.00 با نام متغیرهایی مانند isampler2D نتوانستند کامپایل شوند، برطرف شد.
  • مترجم سایه زن ANGLE به روز شده با اصلاحات مختلف که خطای احتمالی در کامپایل سایه بان ها در لینوکس را برطرف می کند.
  • اکنون در صورتی که سایه‌زن ساده فریم‌بافر نتواند کامپایل شود، شبیه‌ساز را خراب می‌کنیم تا بتوانیم این پدیده را پیگیری کنیم.
  • مترجم سایه زن ANGLE به روز شد تا با ANGLE بالادست همراه باشید. این یک مشکل در مورد خرابی حافظه هنگام ترجمه و تا کردن ثابت سایه‌زن‌های OpenGL ES که از ماتریس‌های غیر مربعی استفاده می‌کردند، برطرف کرد. مترجم سایه‌زن اکنون یک کتابخانه مشترک جداگانه است، libshadertranslator.dll .
  • مشکل در مقداردهی اولیه Vulkan در برخی از درایورهای GPU، که در آن برخی از عملکردهای دستگاه 1.1 یافت نشد، برطرف شد.
  • Vulkan: ما دوباره به استفاده از لودر از پیش ساخته شده بازگشته‌ایم تا سیستمی را که لودر Vulkan مشکلاتی را در برخی تنظیمات ایجاد می‌کند، مورد استفاده قرار دهیم. راه حل بهتری پیدا خواهد کرد
  • مشکل هنگام استفاده از حافظه خارجی Vulkan که می‌توانست شاخص‌های نامتناسب نوع حافظه را روی میزبان وارد کرده باشد، برطرف شد.
  • مشکل در شبیه سازی GL_ALIASED_POINT_SIZE_RANGE که در آن enum در هاست پشتیبانی نمی شد، رفع شد.
  • مشکلی که در برخی از GPU های میزبان، سایه بان های Skia به دلیل خطاهای مربوط به GL_EXT_shader_framebuffer_fetch نمی توانستند کامپایل شوند، برطرف شد.
  • از آنجایی که کپی ما از رندر D3D9 ANGLE چند نسخه پیش حذف شد، اکنون کاربرانی را که در آن رندر بودند در صورتی که در تنظیمات برگزیده UI انتخاب شده بود، به صورت خودکار به d3d11 ANGLE تغییر دهیم.
  • اطلاعات دیباگ بیشتر به مقداردهی اولیه WGL در ویندوز اضافه شده است تا خرابی ها را ردیابی کند.
  • وقتی hw.gltransport=virtio-gpu-pipe ، عملکرد با چرخش نکردن روی میزبان در انتقال از میزبان به مهمان بهبود می‌یابد.
  • اضافه شدن گزارش اشکال زدایی بیشتر برای زمانی که شبیه سازی OpenGLES نمی تواند مقداردهی اولیه شود.
  • مشکل سوسو زدن یا عدم نمایش ویدیوهای یوتیوب در بارگذاری عکس فوری برطرف شد.
  • در حال حاضر به رمزگشایی نرم‌افزاری برای libvpx بازگشته‌ایم زیرا مشکلاتی را در مورد رمزگشایی سخت‌افزاری CUDA برای libvpx مشاهده کرده‌ایم. اگر یک پیاده‌سازی رمزگشایی سخت‌افزاری CUDA در سمت میزبان دارید، رمزگشایی سخت‌افزار libvpx می‌تواند از طریق متغیر محیطی ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 دوباره فعال شود.

30.0.10 (30 آوریل 2020)

این به روز رسانی شامل پشتیبانی از اجرای شبیه ساز به طور مستقیم در اندروید استودیو و دستگاه های مجازی با حالت پنجره Freeform به طور پیش فرض فعال است.

شبیه ساز را در اندروید استودیو اجرا کنید

شبیه ساز اندروید اکنون می تواند مستقیماً در Android Studio اجرا شود. از این ویژگی برای حفظ املاک و مستغلات صفحه نمایش، برای پیمایش سریع بین شبیه ساز و پنجره ویرایشگر با استفاده از کلیدهای میانبر، و سازماندهی گردش کار IDE و شبیه ساز خود در یک پنجره برنامه استفاده کنید.

حالت پنجره Freeform

اکنون می‌توانید با انتخاب نمایه سخت‌افزار تبلت 13.5 اینچی هنگام ایجاد یک دستگاه مجازی در Android Studio، یک AVD با حالت پنجره Freeform فعال کنید. این نمایه سخت‌افزاری به یک تصویر سیستم با پیش‌نمایش برنامه‌نویس Android 11 نسخه 3 یا بالاتر نیاز دارد.

مسائل شناخته شده

تغییر اندازه پنجره های فرم آزاد در حال حاضر به دلیل مشکلات انتقال تمرکز به مدیر پنجره شکسته شده است. این موضوع در نسخه بعدی تصویر سیستم اندروید 11 مورد بررسی قرار خواهد گرفت.

30.0.0 (19 فوریه 2020)

این به‌روزرسانی شامل تصاویر سیستم اندروید 11 (سطح API 30) و عملکرد بهبود یافته هنگام اجرای باینری‌های ARM است.

تصاویر سیستم اندروید 11

اکنون می توانید با انتخاب یکی از تصاویر سیستم سطح 30 API موجود، یک AVD ایجاد کنید که اندروید 11 را اجرا می کند:

  • x86 : شامل هر دو ABI x86 و ARMv7 است.
  • x86_64 : شامل x86، x86_64، ARMv7 و ARM64 ABI است.

پشتیبانی از باینری های ARM در تصاویر سیستم اندروید 9 و 11

اگر قبلاً نمی توانستید از شبیه ساز Android استفاده کنید زیرا برنامه شما به باینری های ARM وابسته بود، اکنون می توانید از تصویر سیستم Android 9 x86 یا هر تصویر سیستم Android 11 برای اجرای برنامه خود استفاده کنید - دیگر نیازی به دانلود یک تصویر سیستم خاص نیست. برای اجرای باینری های ARM این تصاویر سیستم اندروید 9 و اندروید 11 به طور پیش‌فرض از ARM پشتیبانی می‌کنند و در مقایسه با نمونه‌هایی که شبیه‌سازی کامل ARM را دارند، عملکرد بسیار بهتری را ارائه می‌دهند.

مسائل شناخته شده

  • برخی از باینری های ARMv7 روی تصاویر سیستم اندروید 11 x86 و x86_64 اجرا نمی شوند. هنگام هدف قرار دادن اندروید 11، ساخت ARM64 را در نظر بگیرید.

29.0.11 (29 مه 2019)

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • ویندوز: شبیه ساز اکنون به جای کامپایل شدن با libgcc به صورت ایستا، به DLL libgcc که ما ارسال می کنیم متکی است.
  • لینوکس: پشتیبانی logcat را به gRPC API اضافه کرد. برای اطلاعات بیشتر در مورد gRPC، به شبیه ساز جریان gRPC (Linux) مراجعه کنید.
  • این شبیه‌ساز اکنون شامل یک ساخت هدلس برای مهمانان x86 32 بیتی ( qemu-system-i386 ) است. این ویژگی تصاویر 32 بیتی x86 را برای سطوح API 26 و پایین‌تر قادر می‌سازد تا با ساخت هدلس اجرا شوند. توجه داشته باشید که برای مهمانان 32 بیتی x86 با API 27 و جدیدتر، شبیه ساز از موتور 64 بیتی ( qemu-system-x86_64 ) استفاده می کند زیرا در این تصاویر سیستم، در حالی که فضای کاربران 32 بیتی است، هسته 64 بیتی است. Android Studio از هسته برای انتخاب موتورهای شبیه سازی استفاده می کند.
  • اکنون می توانید مسیرهای کتابخانه Qt سفارشی را با استفاده از متغیر محیطی ANDROID_QT_LIB_PATH مشخص کنید.
  • اگر فایل های اجرایی QEMU1 ( emulator[64]-[x86|arm|etc] ) در دایرکتوری شبیه ساز قرار گیرند، اکنون می توانید شبیه ساز را با باینری های قبلی که از QEMU1 استفاده می کنند، اجرا کنید.
  • Windows: مشکلی را برطرف کرد که گاهی اوقات باعث می‌شد شبیه‌ساز با پیام «درخواست خاموش کردن vCPU» شروع نشود.
  • مشکل یک مانع غیر ضروری خط لوله در بافت های فشرده شبیه سازی شده در Vulkan برطرف شد.
  • خطایی را که با درخواست‌های پروکسی http هنگام استفاده از رمزگذاری انتقال تکه‌تکه‌ای استفاده شد، برطرف شد. برای اطلاعات بیشتر، جزئیات commit را ببینید.

29.0.9 (7 مه 2019)

این به روز رسانی شامل اصلاح زیر است:

  • ویندوز: مشکلی که در آن دوربین صحنه مجازی و وب‌کم روی شبیه‌ساز کار نمی‌کردند برطرف شد.

29.0.8 (6 مه 2019)

این به روز رسانی شامل بهبودها و اصلاحات زیر است:

  • هنگامی که یک سرویس مهمان برای شمارش و تنظیم هر صفحه نمایش وجود دارد، پشتیبانی از چندین نمایشگر سخت افزار مجازی اضافه شده است. چندین نمایشگر سخت افزار مجازی در به روز رسانی تصویر سیستم شبیه ساز آینده گنجانده خواهد شد.
  • یک گزینه خط فرمان جدید اضافه شد: -delay-adb . این گزینه پردازش بسته های ADB را متوقف می کند تا زمانی که مهمان بوت را کامل کند (خارج از بوت سرد). این گزینه به حل مشکلاتی که ممکن است در صورت استفاده از شبیه ساز در یک محیط CI که شبیه ساز را راه اندازی مجدد می کند و همزمان از DDMS استفاده می کند، رخ دهد، کمک می کند.
  • خطایی را که هنگام بارگیری عکس‌های فوری رخ می‌داد که در آن glIsRenderbuffer مقدار نادرست را برمی‌گرداند، برطرف شد.
  • برخی از مشکلات مربوط به حالت بیات در هنگام راه اندازی مجدد مهمان اندرویدی برطرف شد.
  • Windows: رفع مشکلاتی که باعث می‌شد شبیه‌ساز در زمانی که نام کاربری ویندوز دارای نویسه‌ها یا فاصله‌های غیرASCII بود، شروع به کار نکند.

مسائل شناخته شده

  • رابط کاربری Snapshots برای تصاویر سیستم خودرو غیرفعال است زیرا در حال حاضر عکس های فوری برای این تصاویر سیستم پشتیبانی نمی شوند.

29.0.6 (1 مه 2019)

این به روز رسانی شامل چندین ویژگی جدید، بهبود ویژگی های موجود و رفع اشکال است.

حذف QEMU1 و پشتیبانی ویندوز 32 بیتی

برای نگهداری بهتر شبیه ساز، دیگر باینری های QEMU1 و 32 بیتی ویندوز را ارسال نمی کنیم. اگر از ویندوز 32 بیتی استفاده می کنید، نمی توانید به نسخه 29.0.6 ارتقا دهید.

موارد مورد نیاز برای تصاویر سیستم Android Q

اگر می خواهید AVD را اجرا کنید که از تصویر سیستم Android Q استفاده می کند، اکنون باید از نسخه 29.0.6 (این نسخه منتشر شده) یا بالاتر استفاده کنید.

پروژه بهسازی مرمر

این به‌روزرسانی به کار ما روی طرح ابتکاری Project Marble که در نشست توسعه‌دهندگان اندروید در نوامبر 2018 اعلام شد، ادامه می‌دهد. برای اطلاعات بیشتر در مورد سایر پیشرفت‌های Project Marble در نسخه‌های قبلی، به شبیه‌ساز Android: بهبودهای پروژه Marble مراجعه کنید.

برای این به‌روزرسانی، بیشتر تلاش‌های Project Marble ما به کاهش استفاده از منابع شبیه‌ساز اختصاص داشت، مانند کاهش استفاده از CPU شبیه‌ساز در حالت بیکار. ما همچنین تغییراتی را اضافه کرده‌ایم که کار با شبیه‌ساز را در محیط‌های متنوع‌تری آسان‌تر می‌کند، و به مشکلات کلی کیفیت پرداخته‌ایم.

بخش‌های زیر پیشرفت‌های Project Marble را که با این به‌روزرسانی گنجانده شده‌اند شرح می‌دهند:

بهبود رفتار صوتی میزبان

با شروع نسخه 28.0.3، شبیه ساز به طور پیش فرض ورودی صوتی را از میزبان مسدود می کند .

اگر می‌خواهید از داده‌های صوتی میزبان استفاده کنید، می‌توانید با رفتن به Extended Controls > Microphone و فعال کردن Virtual microphone using host input audio را فعال کنید. هر زمان که شبیه ساز دوباره راه اندازی شود، این گزینه به طور خودکار غیرفعال می شود.

اگر از خط فرمان استفاده می کنید، می توانید صدای میزبان را نیز با استفاده از گزینه -allow-host-audio فعال کنید، و می توانید از دستورات ADB زیر برای روشن یا خاموش کردن داده های صوتی میزبان استفاده کنید:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

بهبودهایی برای ساخت‌های شبیه‌ساز بدون سر

با شروع نسخه 28.0.25، شبیه ساز دارای یک گزینه ساخت بدون سر است که می تواند بدون رابط کاربری اجرا شود. می‌توانید از ساخت‌های هدلس برای راه‌اندازی شبیه‌ساز برای گردش‌های کاری Docker و ادغام پیوسته (CI) استفاده کنید.

با این به‌روزرسانی، ما پیشرفت‌های بیشتری انجام داده‌ایم تا به شبیه‌ساز اجازه دهیم با حداقل تعداد وابستگی اجرا شود. در لینوکس، ساخت‌های بدون هد دیگر شامل کتابخانه‌های 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

کتابخانه های Qt UI به 5.12 LTS ارتقا یافته است

این به روز رسانی شامل بهبودهای زیر از نسخه Qt 5.12 LTS است:

  • برای جلوگیری از خرابی در رمزگشایی libpng Qt هنگام شروع برخی از تصاویر سیستم، شبیه ساز اکنون از کپی خود از libpng برای رمزگشایی تصاویر PNG استفاده می کند.
  • برای رسیدگی به مشکلات برخی از نصب‌های لینوکس حاوی نسخه‌های ناسازگار برخی از کتابخانه‌های وابسته به Qt، اکنون libfreetype ، libsoftokn ، libsqlite3 ، و libxkbcommon با شبیه‌ساز بسته‌بندی می‌کنیم.
  • این شبیه‌ساز اکنون از کتابخانه‌های پنجره‌ای بومی پلتفرم برای دریافت ابعاد مانیتور استفاده می‌کند، به جای استفاده از کتابخانه‌های Qt که نتایج غیرقابل اعتمادی را ارائه می‌دهند.

بهینه سازی خودکار CPU پس از بوت سرد

برای پرداختن به استفاده از CPU، شبیه ساز اکنون دستورات ADB زیر را روی بوت سرد پس از دریافت سیگنال boot complete اجرا می کند:

adb shell settings put screen_off_timeout 214783647
این دستور زمان خاموش شدن صفحه را افزایش می دهد تا شبیه ساز بدون شارژ در حالت باتری استفاده شود. در حالت باتری، استفاده از CPU پس زمینه بسیار کاهش می یابد.
در حالت شارژ متناوب، عملیات پس‌زمینه GMSCore مانند به‌روزرسانی‌های برنامه‌ها می‌تواند تمام هسته‌های CPU دستگاه - و در نتیجه، ماشین کاربر - را بدون هیچ هشداری تحت کنترل درآورد.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
این دستور مجوزهای میکروفون را برای برنامه جستجوی Google لغو می‌کند، که استفاده از CPU پس‌زمینه را در صفحه اصلی و در راه‌انداز زمانی که برنامه جستجوی Google فعال است تا حد زیادی کاهش می‌دهد.
این دستور علاوه بر رفتار پیش‌فرض شبیه‌ساز برای غیرفعال کردن صدای میزبان برای میزبان اجرا می‌شود. علاوه بر این، این به طور خودکار کاهش استفاده از CPU را ارائه می دهد که برای تشخیص کلمه کلیدی از نسخه 28.0.23 توضیح داده شده است.

متغیرهای محیطی جدید برای نظارت بر عملکرد

اکنون می توانید از دو متغیر محیط جدید استفاده کنید تا بتوانید نظارت دقیق بر عملکرد و استفاده از منابع شبیه ساز را انجام دهید.

SHOW_PERF_STATS=1
این متغیر محیط ، ردیابی CPU و RAM را امکان پذیر می کند. ردیابی برای استفاده از RAM بین استفاده از گرافیک و حافظه کل ساکن متمایز است.
ANDROID_EMU_TRACING=1
این متغیر محیط ، چاپ را هر بار که یک عملیات ورودی یا گرافیکی مدت زمان طولانی طول می کشد (طولانی تر از 1 میلی ثانیه) انجام می دهد.
ما همچنین از این متغیر محیط استفاده می کنیم تا به تشخیص مواردی که کاربران ویندوز با JANK بیشتری تجربه کرده اند (فریم های افتاده) را تجربه کرده اند تا کاربران در MacOS یا Linux تجربه کنند.

پیشرفت های سنگ مرمر پروژه عمومی

این به روزرسانی همچنین شامل پیشرفت های عمومی زیر است که بخشی از طرح سنگ مرمر پروژه است:

  • اکنون می توانید بلافاصله تمام VCPU ها را از طریق دستورات کنسول زیر مکث کنید:
    • adb emu avd pause
    • adb emu avd resume
  • بالای سربار نقاشی OpenGL بسیار کاهش یافته است. این بهبود باعث کاهش مصرف CPU می شود در حالی که شبیه ساز در حال بازی انیمیشن است.
  • پشتیبانی ترمیم شده برای دستگاه شبکه مجازی E1000 خط اصلی QEMU. می توانید از این دستگاه برای تنظیم شبیه ساز در یک محیط شبکه پل استفاده کنید. در یک محیط شبکه پل ، شبیه ساز در شبکه میزبان نشان داده شده است و شبکه میزبان در شبیه ساز نشان داده شده است.
  • از باینری های BIOS متناسب با QEMU 2.12 برای راه اندازی شبیه ساز استفاده می شود.
  • نسخه ffmpeg را برای رمزگذاری و رمزگشایی ویدیویی به 3.4.5 ارتقا داد.
  • با تعویض حلقه اصلی که بر اساس select() با یک حلقه اصلی است که مبتنی بر kqueue است ، به شدت کاهش یافته است.
  • اندازه بافر Logcat به 2 مگابایت افزایش یافته است تا مشکلات مربوط به 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 Bugreport اضافه شده است. علاوه بر این ، می توانید با استفاده از دستورات زیر به گزارش های اشکال از کنسول دسترسی پیدا کنید:
    • telnet localhost 5554
    • avd bugreport
  • در تصاویر سیستم Android Q ، شبیه ساز حداقل اندازه رم خود را به 2 گیگابایت افزایش می دهد.
  • هر زمان که OpenGL یا Hypervisor نتوانند اولیه سازی کنند ، ورود و چاپ بیشتری را اضافه کنید.
  • اگر شبیه ساز نتواند نمونه ای از -read-only همزمان AVD را شروع کند ، شبیه ساز اکنون سعی در راه اندازی مجدد AVD -read-only 3 بار دیگر بیش از 3 ثانیه دارد. این تغییر احتمال این را افزایش می دهد که اگر شبیه ساز بتواند نمونه های همزمان -read-only را به صورت AVD راه اندازی کند ، در صورتی که سایر موارد قابل نوشتن از آن AVD در حال تمیز کردن پرونده های قدیمی انجام نشود.
  • برای تصاویر سیستم آینده ، شبیه ساز اکنون از سخت افزار Composer 2.0 پشتیبانی می کند. این تغییر باید هنگام اجرای اکثر انیمیشن ها ، راننده را پایین بیاورد.
  • ساخت شبیه ساز اکنون بر اساس Cmake/Ninja ساخته شده است.
  • در UI کنترل های گسترده شبیه ساز ، خطوط تقسیم کننده در جدول میانبرهای صفحه کلید ترمیم شده است.
  • اکنون کاربران می توانند در یک بازه 10 ثانیه ای ، از CPU و استفاده از RAM استفاده کنند. ما از این معیارها برای غنی سازی داده های خود در مورد استفاده از منابع شبیه ساز با موارد استفاده متفاوت کاربران استفاده می کنیم ، که به ما امکان می دهد تا شبیه ساز کارآمدتر و پاسخگوتر شود.

اصلاحات سنگ مرمر عمومی پروژه

این به روزرسانی همچنین شامل اصلاحات عمومی زیر است که بخشی از طرح سنگ مرمر پروژه است:

  • مشکلات رفع شده با فریم های پیچش و نادرست که در سیستم های GPU Intel هنگام استفاده از تصاویر سیستم Q Android نمایش داده شده است.
  • مشکلات رفع شده در جایی که یک صفحه سیاه هنگام استفاده از تصاویر سیستم Android Q با پوست پیکسل 2 XL (یا هر پوستی که دارای گوشه های شکاف یا گرد باشد) نمایش داده می شود.
  • مسئله ای را برطرف کرد که در آن گزینه خط فرمان -partition-size اندازه پارتیشن داده را تنظیم نمی کند.
  • مسئله ای را برطرف کرد که در آن Pulseaudio روی شبیه ساز LINX می چرخد ​​و در برخی شرایط یک هسته CPU کامل را به خود اختصاص می دهد.
  • هنگام پردازش بافت های فشرده شده ، مشکلات مربوط به دسترسی به حافظه خارج از مرز را برطرف می کند.
  • خطاهای GL ثابت که در میزبان در glTexSubImage2D هنگام به روزرسانی برخی از بافرهای Gralloc (با فرمت RGB 565 ، RGB10A2 ، RGB (A) 16F) رخ داده است.
  • مسئله نمایش در تصاویر سیستم Android Q با عکس های فوری که در آن هندسه سایه اعلان با یک تنظیم تقسیم کننده نمونه نادرست ارائه شده است.
  • چند مورد سخت برای تولید و یخ زدگی را در مورد راه اندازی که به دلیل از دست دادن سیگنال های QT یا داشتن حالت های پوسته پوسته و متناقض در هنگام راه اندازی اتفاق افتاد ، برطرف کرد.
  • بسیاری از موارد همزمانی را برطرف کرد. اکنون ما قادر به ساخت شبیه ساز لینوکس با ThreadSanitizer (TSAN) هستیم که به راحتی می تواند اشکالات را کشف کند که در غیر این صورت تولید مثل دشوار است.
  • برای کاربران لینوکس: ما دریافتیم که در برخی از هسته های میزبان ، هسته اندرویدی مهمان می تواند با یک خطای سخت افزاری عمومی در KVM خطا کند و از آن خارج شود. وقتی این اتفاق می افتد به منظور افزایش اشکال زدایی (قبلاً ، شبیه ساز فقط آویزان شده بود) ، شبیه ساز اکنون abort() .
  • برای کاربران Linux: برای راحتی با تنظیمات CI ، می توانید از گزینه خط فرمان جدید -stdouterr-file <file-name> استفاده کنید تا stdout و stderr را به یک پرونده هدایت کنید.
  • مشکلی را برطرف کرد که در آن نادرست از SO_REUSEADDR استفاده شد. برای اطلاعات بیشتر ، به جزئیات متعهد مراجعه کنید.
  • مسئله دیرینه با شبیه ساز ویندوز را برطرف کرد که در آن فرآیندهای فرعی ، مانند دستورات ADB ، در صورتی که نام کاربری فضاهایی در آن داشته باشد ، نتوانستند شروع کنند.
  • مسئله ای را با اولیه سازی از دست رفته RCU در موضوعات HAXM VCPU برطرف کرد. این رفع احتمالاً می تواند برخی از تصادفات و شرایط مسابقه را برطرف کند.
  • سقوط یک تصادف که با الگوهای خاصی از صرفه جویی و بارگیری عکس های فوری از Snapshots UI با استفاده از تصاویر اخیر سیستم Q Android رخ داده است.
  • مسئله ای را برطرف کرد که دوربین صحنه مجازی در صورتی که شبیه ساز از عکس فوری شروع شود ، اگر یک ماکرو AR در هنگام ذخیره آن عکس ، در حال پخش باشد ، خالی خواهد بود.
  • مسئله ای را برطرف کرد که برخی از کاربران با تنظیمات دسک تاپ از راه دور هنگام راه اندازی شبیه ساز در لینوکس ، صفحه سیاه را دریافت کردند. برای جلوگیری از این امر ، شبیه ساز اکنون صریحاً MESA_RGB_VISUAL را پیکربندی می کند. برای اطلاعات بیشتر ، به جزئیات متعهد مراجعه کنید.
  • مسئله ای را برطرف کرد که دکمه های چرخش در AVD های تلویزیونی ظاهر می شوند.
  • مسئله ای را برطرف کرد که اگر شبیه ساز همیشه در بالا تنظیم شود ، هر بار که شبیه ساز چرخانده می شد ، پنجره کنترل گسترده ظاهر می شد.

پروفایل های سخت افزاری برای دستگاه های تاشو

اکنون شبیه ساز شامل پروفایل های سخت افزاری برای دستگاه های تاشو است. برای استفاده از این پروفایل های سخت افزاری جدید ، باید از Android Studio 3.5 Canary 10 یا بالاتر استفاده کنید.

دو پروفایل سخت افزار تاشو وجود دارد که می توانید برای ایجاد AVD استفاده کنید:

  • 7.3 "تاشو: 1536x2152 آشکار شد ، 4.6" 840x1960 تاشو
  • 8 اینچ تاشو: 2200x2480 آشکار ، 6.6 "1480x2480 تاشو

هنگامی که شبیه ساز را با استفاده از یکی از این پروفایل های سخت افزاری اجرا می کنید ، می توانید دستگاه را با استفاده از اقدامات برابر و آشکار در نوار ابزار شبیه ساز ، دستورات کنسول یا میانبرهای صفحه کلید زیر بچسبانید و باز کنید:

  • تاشو: Ctrl + F ( Command + F در MACOS)
  • باز کردن: Ctrl + U ( Command + U در macOS)

ماکروس

اکنون شبیه ساز شامل ماکروهای AR است که می تواند به شما در آزمایش اقدامات مشترک AR کمک کند. به عنوان مثال ، می توانید از یک ماکرو برای تنظیم مجدد تمام سنسورهای دستگاه در حالت پیش فرض آنها استفاده کنید.

برای اطلاعات بیشتر ، به آزمایش های مشترک AR با ماکرو مراجعه کنید.

پشتیبانی ولکان (ویندوز ، لینوکس)

کاربران ویندوز و لینوکس هم اکنون می توانند برنامه های Vulkan را با Android Emulator تا Vulkan 1.1 آزمایش کنند. بیشتر اینتل ، Nvidia و GPU های AMD از سال 2014 و بعد).

برای فعال کردن پشتیبانی Vulkan ، باید پرچم های ویژگی زیر را به پرونده ~/.android/advancedFeatures.ini خود اضافه کنید (در صورت وجود پرونده را ایجاد کنید):

  • Vulkan = on
  • GLDirectMem = on

پشتیبانی اولیه از توسعه دهندگان ROM

توسعه دهندگان ROM که در حال ساخت sdk_phone_x86 یا sdk_phone_x86_64 ( userdebug ، انواع eng ) در شعبه master AOSP هستند ، اکنون می توانند یک شبیه ساز با قابلیت ولکان را اجرا کنند.

این پشتیبانی هنوز هم آزمایشی است و عمدتاً برای توسعه دهندگان است که روی تصاویر سیستم ، درایورها و موتورهای بازی کار می کنند. بسیاری از پسوندها هنوز از دست رفته اند. با این حال ، حافظه HOST_COHERENT پشتیبانی می شود ، و اکنون باید بتوانید نمونه های آموزش API Vulkan را اجرا کنید.

اگر از لینوکس استفاده می کنید ، می توانید این کار را با استفاده از دستورات زیر امتحان کنید:

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

ارائه اسکی با ولکان

NVIDIA و GPU های AMD که از Vulkan پشتیبانی می کنند همچنین از طریق Zero Copy Copy با OpenGL از طریق پسوند GL_EXT_memory_objects پشتیبانی می کنند. شبیه ساز این توانایی را برای ارائه راهی کامل برای ارائه UI Android با استفاده از API های Skia Vulkan فراهم می کند.

اگر یک GPU NVIDIA یا AMD دارید که از Vulkan پشتیبانی می کند ، از دستورات زیر برای آزمایش ارائه Skia با یک تصویر سیستم سازگار (Android Q Beta 3 و بالاتر) استفاده کنید:

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

پشتیبانی MACOS از Vulkan

پشتیبانی 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 گاهی اوقات می تواند نتواند حافظه منسجم ولکان را به میهمان نقشه برداری کند و شبیه ساز را خاموش کند. این در یک به روزرسانی HAXM آینده مورد بررسی قرار می گیرد.

شبیه ساز جریان GRPC (لینوکس)

ما همیشه سعی می کنیم با اجازه دادن به ارائه GPU میزبان و تعامل در وسیع ترین زمینه های در حال اجرا ، شبیه ساز را تا حد امکان متنوع تر کنیم. کاربران دسک تاپ CI و از راه دور ما مشکلات دیرینه زیر را دارند:

  • ارسال برنامه های ورودی به صورت برنامه ای به شبیه ساز شامل اجرای دستورات پوسته ADB است که می توانند سربار بالا را تجربه کنند ، یا با استفاده از کنسول Telnet ، که سریعتر است ، اما ممکن است با تنظیمات شبکه خاصی کار نکند.
  • کاربران CI اغلب شبیه سازها را بدون سر اجرا می کنند ، که می تواند توجه به مواردی را که نیاز به صفحه نمایش قابل مشاهده یا تعاملی دارند ، دشوار کند.
  • کاربران دسک تاپ از راه دور اغلب هنگام استفاده از ارائه دهنده GPU میزبان نمی توانند با شبیه ساز ارتباط برقرار کنند زیرا ارائه GPU اغلب با نمایشگرهای غیر مجلسی میزبان گره خورده است.

برای پرداختن به این موضوع ، هنگام کار بر روی دستگاه لینوکس ، شبیه ساز اکنون یک سرویس GRPC را ارائه می دهد. GRPC یک چارچوب کلی برای RPC است که از طریق HTTP کار می کند.

به طور پیش فرض ، سرویس GRPC شبیه ساز غیرفعال است ، اما می توانید سرویس را با استفاده از گزینه خط فرمان زیر فعال کنید ، جایی که <port> پورت ای است که شبیه ساز باید درخواست های GRPC را ارائه دهد (معمولاً 5556 ):

-grpc <port>

پس از شروع سرویس ، دستورات GRPC می توانند از مشتری ها صادر شوند. مجموعه فعلی دستورات امکان ارسال رویدادهای ورودی و دریافت تصاویر را فراهم می کند. این دستورات به موضوعات زیر کمک می کنند:

  • دستورات ورودی را می توان با سربار کم بیش از HTTP به شبیه ساز ارسال کرد. HTTP همچنین باعث می شود دستورات در تنظیمات شبکه اضافی ارسال شوند.
  • دستورات تصویر می توانند برای پرس و جو از صفحه فعلی ارسال شوند ، حتی اگر شبیه ساز بدون سر در حال اجرا باشد. برای تعامل ، رویدادهای ورودی نیز می توانند به شبیه ساز ارسال شوند.
  • کاربران دسک تاپ از راه دور می توانند در هنگام استفاده از GRPC برای گرفتن تصاویر و ارسال رویدادهای ورودی به منظور تعامل با شبیه ساز ، شبیه ساز را بدون سر و صدا در صفحه اصلی با ارائه GPU در هنگام استفاده از GRPC اجرا کنند.

برای لیست کاملی از دستورات موجود ، به این Protobuf مراجعه کنید.

برای کمک به شما در شروع کار با GRPC ، ما برخی از مشتری های نمونه را ارائه داده ایم که می توانید به آنها مراجعه کنید.

در حال حاضر ، این شامل نمونه های زیر است:

  • یک سرویس مبتنی بر GO که می تواند برای پرس و جو از دولت های شبیه ساز استفاده شود.
  • یک برنامه React که تعامل از راه دور را از طریق تصویر و RPC های ورودی نشان می دهد. این نمونه به نسخه ProtoBUF 3.7.0 یا بالاتر نیاز دارد.
  • یک نمونه پایتون که پیکربندی VM شبیه ساز را پرس و جو می کند و سپس یک سری دستورات را ارسال می کند.

28.0.25 (29 مارس 2019)

این به روزرسانی شامل پیشرفت ها و اصلاحات زیر است:

شبیه ساز بدون سر

به دلیل انتظارات ضمنی سیستم قادر به پشتیبانی از QT به همراه وابستگی های مشترک کتابخانه خود (از جمله سایر موضوعات) ، راه اندازی آن با Docker و سایر گردش های مداوم ادغام (CI) دشوار بوده است.

به عنوان اولین قدم برای پرداختن به این موضوع ، ما نوعی از پرتابگر را با اجرایی QEMU معرفی کردیم که به QT بستگی ندارد. در لینوکس ، هنوز پیوندی به libX11 وجود دارد ، اما امیدواریم که به زودی آن را حذف کنیم.

برای استفاده از شبیه ساز بدون سر ، شبیه ساز را از خط فرمان طبق معمول اجرا کنید ، اما دعوت باینری شبیه ساز را با emulator-headless جایگزین کنید. برای اطلاعات بیشتر ، به بروزرسانی نسخه 28.1.8 قناری مراجعه کنید.

  • هنگام اجرای تصاویر سیستم Android Q ، صفحه نمایش ثابت و فریم نادرست در GPU های Intel.
  • مشکلات رفع شده در جایی که صفحه سیاه هنگام استفاده از تصاویر سیستم Q Android با پوست Pixel 2 XL نمایش داده می شود.
  • اکنون آخرین باینری های BIOS برای راه اندازی شبیه ساز استفاده می شود. این تغییر می تواند به کاهش خطاهای "درخواست خاموش کردن VCPU" کمک کند که گاهی اوقات هنگام راه اندازی شبیه ساز روی ویندوز اتفاق می افتد.
  • در هنگام از سرگیری تصاویر سیستم 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 همکاری خواهیم کرد تا مطمئن شویم که تشخیص کلمه Hot -Word در تصویر سیستم نیز غیرفعال شده است.

برای پرداختن به این موضوع ، ما تغییرات زیر را ایجاد کرده ایم:

  • داده های صوتی واقعی میزبان اکنون به طور پیش فرض جمع شده است. هنگامی که میهمان از میکروفون استفاده می کند ، سکوت به جای صوتی میزبان از آن عبور می کند.
  • اگر می خواهید از داده های صوتی میزبان استفاده کنید ، اکنون می توانید با رفتن به کنترل های گسترده> میکروفون و فعال کردن میکروفون مجازی ، از ورودی صوتی میزبان استفاده کنید . این گزینه هر زمان که شبیه ساز دوباره راه اندازی شود ، به طور خودکار غیرفعال می شود.

به روزرسانی در مورد تحقیقات استفاده از CPU

در طی تحقیقات مرمر پروژه ما ، ما متوجه شده ایم که استفاده بالای CPU در شبیه ساز به طور کلی در سه دسته زیر قرار می گیرد:

AT IDLE: به روزرسانی های برنامه خودکار در تصاویر فروشگاه Play

ما دریافتیم که در فواصل تصادفی ، تمام برنامه های نصب شده به روز می شوند ، حتی اگر کاربر وارد سیستم نشده باشد. در طی این فرآیند ، استفاده از پردازنده به تعداد هسته X 100 ٪ (به طور معمول 400 ٪ پوند) در GMSCORE و DEX2AT هدایت می شود. می توانید با غیرفعال کردن به روزرسانی های برنامه خودکار در برنامه Play Store ، این مسئله را کاهش دهید.

در Idle: Detection Hotword

هنگامی که در صفحه اصلی و بدون هیچ برنامه ای پیش بینی شده است ، می توان مقدار زیادی از CPU (25 ٪ پوند با سنبله تا 50 ٪) وجود داشت. این امر در اثر تشخیص HotWord ایجاد می شود که دائماً میزبان را جمع می کند. شما نمی توانید این مسئله را با غیرفعال کردن ورودی صوتی میزبان کاهش دهید زیرا هزینه CPU در درجه اول ناشی از زمان لازم برای سفر به میهمان از میزبان است. با این حال ، می توانید با ابطال مجوزهای میکروفون از برنامه Google ، این مسئله را کاهش دهید.

در حالی که فعال است ، گاهی اوقات در حالت بیکار: انیمیشن ها

منبع سوم استفاده از CPU بالا انیمیشن ها است. ما دریافتیم که با بهینه سازی پشته درایور گرافیکی ، می توانیم استفاده از CPU را حتی اگر شبیه ساز بیکار نباشد ، کاهش دهیم. ما بهینه سازی های درایور گرافیک را به طور تدریجی به عنوان بخشی از Project Marble می پردازیم.

28.0.22 (21 دسامبر 2018)

این به روزرسانی شامل پیشرفت ها و اصلاحات زیر است:

  • یک مسئله طولانی مدت را برطرف کرد که در برخی از تنظیمات ، شبیه ساز MAC در QuickBoot ذخیره می کند یا وحشت هسته را دوباره راه اندازی می کند. ( شماره 120951634 )
  • هنگام استفاده از یک فایل نقشه برداری به عنوان عکس فوری RAM ، شبیه ساز اکنون نقشه برداری فایل را صریحاً در خروج از بین می برد.

28.0.20 (11 دسامبر 2018)

این به روزرسانی شامل پیشرفت ها و اصلاحات زیر است:

  • مسئله ای را در ویندوز ایجاد کرد که باعث شد شبیه ساز با بارش عکس با مدل های خاصی از GPU های Intel ، بار خود را بر روی بار عکس فوری کند.
  • مسئله ای را برطرف کرد که باعث ایجاد حالت دستگاه ADB unauthorized هنگام استفاده از یک مکان غیر استاندارد ANDROID_SDK_HOME شد.
  • مسئله ای را در ویندوز که باعث شد شبیه ساز هنگام بوت شدن تصاویر سیستم با شتاب CPU غیرفعال شود ، خراب شود.
  • مسئله نمایشگر شبیه ساز پیکسل را برطرف کرد. Downsampling اکنون باید کار کند.
  • مسئله ای را در MACOS 10.14+ برطرف کرد که در آن کنترل Mouselook Camera صحنه مجازی به دلیل تعامل با تنظیمات امنیتی دسترسی جدید می تواند بسیار حساس شود.
  • خطایی را در محاسبه منطقه زمانی برطرف کرد که می تواند باعث تغییر ساعت شبیه ساز شود.
  • خطاهای ارائه دهنده ثابت در برنامه های مختلف Cocos2D و Unreal Engine.
  • پشتیبانی اضافه شده در شبیه ساز برای Wi-Fi Peer-to-Peer . در صورت استفاده از آخرین تصویر فروشگاه Pie Play ، دو شبیه ساز هم اکنون می توانند مستقیماً از طریق Wi-Fi با یکدیگر صحبت کنند. برای استفاده از Wi-Fi Peer-to-Peer ، دو AVD را با همان آرگومان های -wifi-server-port و- -wifi-client-port شروع کنید:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • با استفاده از هرگونه اندازه قاب ناسازگار و تغییر اندازه گیری پویا برای متناسب با تنظیم دوربین در میهمان اندرویدی ، پشتیبانی بیشتری برای وب کم ها در ویندوز اضافه کرد.

28.0.16 (نوامبر 2018)

این به روزرسانی شامل چندین ویژگی جدید ، پیشرفت در ویژگی های موجود و رفع اشکال است.

مصرف منابع

این شبیه ساز اکنون از RAM کمتری استفاده می کند ، به خصوص هنگام استفاده از تصاویر سیستم با سطح API 28 یا بالاتر. این تصاویر سیستم شامل استفاده از حافظه بهبود یافته برای درایورهای گرافیکی سمت مهمان است.

علاوه بر این ، ما همچنین در زمینه های زیر میزان مصرف منابع را بهبود بخشیده ایم:

  • کاهش مصرف حافظه شبیه ساز در طول تست های طولانی. اگر هنوز هم در مورد استفاده از حافظه در طول تست های طولانی مدت مشکلی را تجربه کرده اید ، لطفاً موضوعی را ایجاد کنید که مورد استفاده شما را در مورد ردیاب شماره توصیف کند.
  • کاهش مصرف CPU هنگام اجرای برنامه ها با انیمیشن.
  • مسئله ای را برطرف کرد که در آن زمینه QEMU AIO می تواند در ویندوز نشت کند.

چندین نمونه از یک AVD را همزمان اجرا کنید

اکنون می توانید چندین نمونه از همان AVD را راه اندازی کرده و همزمان آنها را اجرا کنید. مواردی که بعد از اولین نمونه راه اندازی می کنید فقط خواندنی است و تغییرات آنها در دیسک مجازی مهمان در خروجی دور ریخته می شود.

برای اجرای چندین نمونه از همان AVD در همان زمان ، هر نمونه را بعد از اولین نمونه از خط فرمان با استفاده از پرچم -read-only راه اندازی کنید.

این ویژگی با کپی کردن پرونده های QCOW2 مرتبط با قسمت های قابل نوشتن تصویر اندرویدی امکان پذیر است. برای کمک به شما در مدیریت فضای دیسک ، ما همچنین ابزار خط فرمان qemu-img را به شما امکان پذیر کرده ایم تا قبل از راه اندازی چندین نمونه ، پرونده های QCOW2 را از قبل انتخاب کنید.

علاوه بر این ، هنگامی که در پشت سر هم با ویژگی Snapshots RAM مهمان با حمایت از پرونده استفاده می شود ، چندین نمونه AVD عکس فوری AVD QuickBoot را به عنوان منبع مشترک رم مهمان کپی بر روی نوشتن به اشتراک می گذارند. این خاصیت به این معنی است که نمونه ها بخش اعظم قوچ خود را مشترک دارند. از این ویژگی برای اجرای تست هایی که به چندین دستگاه نیاز دارند برای اجرای موازی استفاده کنید.

ما از بازخورد شما در مورد موارد استفاده احتمالی که بخشی از گردش کار عادی یا CI شما هستند قدردانی می کنیم. لطفاً مسائل مربوط به Tracker Issue را ایجاد یا upvote ایجاد کنید.

عکسهای قوسی مهمان با حمایت پرونده

با پیش اختصاص و نقشه برداری از رم مهمان به عنوان یک پرونده ، شبیه ساز اکنون می تواند به جای انجام همه کارها در هنگام خروج ، عکس های QuickBoot را در طول زمان اجرا کند. اگر در حال حاضر در هنگام بستن شبیه سازهای خود ، زمان صرفه جویی طولانی را تجربه کرده اید ، این ویژگی را قادر به بهبود عملکرد QuickBoot خود کنید. به طور پیش فرض ، یک عکس فوری Quickboot در خروجی ذخیره می شود و هر بار دوباره بارگذاری می شود ، مانند تعلیق و بیدار شدن از یک دستگاه واقعی.

از آنجا که RAM مهمان Android اکنون به طور پیش فرض به صورت خودکار انجام می شود ، اگر می خواهید حالت دستگاه را تعریف کنید و به طور مکرر از آن حالت بارگیری کنید ، باید به شبیه ساز بگویید تا بعد از هر جلسه تغییرات را کنار بگذارد. شما می توانید این کار را به روش های زیر انجام دهید:

  • هنگام راه اندازی شبیه ساز از خط فرمان ، از پرچم های -no-snapshot-save یا -read-only استفاده کنید.
  • به کنترل های گسترده> عکس های فوری> تنظیمات بروید و حالت فعلی ذخیره خودکار را به QuickBoot تغییر دهید؟ به نه
  • پس از انتخاب این گزینه ، باید شبیه ساز را مجدداً راه اندازی کنید. اگر شبیه ساز روی اتومبیل سازی خودکار تنظیم شده است ، می توانید دستور زیر را برای تنظیم یک ایست بازرسی اجرا کنید:
    adb emu avd snapshot remap 0
    
    پس از اجرای این دستور ، Snapshot Emulator QuickBoot در آن ایست بازرسی می ماند. دوباره همان دستور را اجرا کنید تا شبیه ساز را از پاسگاه خود بارگیری کنید.

عکسهای فوری که از طریق عملکرد Snapshots UI مانند گذشته انجام می شود و بدون نقشه برداری فایل بارگیری می شوند.

از آنجا که این یک تغییر بزرگ در نحوه عملکرد QuickBoot است ، ما از بازخورد شما در مورد اینکه آیا عملکرد Quickboot را بهبود می بخشد و چه نوع مسائلی را هنگام استفاده از آن با آنها روبرو می کنیم ، بسیار قدردانی می کنیم. اگر مشکلی را تجربه کردید ، می توانید با افزودن خط زیر به پرونده ~/.android/advancedFeatures.ini خود این ویژگی را غیرفعال کنید:

QuickbootFileBacked = off

هنگامی که شبیه ساز را از یک عکس فوری شروع می کنید (یا با استفاده از گزینه خط فرمان -snapshot ، یا راه اندازی از عکس فوری در مدیر AVD) ، شبیه ساز هم برای عکس های سریع و هم برای صرفه جویی در عکس های QuickBoot در خروجی ، از بین می رود. این باعث می شود شانس این که عکس فوری Quickboot ناخواسته بازنویسی شود ، کاهش می یابد و از مسیرهای آهسته برگشتی که از عکس های سریع Quickboot با حمایت پرونده استفاده نمی کنند ، جلوگیری می کند.

qemu 2.12

ما نوع QEMU خود را از QEMU 2.9 به QEMU 2.12 دوباره تخفیف داده ایم. این بروزرسانی شامل تغییرات QEMU زیر است:

در اینجا برخی از تغییرات قابل توجه که بر شبیه ساز اندرویدی تأثیر می گذارد وجود دارد:

  • X86: gdbstub اکنون دسترسی به ثبت های SSE را فراهم می کند.
  • تصاویر دیسک: قفل تصویر به طور پیش فرض اضافه و فعال می شود. چندین فرآیند QEMU نمی تواند تا زمانی که میزبان از قفل OFD یا POSIX پشتیبانی کند ، به همان تصویر بنویسند ، مگر اینکه گزینه ها در غیر این صورت مشخص شود.
  • qemu-img: qemu-img resize از جابجایی قسمت های جدید تصویر پشتیبانی می کند.
  • QCOW2 کوچک شدن اکنون در qemu و qemu-img پشتیبانی شده است.

قابلیت دسترسی

  • مشکلات رفع شده با خوانندگان صفحه نمایش و پشتیبانی بهتری از این ابزارها در ضبط صفحه و UI Snapshot.
  • نمادهای اعلان سریع بوت را برای کاربرانی که کور رنگ هستند قابل دسترسی تر است.

گرافیک

  • یک مسئله دسترسی به حافظه خارج از محدوده را برطرف کرد که می تواند برای نشانگرهای آرایه vertex Opengl es رخ دهد.
  • برخی از GPU های قدیمی تر از OpenGL 2.1 یا بیشتر (که لازم است) پشتیبانی نمی کنند ، یا مشکلات قابلیت اطمینان دیگری نیز داشتند. این مسائل می تواند باعث شود که شبیه ساز در شروع ، یخ زدن یا غیرقابل استفاده در تنظیم پیش فرض GPU باشد. در صورت تشخیص اینکه این GPU ها در حال استفاده هستند ، اکنون شبیه ساز به طور خودکار به رندر SwiftShader تغییر می کند.
  • مسئله ای را که باعث شد شبیه ساز در صورت ارسال FBO != 0 در زمان eglSwapBuffers محدود شود ، ارسال کند.
  • مسئله ثابت که در آن صفحه نمایش آندروید مجازی فقط در گوشه بالا سمت چپ نشان داده می شود. ما معتقدیم که این امر به دلیل اشتباه متغیرهای محیط QT بود. اکنون شبیه ساز تمام متغیرهای محیط مربوط به مقیاس QT را نادیده می گیرد.
  • مسئله ای را برطرف کرد که در هنگام بارگیری برنامه های GLES1 از عکس فوری ، شبیه ساز در برخی شرایط خراب شد.
  • مشکلات همزمانی ثابت در OpenGL و راه اندازی موضوعات ارائه شده که می تواند منجر به آزاد شدن یا داده های خراب شود.
  • Android Emulator اکنون از پشتیبانی بافت فشرده شده ASTC LDR ( GL_KHR_texture_compression_astc_ldr ) برای تصاویر سیستم که از سطح 28 یا بالاتر API استفاده می کنند ، پشتیبانی می کند.
  • اکثر GPU های مدرن اکنون باید بتوانند شبیه ساز را با OpenGL ES 3.x به طور پیش فرض بدون استفاده از پرچم ویژگی GLESDynamicVersion فعال کنند.
  • -gpu guest (ارائه نرم افزار در مهمان) کاهش یافته است. تصاویر سیستم برای سطح API 28 یا بالاتر اکنون به طور خودکار به جای استفاده از SwiftShader ( -gpu swiftshader_indirect ) به صورت خودکار تغییر می کند.
  • اگر شبیه ساز از خط فرمان با استفاده از پرچم -no-window راه اندازی شود ، رندر پیش فرض اکنون SwiftShader است.

مکان

  • شبیه ساز اکنون می تواند تحمل همراه با موقعیت عرض جغرافیایی و طول جغرافیایی را به روز کند. سنسور مجازی Magnetometer با استنباط حرکت هنگام پخش یک فایل GPX یا KML ، خود را به صورت پویا در شمال مغناطیسی تنظیم می کند.
  • سرعت دستگاه اکنون می تواند در صفحه مکان تنظیم شود.
  • هنگام پخش یک فایل GPX یا KML ، سرعت به طور خودکار تنظیم می شود و با پایان یافتن پخش روی صفر تنظیم می شود.
  • ارتفاع دیگر محدود به بودن بین 1000 تا +10،000 متر نیست.
  • مسئله ای را برطرف کرد که در آن مکان مجازی GPS به صورت دوره ای به روز نشود ، مگر اینکه پنجره کنترل گسترده حداقل یک بار باز شود.

دوربین

در ویندوز ، اکنون وب کم های بیشتری پشتیبانی می شوند زیرا شبیه ساز به صورت پویا از فریم های دوربین که از وب کم تحویل می شوند تغییر می کند. این ویژگی همچنین مانع از ایجاد خطاها در تحویل فریم می شود و باعث آویزان شدن شبیه ساز می شود.

فروشگاه Play

برای پرداختن به مسائل مربوط به اجرای فضای دیسک در تصاویر فروشگاهی ، شبیه ساز اکنون به طور خودکار در هنگام کار با فروشگاه Play Play AVD ، پارتیشن UserData را به 6 گیگابایت تغییر می دهد.

بهبود کیفیت و رفع کیفیت عمومی

  • برخی از کاربران گزارش دادند که شبیه ساز کند است. ما یک علت احتمالی را شناسایی کردیم که در آن دایرکتوری دما برای شبیه ساز با بسیاری از پرونده های بی نظیر در داخل به پایان می رسد. به عنوان یک راه حل ، شبیه ساز دیگر فایلهای ADB را در آن فهرست ذخیره نمی کند. با این حال ، ممکن است به حذف محتوای آن پوشه نیز کمک کند. این پوشه بسته به سیستم عامل شما در یکی از مکان های زیر قرار دارد:
    • ویندوز: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macos یا linux: /tmp/android-<username>/*
  • اگر شبیه ساز به دلیل ناکافی RAM رایگان نتواند شروع کند ، اکنون یک پیام خطا نمایش داده می شود. اگر در ویندوز هستید و متوجه می شوید که RAM رایگان وجود دارد ، اما هنوز قادر به شروع شبیه ساز نیستید ، ممکن است هزینه تعهد فراتر رفته باشد. برای کمک به این شماره ، به صفحه عیب یابی Emulator مراجعه کنید.
  • گزینه خط فرمان -sysdir اکنون به درستی دایرکتوری تصویر سیستم استنباط شده را نادیده می گیرد.
  • مودم مجازی اکنون از اطلاعات فعالیت مدل +MAI پشتیبانی می کند.
  • رفع مشکلات مختلف با نشت حافظه ، فساد حافظه و استفاده از CPU. اگر در حال تصادفات ، نشت حافظه یا سایر منابع بالای منابع هستید ، لطفاً یک مسئله را در شماره ردیاب ایجاد کنید.
  • مسئله ای را که دوباره در MACOS 10.14 ظاهر شد ، رفع کرد و در آنجا با استفاده از هدست های بلوتوث با شبیه ساز ، صدا را در سطح جهان تخریب می کند. برای جلوگیری از این امر ، اکنون شبیه ساز هنگام اجرا روی MACOS از استفاده از صدای بلوتوث خودداری می کند. ( شماره 37070892 )
  • مسئله ای را در ویندوز که ساعت شبیه ساز در منطقه زمانی صحیح قرار نمی گیرد ، برطرف کرد.
  • آهسته شبیه ساز ثابت و روی سیستم های لینوکس با سخت افزار چرخش (HDDS) آویزان است.
  • برخی از هشدارهای کامپایل که می تواند منجر به فساد پشته در MACOS شود ، برطرف شد.
  • موارد ثابت که می تواند منجر به گزارش گمراه کننده از حلق آویز شود.
  • اگر یکی از موضوعات با موفقیت ایجاد نشود ، مسئله ای را با از بین بردن استخرهای نخ که می تواند باعث تصادف شود ، برطرف کرد.
  • مسئله ای را در مورد MACOS رفع کرد که در آن تایمرها غیرقابل اعتماد می شوند و منجر به آویزان و سایر رفتارهای عجیب می شوند. اگر Emulator را در MACOS آویزان کرده اید ، لطفاً یک مسئله را در Issue Tracker ایجاد کنید.
  • مسئله ای را برطرف کرد که بستن شبیه ساز UI را غیرفعال می کند ، اما در واقع شبیه ساز را نمی بندد.
  • مشکلات ثابت مربوط به تصادفات پراکنده ، از جمله سقط جنین به دلیل باز کردن موارد بیش از حد /dev/urandom .
  • در صورت خاتمه دادن به ADB ، مسئله ای را که باعث شد شبیه ساز پس از اولین بار شروع به کار کند ، رفع کرد.
  • ساخت MIPS برداشته شده است. اگر هنوز به MIPS احتیاج دارید ، لطفاً یک مسئله در شماره ردیاب ایجاد کنید.
  • مسئله ای را برطرف کرد که در آن اتصالات ADB می تواند در بار عکس فساد فاسد شود.
  • مسئله ای را برطرف کرد که در آن پنجره شبیه ساز هنگام از سرگیری یک عکس فوری که در آن جهت گیری دستگاه با جهت گیری پیش فرض AVD متفاوت بود ، دارای صفحه نمایش پس از تصویر یا Teleport باشد.
  • مشکلات ثابت مربوط به تصادف هنگام صرفه جویی در عکس های فوری.
  • در لینوکس ، سیستم های فایل 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 حل کرده است آورده شده است:

  • تصادفات تصادفی از سیستم عامل های مهمان که از یک هسته لینوکس اخیر استفاده می کنند (> = 4.6). به عنوان مثال ، اوبونتو 18.04 ( #39 ، #74 ).
  • رفع اشکال شبیه ساز دستورالعمل x86 که می تواند منجر به تصادف میزبان شود ( شماره 93 ).

استهلاک ویندوز 32 بیتی

با توجه به هزینه های کم مصرف و نگهداری بالا ، ما قصد داریم نسخه 32 بیتی شبیه ساز اندرویدی را که روی ویندوز اجرا می شود ، کاهش دهیم. ما قبل از حذف و پایان زندگی برای نسخه 32 بیتی شبیه ساز Android ، یک برنامه انتقال را اجرا خواهیم کرد. با این حال ، ما به طور جدی به دنبال هرگونه بازخورد یا نگرانی در مورد این تغییر آینده هستیم.

لطفاً اگر در حال حاضر به نسخه 32 بیتی شبیه ساز Android که روی ویندوز اجرا می شود ، به ما اطلاع دهید و به ما بگویید که چگونه می توانیم با شما پیش برویم.

27.3.10 (اوت 2018)

این به روزرسانی شامل رفع اشکال زیر است:

رفع پیکربندی اندازه رم

برخی از کاربران گزارش دادند که شبیه ساز کند است. ما یک علت احتمالی را مشخص کردیم که در آن اندازه RAM AVD در پرونده config.ini AVD نادرست تنظیم شده است.

برای کاهش این امر ، شبیه ساز حداقل سطح رم را برای تصاویری که از سطح 26 یا بالاتر API از سطح پیش فرض اندروید 1536 مگابایت استفاده می کنند ، افزایش می دهد. اگر پرونده config.ini AVD شما لیست hw.ramSize را در مگابیت ها قرار نمی دهد ، لطفاً یک شماره را در شماره ردیاب ایجاد کنید. می توانید پرونده config.ini را در مکان زیر پیدا کنید:

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

27.3.9 (ژوئیه 2018)

این به روزرسانی شامل پیشرفت های زیر و رفع اشکال است:

پیام های خطای بهبود یافته برای پلت فرم Hypervisor Windows

برخی از کاربران در تشخیص اینکه چرا پلت فرم Hypervisor Windows (WHPX) هنگام فعال کردن یک شبیه ساز WHPX نتوانستند مشکل داشته باشند ، مشکل داشتند. برای کمک به شما در تشخیص این مسائل ، پیام های خطای آموزنده تری اضافه کرده ایم. You can enable these error messages by running the emulator from the command line using the -verbose flag.

General fixes

  • Fixed OpenGL errors that occur when loading a snapshot in the camera app.

27.3.8 (July 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Snapshots

You can now save multiple AVD snapshots for a given device configuration and choose which of the saved snapshots to load when you start the emulator.

Starting with Android Studio 3.2 Canary 13, each device configuration includes a control in the advanced settings in the Virtual Device Configuration dialog with which you can you can specify which AVD snapshot to load when starting the AVD.

To accommodate this expansion of the snapshot features, we have added a Snapshots category to the Extended controls dialog. This new pane contains controls for saving and loading AVD snapshots, including the controls for saving and loading the quick-boot snapshot that had previously been in the Settings pane.

You can edit the name and description of each saved snapshot.

For details, see Snapshots .

HAXM 7.2.0

HAXM 7.2.0 is now available in all channels.

This update includes bug fixes and improved support for large amounts of RAM. Also, with this HAXM update and Emulator 27.3 and later, snapshots load their contents into RAM on demand rather than loading the entire snapshot when the virtual device starts. This change should greatly decrease the time needed to load a snapshot.

For details, see Configuring VM acceleration .

27.2.9 (May 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Screen recording

You can now record video and audio from the Android Emulator and save the recording to a WebM or animated GIF file.

The screen recording controls are in the Screen record tab of the Extended Controls window.

Tip: You can also open the screen recording controls by pressing Control + Shift + R (Command + Shift + R on Mac).

To begin screen recording, click the Start recording button in the Screen record tab. To stop recording, click Stop recording .

Controls for playing and saving the recorded video are at the bottom of the Screen record tab. To save the video, choose WebM or GIF from the menu at the bottom of the tab and click Save .

You can also record and save a screen recording from the emulator using the following command on the command line:

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

اسکرین شات ها

You can take screenshots from the command line with either of the following commands:

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

Screenshots are saved in PNG format.

Virtual scene camera and ARCore

Developing and testing augmented reality apps (AR) with ARCore is now even easier with the new virtual scene camera, which allows you to experiment with your AR experience within a virtual environment.

For information on using the virtual scene camera in the emulator, see Run AR apps in Android Emulator .

Google Play Store on Pixel device images

The Google Play Store is now enabled for Pixel and Pixel 2 device images. This is indicated in the AVD Manager in Android Studio 3.2 and later with the Google Play logo in the Play Store column. AVDs with Google Play Store enabled have a Google Play tab in the Extended controls dialog that provides a convenient button for updating Google Play services on the device.

Snapshots

You can now load a Quick Boot snapshot without restarting the emulator. To load a snapshot, open the Extended Controls window to the Settings page and click the Load Now button.

We have made many improvements to the loading and saving of snapshots to improve efficiency of resource usage and to minimize the time that each operation takes. If you still experience unusually long saves, please file an issue , providing details of your CPU, RAM, and settings of any antivirus / firewall / security software that is running.

Rendering with Skia

When using images for API 27 or later, the emulator can render the Android UI with Skia , which can render more smoothly and efficiently.

For now, use of Skia requires that you explicitly enable it.

To enable Skia rendering, use the following commands in adb shell:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

دوربین

On Windows, Android Emulator now uses Media Foundation as the webcam back end, which greatly improves performance and frame rate for webcam capture, up to 720p 30 FPS.

On Mac, you can now use webcam0 and webcam1 together.

متفرقه

The -phone-number-prefix command-line option has been changed to -phone-number [number] , which allows setting of the full phone number.

You can now use alphanumeric SMS addresses.

رفع می کند

  • The Linux version of the Android Emulator is now built using a modern Clang C++ toolchain. This change fixes the issue of the emulator failing to start due to libGL and libstdc++ errors.
  • Fixed several causes of crashes and hangs.
  • To avoid crashes and hangs caused by not having enough free disk space, the emulator now checks for sufficient free disk space on startup, and will not start unless at least 2 GB is free.
  • Fixed an issue that prevented some Unity games from rendering.
  • Fixed DNS issue that caused the emulator to be unable to connect to the network.
  • Fixed an issue that caused changes to the internal storage allocated to an AVD through the Virtual Device Configuration dialog to not work.
  • Fixed an issue of many adb processes being created and not properly shut down.
  • Fixed an issue that caused the rotate buttons and other parts of the UI to become unresponsive unless the Extended controls window was open.
  • Fixed an issue that caused copy and paste from the host to not work unless the Extended controls dialog was opened at least once.
  • The frameless emulator's resize rectangle has been updated to better follow the emulator's visual theme.
  • Telephone and SMS are now properly deactivated when airplane mode is on.
  • Fixed an issue that caused SMS and cellular functionality to be disabled after loading a snapshot.
  • You will no longer receive false warning messages saying “Unable to open... \pstore.bin. Permission denied.”
  • Fixed an issue that prevented re-positioning the AVD on some Mac screens.
  • Fixed issues with flickering and blank screens on newer MacBook Pro computers when running AVDs with Pixel 2 XL skins.
  • Fixed issues with blank screens when switching into zoomed mode while a frameless emulator was active.
  • Fixed an issue that caused the device skin and emulator contents to scroll out of sync when zoomed in.

If you are still experiencing hangs or other instabilities, please file an issue .

27.1.12 (March 2018)

This update includes fixes for the following issues:

  • Bluetooth audio quality degraded after starting the emulator. ( Issue 37095756 )
  • Locations sent to one emulator were sent to all of them. ( Issue 73450633 )
  • GPS location set using the console was overridden by values set using Extended Controls > Location in the graphical user interface. ( Issue 73471760 )

If you are still experiencing hangs or other instabilities, please file an issue .

With this update, a current system image, and a preview version of Android Studio, you can use Android Emulator to run augmented reality applications built with ARCore. For detailed requirements and instructions, see Run AR apps in Android Emulator .

27.1.10 (February 2018)

  • Camera capture resolution

    720p frames can now be captured from an attached webcam.

    To work with Android 8.1 (API level 27) and higher system images, any attached webcam must have the capability to capture 720p frames.

  • رفع می کند

    • Fixed an issue that caused webcam capture to sometimes output a distorted or all-green image.
    • Fixed an issue that made it possible to see the following message even when there was no actual hang: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".

If you are still experiencing hangs or other instabilities, please file an issue .

27.1.7 (February 2018)

  • Frameless emulator window:

    By default, emulators with device skin files are now shown without a surrounding window frame. To show the surrounding window frame, enable Show window frame around device in the Settings pane of the Extended Controls window.

  • Quick Boot improvements to make working with AVD snapshots more efficient:

    • You can save an AVD snapshot at any time using the Save Now button in the Settings pane of the Extended Controls dialog box.
    • The emulator reduces the time that it takes to save a snapshot in many cases by saving only the difference between the current state and the previously saved snapshot.

    For details, see the Quick Boot documentation.

  • The emulator has been updated to use QEMU 2.9.

    Some notable improvements include the following:

    • Optimized I/O and finer-grained I/O thread locking for greater performance.
    • Fixed bugs since QEMU 2.8 (26.1.4).
    • New implementation of the HAXM back end.

    See the full list of changes in the QEMU 2.9 change log .

  • Swiftshader implementation conforming to OpenGL ES 3.0:

    The emulator's Swiftshader renderer now conforms fully with OpenGL ES 3.0. For details of the Swiftshader renderer, see the Settings > Advanced section of Extended Controls .

  • رفع می کند

    • Fixed an issue where clipboard sharing was not working unless the Enable clipboard sharing option was toggled off and on.
    • Fixed a hang when using the Swiftshader rendering back end with low-resolution AVDs.

27.0.5 (January 2018)

  • ANGLE for rendering on Windows is now disabled by default.

    If ANGLE works better for you, you can re-enable it with command line flag -gpu angle_indirect . Or, open the Extended controls window, navigate to Settings > Advanced , and select ANGLE D3D11 for the OpenGL ES renderer setting.

  • Fixed an issue where Shift+B does not type a capital B character.

27.0.2 (December 2017)

  • New Quick Boot feature provides faster emulator start times, based on a snapshot of your AVD instance.

    Quick Boot is enabled by default for all AVDs. Although the first time you start an AVD it must perform a cold boot (just like powering on a device), all subsequent starts are fast and the system is restored to the state at which you closed the emulator (similar to waking a device).

    If you want to control when the emulator saves a snapshot, open the emulator's Extended controls window and click Settings . Here, you can select one of the following settings for Save quick boot state on exit :

    • Yes : Always save quick boot snapshot when you close the emulator. این پیش فرض است.
    • No : Never save quick boot snapshot; always perform a cold boot.
    • Ask : Prompt whether or not to save quick boot snapshot when you close the emulator.

    Your selection applies only to the currently open AVD.

    For more information, see the Quick Boot documentation .

  • Added support for Mac OpenGL ES 3 (for system images using API level 24 and higher, Google APIs, and the x86 ABI).

  • For added stability in OpenGL ES 2+ apps, emulator now uses OpenGL core profile if available.

  • New options for rendering with Swiftshader / ANGLE:

    • -gpu swiftshader_indirect : Faster, more stable variant of Swiftshader that works with Quick Boot.
    • -gpu angle_indirect (Windows only): More stable variant of ANGLE D3D that also works with Quick Boot.

    The older -gpu swiftshader and -gpu angle options are now deprecated. In the Extended controls window, the "SwiftShader" and "ANGLE" options for the OpenGL ES renderer setting in Settings > Advanced now use the *_indirect variants.

  • Various other bug fixes.

26.1.4 (August 2017)

This is a minor release with bug fixes and the following improvements to GPU configuration:

  • Enable boot animation when running on ANGLE renderer
  • Disable GLES3 when running on ANGLE renderer

26.1.3 (August 2017)

This is a minor release with bug fixes, performance improvements, and small feature changes.

  • This version is now required to use the latest Android 8.0 system images. They are Treble-compliant , featuring separate vendor.img partitions.
  • New HAXM 6.2.0 now available (check the SDK Manager) and includes the following updates:
    • Improved memory usage. The peak working set of memory pinned by HAXM is no longer equal to the size of the AVD's RAM; instead, memory is paged in on demand. This should help the emulator run more reliably on machines with lower amounts of RAM.
    • The emulator with HAXM 6.2.0 can now boot faster on macOS, skipping a lengthy initialization phase.
  • Improvements to GPU configuration
    • Fixed issues with black screen on boot when performing guest-side software rendering by falling back to host-side software rendering with Swiftshader. Latest revisions of system images for API levels 19 - 25 with Google APIs should have working guest-side rendering.
    • Fixed an issue where the emulator was switched to a software renderer due to detecting the presence of older Intel GPUs, but the emulator was actually running on a discrete GPU. Which GPUs will be switched to use ANGLE or Swiftshader rendering is determined as follows:
      • Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D drivers. Users with Intel HD Graphics 3xxx and older will use Swiftshader.
      • Some users reported the inability to use API level 25 images because of a bug in which "Pixel Launcher keeps stopping." This seems to be a driver issue in some Intel HD 4xxx models. So they will be switched to use ANGLE automatically.
    • For best results with GPU emulation, we recommend either to use a discrete NVIDIA or AMD GPU, or a newer Intel GPU (Iris, HD 5xxx, HD 5xx/6xx).
    • Fixed an issue where the emulator would fail to start (OpenGL emulation failed to initialize) if the AVD was configured with hw.gpu.mode=host and the emulator was launched in a remote desktop client.
    • Clarified "OpenGL ES API level (requires restart)" settings; added an option to downgrade from OpenGL ES 3 to OpenGL ES 2 if experiencing issues or needing to test on lower OpenGL ES API levels.
    • Mesa renderer is deprecated; hw.gpu.mode=mesa will now be automatically switched to use Swiftshader on the host.
  • Improvements for macOS:
    • The emulator is now fully compatible with macOS 10.13 High Sierra through either Hypervisor.Framework or HAXM 6.2.0.
    • Hypervisor.framework is now enabled by default on macOS for 32-bit x86 images to improve performance and macOS compatibility. If you experience issues with it specifically, please file a bug report and append HVF = off to ~/.android/advancedFeatures.ini (create this file if it doesn't exist).
    • Fixed issues with no internet / failure to attach debugger while using Hypervisor.framework.
    • To enhance compatibility and performance of webcam capture, the QTKit-based camera capture has been replaced with a buffered one based on AVFoundation.
  • Added support for Wi-Fi in some system images (currently only API level 25). An access point called "AndroidWifi" is available and Android automatically connects to it. Wi-Fi support can be disabled by running the emulator with the command line parameter -feature -Wifi .
  • Some users raised the concern that the fixed-size Play Store system images did not have sufficient storage. As such, we've increased the size to 2 GB by default (up from 800 MB).
  • Added a keyboard shortcut (Ctrl+Shift+U) to open the bug reporting UI page directly from the settings page.
  • Fixed an issue where if an older CPU with Intel x86 EPT but without UG was used, the emulator would fail to boot if more than one core was configured.
  • Fixed an issue where HyperV would be improperly detected if the emulator was itself running in a Xen hypervisor.
  • Fixed an issue where the emulator would crash on start in some Linux configurations.

26.1.2 (July 2017)

This release includes new features and performance improvements.

  • Added the ability to define a custom HTTP proxy configuration in the extended controls (click More, and then click Settings and Proxy ). By default, the emulator uses the Android Studio HTTP proxy settings, but this screen allows you to define a manual proxy configuration.

  • Added VNC support for guest mode GPU so emulator can be remotely viewed and controlled. For example, you can launch the emulator and let VNC listen to port 5901 as follows:

    1. Execute: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Open a VNC viewer, such as tightvnc viewer, to connect to port 5901.

      • To use Mac's built-in screen sharing client, a VNC password is required when launching the emulator. To set a password, use this command:

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

        And then enter change vnc password into the console, and enter a password.

    Android O is not currently supported for VNC mode.

  • Added a File a bug button in the extended controls Help screen (Click More, and then click Help and Emulator help ). Clicking File a bug opens a dialog where you can see the bug report details such as the screenshot, the AVD configuration info, and a bug report log. You can then save the report for yourself or report emulator issues .

  • Added gyroscope sensor to emulator and virtual sensors panel. This requires a system image with gyroscope support to work (currently API level 24 and 25).

  • Added host-preferred DNS to Qemu DNS list on Windows, when multiple virtual network interfaces on the host introduce multiple DNS addresses which are not functional for the emulator.

  • Added experimental macOS Hypervisor.Framework support for 32-bit x86 images on macOS 10.10+ through server flags, which should improve boot time and performance.

    • If you experience problems with it, add the line HVF = off in ~/.android/advancedFeatures.ini .
  • OpenGL ES 3.x is now enabled by default for system images and host GPUs that support OpenGL ES 3. Currently, only Android O (API level 26) and Windows/Linux hosts support OpenGL ES 3.

    • If you experience problems with OpenGL ES 3, add the line GLESDynamicVersion = off in ~/.android/advancedFeatures.ini .
  • Emulator now uses offscreen OpenGL FBOs for all rendering except final display image posting, which should help with color consistency issues across platforms.

  • After collecting data on sudden emulator slowdown issues, we have determined that the problem may have to do with some interaction between older Intel OpenGL drivers and Windows updates. As such, users with Intel HD 4000, 3000, 2000 (and related GPUs) now have rendering set by default to either a D3D renderer (ANGLE) or Swiftshader (software renderer).

26.0.0 (March 2017)

This release is compatible with API level 26. It also includes a number of performance improvements and bug fixes.

Minor revision 26.0.3 (May 2017)

  • Adds online-updateable feature flags for quickly addressing issues stemming from problematic hardware configurations. This allows Google to roll out fixes and features that are dependent on user configurations by updating server-side flags. If you notice issues with specific hardware, please report a bug so we can investigate the problem.
  • New support for rotary input for Android Wear API level 25 system images. To emulate the rotary input dial on a Wear device, click the Rotary Input tab on the extended window.
  • The Crash Reporting dialog is now resizable and no longer resets When to send crash reports to Ask without input.
  • The 32-bit emulator now requires that the maximum AVD RAM size be less than or equal to 512 MB, in order prevent the emulator from running out of room in the 2 GB virtual address space.
  • Adds support for absolute paths in emulator images.
  • Adds a new tab in the extended window for Google Play Store images that displays the Play Services version and a button to check for updates to Play Services.
  • Adds a dropdown to select the OpenGL renderer on the Emulator Settings page. If you are experiencing issues with the OpenGL driver on a Windows machine, try using the ANGLE (D3D11) or ANGLE (D3D9) options (requires a restart). If you are experiencing issues with the OpenGL driver on a non-Windows machine, try using the Swiftshader software renderer (requires a restart).
  • Fixes a rare crash on exit when the emulator receives both exit and minimize commands.
  • Fixes a scaling issue when changing displays on a Mac machine. ( Issue 268296 )
  • Fixes an issue where the emulator takes 300% of the CPU and holds it after resuming the host computer from sleep or when the emulator has been running for a long time.
  • Fixes a crash when the emulator is shutting down.

Updates with HAXM v6.1.1 (March 2017)

Note: HAXM v6.1.1 is available for Mac users through the SDK Manager as of March 30th, and will be available for Windows users soon.

Version 26.0.0 of the Android Emulator supports HAXM v6.1.1, which includes the following updates:

  • Enables Performance Monitoring Units (PMU) emulation. ( Issue 223377 )
  • Fixes coexistence with VirtualBox and Docker on Macs. ( Issue 197915 )
  • Revises the installation error message displayed when the installer fails to detect Intel VT-x on Windows, usually because Hyper-V is enabled.
  • Adds support for accelerating the Android Emulator in a Hyper-V-based Windows VM. This update requires that the host Hyper-V instance (the one that manages the Windows VM/guest) use the latest version of Hyper-V with nested virtualization enabled. Hyper-V must be disabled in the guest Hyper-V instance (the Windows VM).

وابستگی ها

  • Android SDK Platform-Tools revision 25.0.4 or later.
  • Android SDK Tools revision 26.0.0 or later.

New features and bug fixes

  • Compatible with API level 26.
  • Fully GLES 2.0 compliant. Given a host GPU that has conformant desktop OpenGL drivers, the emulator now passes 100% of the Android CTS dEQP-GLES2 mustpass list . This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images.
  • Improved video playback performance. The emulator now stores all video color buffers in host/guest shared memory and performs necessary final YUV to RGB conversion in the GPU. 1080p30 should be well within reach of most systems now. This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images.
  • The emulator now correctly unregisters itself from the adb devices list on exit and closes open TCP ports on Linux machines.
  • adb connections are now more reliable. A running emulator is detected faster and doesn't go into “offline” or “unauthorized” status anymore.

25.3.0 (March 2017)

As of this release, the Android Emulator will be released separately from the SDK Tools. This release contains a variety of performance improvements, new features, and bug fixes.

Minor revision 25.3.1 (March 2017)

  • Fixed a crash occurring on some GPU configurations by disabling GLAsyncSwap by default. This feature was added in 25.3.0 to improve frame timing and frames per second for games and video, but causes the emulator to fail on some unknown machine configurations. You can manually enable it by opening the android_sdk /emulator/lib/advancedFeatures.ini file and setting GLAsyncSwap = on .

وابستگی ها

  • Android SDK Platform-Tools revision 24 or later.
  • Android SDK Tools revision 25.3.0.

New features and bug fixes

  • Updated emulation engine to QEMU 2.7, including all recent bug fixes, improved performance, and new features.
  • New IPv6 support.
  • The emulator now uses SwiftShader as a pure software renderer on the host.
  • Android Pipe performance improvements: Android Pipe, the main communication channel between the emulator and Android OS, is now an order of magnitude faster, has lower latency and offers better multi-threaded performance. This causes a number of performance improvements for the emulator, including:
    • Improved ADB push/pull speed.
    • Better 3D acceleration support.
    • Increased overall responsiveness of the emulator.
    • Improved graphics performance.
  • The emulator now uses GPU-side buffers (glBindBuffers / glBufferData) when the guest requests them, decreasing CPU overhead in some apps.
  • Improved audio support.
  • Faster disk I/O: The emulator now uses separate threads to dispatch disk I/O, resulting in lower latency and better throughput (~1.5x sequential I/O speed, ~5x random access I/O speed). This also reduces the number of flushes to disk, resulting in much lower physical device load.
  • The emulator now uses sparse files for disk boots on Windows machines, speeding up both first boot and "wipe-data" boots. When creating or resetting an AVD, the emulator now writes 100-200 MB of data to disk, instead of 2 GB or more.
  • Various GUI enhancements:
    • The emulator now uses Qt 5.7.0, which includes bug fixes and performance improvements.
    • UI initialization no longer attempts to load all emulator executables as Qt plugins, so it's dramatically shorter, especially on HDDs.
    • UI interactions are now faster and smoother, including rotation, window resizing, and extended controls window loading and closing.
،

Android Emulator is included with Android Studio.

Versions of the emulator prior to 25.3.0 were distributed as part of the Android SDK Tools.

To ensure you have the latest version, check the SDK Manager for updates.

To download previous versions of Android Emulator, see the Emulator download archive .

For release notes for Emulator versions prior to 25.3.0, see the Android SDK Tools release notes .

For known issues and troubleshooting, please see Emulator Troubleshooting .

35.2.10 (Oct 1, 2024)

  • New Pixel AVDs added including Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, and Pixel 9 Pro Fold
  • Added new Tablet system image for Vanilla Ice Cream (API 35)

35.1.20 (Aug 29, 2024)

  • Added Pixel 8a AVD
  • Various bug fixes for foldable
  • Qt update and fixes to qt related crashes and hangs
  • [Bug Fix] Fix to crashes and freeze on Windows with applications using Vulkan

34.2.16 (July 9, 2024)

  • [Bug Fix] UI freezes that occur on Pixel Fold during fold/unfold
  • [Bug Fix] Incorrect display of Android version as Android Vanilla Ice Cream Preview instead of API 35 on Mac M1.
  • [Bug Fix] Issue #296162661 : HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE returns true on Pixel C tablet emulator

34.2.15 (May 31, 2024)

  • Various crash fixes related to swangle mode and advertiser cleanup

34.2.14 (May 20, 2024)

Tested with Android Studio Jellyfish Stable Patch 1.

  • [Bug Fix] Snapshot sometimes hangs on embedded emulator
  • [Bug Fix] 'No' and 'Cancel' buttons are not working properly on snapshot
  • [Bug Fix] Directional pad buttons are not working
  • [Bug Fix] Fixed the issue seen on Windows preventing the emulator to start in some conditions when using GPU modes with ANGLE, and returning the error message “Failed to initialize GL emulation” in the log. Note that starting the emulator by command line with the option -gpu swangle_indirect might still generate this error with this version. If you still want to start the emulator using a command line on Windows with Software graphics rendering with this version, please use -gpu swiftshader_indirect
  • [Bug Fix] Location shortcut on keyboard loads an unusable map
  • [Bug Fix] While setting location, the "save route" dialog is missing

34.2.13 (April 30, 2024)

Tested with Android Studio Jellyfish Stable.

  • Update to Qt 6.5.3
  • Compatibility for the Google Maps API updates used in the Location features in the Extended Controls of the emulator, occurring at the end of May.
  • High impact crash fixes
  • Various fixes to Pixel AVDs
  • Update the graphics library used for software rendering
  • [Bug Fix] Issue 225541819 Starting Chrome crashes Emulator on x86_64
  • [Bug Fix] Issue 314614435 -http-proxy switch is parsed incorrectly

34.1.20 (April 1, 2024)

Tested with Android Studio Iguana Stable.

  • [Bug Fix] Issue #314614435 : Fix issue where -http-proxy switch is parsed incorrectly

34.1.19 (March 7, 2024)

Tested with Android Studio Iguana Stable.

  • [Bug Fix] Issue #312677259 : Fixed screen freeze in embedded emulator after resizing window.

34.1.18 (Feb 29, 2024)

Tested with Android Studio Iguana Stable.

  • Devices were added to Emulator including:
    • Pixel Fold
    • Pixel Tablet
    • پیکسل 8
    • پیکسل 8 پرو
    • پیکسل 7a
  • gRPC Integration Test: gRPC endpoints are now available to instrumented tests running inside the emulator that would enable testing of realistic scenarios. This feature enables developers to safely interact with the gRPC endpoint hosted by the Android Emulator from within Android instrumentation tests.
  • Various bug fixes
    • Bug Fix : Improvements in fold device usability
    • Bug Fix : Adjust the position of the Emulator after rotation
    • رفع خرابی

33.1.24 (Dec 28, 2023)

Tested with Android Studio Hedgehog Stable and Iguana Beta 1.

  • Fix Emulator webcam issue that doesn't allow screen record in mp4 format.
  • Fix Emulator crash on the Pixel Fold AVD when it is unfolded during a screen recording.
  • Fix issue where Pixel Fold shows a different phone skin with a detached keyboard and is unusable (fixed on Windows, Mac Intel, and Linux)
  • Fix glitch in appearance in Virtual sensors in Standalone mode (fixed on Windows, Mac Intel, and Linux)
  • Provide fixes for some crashes, especially while closing the emulator, were fixed

33.1.23 (Nov 30, 2023)

Tested with Android Studio Giraffe Patch 4 and Hedgehog Stable.

  • New foldable implementation to better emulate Pixel Fold device, works with latest API 34
  • Graphics backend upgrade: We've implemented the gfxstream protocol for our graphics backend, This enhancement elevates the overall graphics performance and stability of your system. In addition, introducing Vulkan 1.3 support beginning with system image with API 34
  • Feature Request : Option to disable pinch-to-zoom gesture or reassign its hotkey
  • [Bug Fix] Issue #302562962 Fix Emulator webcam crash when using MacOS sonoma
  • [Bug Fix] Issue #293503871 Fix issue where 'Microphone' setting is not saved when Emulator is restarted
  • [Bug Fix] Issue #270386314 Fix animation error where sidebar stays open once the AVD screen minimized
  • [Bug Fix] Issue #154896775 Fix bug submission tool

32.1.15 (Aug 29, 2023)

Tested with Android Studio Giraffe Patch 1 and Hedgehog Canary 16.

  • Comply with GAS HW requirements for Sensors in AAE Emulator
  • [Bug Fix] Issue #266201208 Hebrew SMS is not sent on API 33
  • [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up on API 29 and 30
  • [Bug Fix] Issue #228201899 Can't see google maps inside Android Emulator Extended Controls

32.1.14 (June 27, 2023)

Tested with Android Studio Hedgehog Canary 8, Giraffe Beta 5, and Flamingo Stable.

  • Fix emulator camera orientations & distortions.
  • [Bug Fix] Issue #257097404 "Emulator doesn't show correct time after the host is waken up". This bug is still reproducible for API 29 and API 30.
  • [Bug Fix] Issue #243456582 "Android releases after API 30 might not start correctly in emulator on Mac M1 machines"

32.1.13 (May 22, 2023)

Tested with Android Studio Hedgehog Canary 2, Giraffe Beta 1, and Flamingo Stable.

  • Add support for Pixel Fold and Pixel Tablet AVDs.
  • Improve gLinux crash issue.
  • [Bug Fix] Issue #215231636 "Emulator with API above API 30 not working in Intel 12th gen processor".
  • [Bug Fix] Issue #275397905 Highlevel of crash on Android Emulator M1 when moving cursor focus in and out of the emulator repeatedly.
  • Known issue with AVD launch Issue #281725854 . Please see Emulator Troubleshooting for more information.

32.1.12 (March 21, 2023)

Tested with Android Studio Giraffe Canary 10, Flamingo RC, and Electric Eel Patch 2.

  • [Bug Fix] Issue #267647323 Network doesn't work on Emulator started from Android Studio
  • [Bug Fix] Issue #268498686 Emulator screen is flickering
  • [Bug Fix] Issue #270034824 Emulator performance degraded after updating to version 33.1.1
  • [Bug Fix] Issue #225541819 Starting Chrome crashes Emulator on x86_64
  • [Bug Fix] Issue #257097404 Emulator doesn't show correct time after the host is waken up
  • Add crash reporting for Apple M1 devices

32.1.11 (February 8, 2023)

Tested with Android Studio Giraffe Canary 2, Flamingo Beta 1, and Electric Eel Patch 1.

  • Network speed optimizations
  • Mouse support in Embedded Emulator
  • Virtio-snd improvements
  • Disable the usage of symlinks while unzipping the Android Emulator during installation
  • Fix crash in emulator-check

31.3.14 (December 13, 2022)

Tested with Android Studio Dolphin, Electric Eel RC1, and Flamingo Canary 9.

  • [Bug Fix] Fix AVD crashes that occur when logging in to Play Store.

31.3.13 (October 27, 2022)

Tested with Android Studio Dolphin, Electric Eel Beta 2, and Flamingo Canary 5.

31.3.12 (October 10, 2022)

Tested with Android Studio Dolphin and Electric Eel Beta 1.

This update includes the following improvements and fixes:

  • [Bug Fix] Issue #247843000: AVD relative path handling error
  • Increase disk size for API 24 and later

31.3.11 (September 23, 2022)

Tested with Android Studio Dolphin and Electric Eel Canary 10.

This update includes the following improvements and fixes:

  • [Bug Fix] Embedded Emulator AVD crash on Extended Controls Window
  • [Bug Fix] Issue #183139207: Audio issues associated with Emulator activating microphone
  • [Bug Fix] Issue #229764024: AVD sticky touch bug that results in UI behavior issues
  • [Bug Fix] Error with launching API 33 AVD on Mac M1.
  • [Bug Fix] Issue #243053479: Slow network speed after updating Emulator
  • [Bug Fix] Issue #244617627: Nonfunctioning Maps location on Windows and Linux
  • [Bug Fix] Issue #232971796: Nonfunctioning “call device” button on the Extended Controls > Phone page
  • Update Android Emulator to minigbm
  • Migration of build scripts to Python3

31.3.10 (August 18, 2022)

Tested with Android Studio Dolphin Beta 5 and Electric Eel Canary 9.

Standalone downloads of the emulator are now available. If you're experiencing any issues or crashes with this latest stable release, please file a bug and consider downloading a previously working version from the emulator download archives .

This update includes the following improvements and fixes:

  • Better unicode path support on Windows
  • Better handling of emulator shutdown so a new launch of the same AVD could succeed.
  • Updated foldable AVD design and default settings
  • Updated Wear emulator buttons
  • gRPC audio streaming improvements
  • Resizable emulator console command added
  • Chrome Fix for API 31
  • [Bug Fix] Google Account Auth Failed with GmsCore v21.42.18

31.2.10 (April 20, 2022)

Tested with Android Studio Dolphin Canary 8 and Chipmunk RC 1.

This update includes the following improvements and fixes:

  • Add utility to load Vulkan functions with fallbacks
  • [Bug Fix] Fix gcc8 build error

31.2.9 (March 23, 2022)

Tested with Android Studio Dolphin Canary 7.

This update includes the following fix:

  • [Bug Fix] Ignore memory pressure when saving snapshot on M1

31.2.8 (February 7, 2022)

Tested with Android Studio Bumblebee Patch 1 and Chipmunk Canary 6.

This update includes the following improvements and fixes:

  • [Bug Fix] Unable to sign in to the apps
  • [Bug Fix] Issue #215368358: "adb reboot" on Intel platform will crash avd with "vcpu shutdown request"

31.2.7 (February 1, 2022)

Tested with Android Studio Bumblebee Patch 1 and Chipmunk Canary 6.

This update includes the following fix:

  • [Bug fix] Emulator hanging error on M1 machines.

31.2.6 (January 20, 2022)

Tested with Android Studio Arctic Fox, Bumblebee Beta 4, and Chipmunk Canary 6.

This update includes the following improvements and fixes:

  • Added wear buttons to Wear OS emulator.
  • Made all vehicle properties editable in VHAL tab.
  • [Bug Fix] Google Account Auth Failed with GmsCore v21.42.18.
  • [Bug Fix] Netshaper didn't work well with VirtioWifi.
  • [Bug Fix] Event mouse console command didn't work.
  • Added KVM check for local AVD creation.

31.1.3 (January 18, 2022)

This update includes the following improvements and fixes:

  • Enabled console ports for Fuchsia.
  • When resizing a multi-display window, orientation is ignored.
  • Wi-Fi: Added support for filtering out unicast packets based on MAT mac address.
  • Wi-Fi: Fixed crash when vmnet is in use.

30.9.5 (December 15, 2021)

This update includes the following improvements and fixes:

  • Added ability to easily resize to a desktop or tablet sized window.
  • Added support for multi-touch input from compatible host devices.
  • VirtioWifi: Added support for tap network.
  • Enabled Rotary Input for Wear System Images.
  • Fixed the gRPC audio configuration issue.
  • Updated SensorReplay Emulator Playback to support standard Android sensors.
  • Connected the emulator to peripherals and devices using USB with USB pass through.

30.4.5 (February 23, 2021)

This update includes the following improvements and fixes:

  • macOS: Fixed issues with audio input distortion.
  • Added support for virtio-vsock in userspace.
  • Future system images will use virtio-console for logcat and kernel messages.
  • Speed up Vulkan rendering.
  • Added support for snapshot debugging on test failure.
  • virtio-gpu: updated definitions to support latest blob resource enums.
  • Added snapshot support for the 'asg' type graphics transports.
  • macOS: Added support for building against macOS SDK 11.1+.
  • KVMclock enabled by default on newer system images.
  • Added support for a heart rate sensor to Wear emulators.
  • Removed libportability Vulkan backend.
  • Added support for more features in modem simulator.

30.0.26 (August 16, 2020)

This update includes several new features, improvements to existing features, and bug fixes.

Foldables support with virtual hinge sensor and 3D view

  • Added support for hinge sensors for foldable devices. This requires a future Android 11 system image and AVD configuration. 3D foldable view and hinge parameters are now integrated with the existing foldable presets. The following can be a used with, for instance, the 7.3 foldable AVD's config.ini file:

    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
    
  • Foldable devices now also carry a sub-type parameter. The config.ini property hw.sensor.hinge.sub_type = hinge/fold is now available. See the Developing for Android 11 with the Android Emulator blogpost to read more.

  • Hinge sensor is now enabled by default.

  • If a foldable device is configured, the emulator now sends hinge angle sensors updates and posture changes to the guest. Existing foldable devices will now update hinge sensor angle and posture when the toolbar's fold or unfold buttons are pressed.

Emulator for ARM64 hosts

  • Linux emulator source code now supports cross compilation from x86_64 to arm64 hosts, enabling running arm64 system images with KVM virtualization. Currently, only -gpu swiftshader_indirect (Swiftshader arm64 host rendering) is supported, but a compatible set of host GPU libEGL/libGLESv2 libraries may also be used by replacing lib64/gles_swiftshader with them and then relaunching with -gpu swiftshader_indirect . Snapshots may also not be working (add -no-snapshot to the command line). دستورالعمل:

    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
    
  • Support for Apple Silicon is in progress.

virtio-gpu support

  • Added support on the host side for upcoming virtio-gpu host coherent blob resources.
  • Due to how emulator rendering works, we now process virtio-gpu virtqueue in the vcpu thread (because rendering is offloaded to other threads anyway). virtio-gpu rendering will be enabled in a future system image and emulator version.
  • In a future system image the emulator will be able to run all graphics with a virtio-gpu based stack.

Other new features and enhancements

  • USB passthrough is now available on Windows using -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id> . (This should also have been workng on Linux and macOS already)
  • Updated WebRTC libraries to M83.
  • The emulator now supports audio streaming in containers over WebRTC.
  • darwinn pipe endpoint has been removed.
  • CUDA VPx decode for video is now available, if CUDA VPx decode is available in hardware, via the environment variable ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 .
  • On macOS, SSE 4.1 and 4.2 are now available from inside the Android guest.
  • On macOS, INVTSC is now enabled by default. This can improve accuracy of time measurements from the guest.
  • We now track which extended control pane was selected by the user in metrics.
  • Linux emulator now uses KVM paravirtualized clock when the guest kernel version is >= 5.4 (R system images or later).
  • Emulator now uses LZ4 to decompress guest kernels, making it compatible with the modern kernel pipeline.
  • Added console commands to obtain the emulator AVD directory, discovery file path in the Studio-embedded use case, and path to snapshots:

    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>
    
  • To make it easier to save vertical screen space, we've added an option to hide the device frame for the current AVD in Extended Controls > Settings . To globally hide device frames for all AVDs, we've made available the NoDeviceFrame feature flag, which can be activated via launching the emulator from the command line with -feature NoDevice frame, or to lock it in, adding NoDeviceFrame = on to ~/.android/advancedFeatures.ini (Create this file if it doesn't exist already).

  • Added a drop down item in cellular page to turn on and turn off meterdness support, this is a no-op for older system images that do not support the 5G meterdness toggle.

    • Also added console command for the same purpose: gsm meter on|off
  • Upgraded toolchain / build to C++17.

Fixes: embedded emulator

  • Clipboard should now work.
  • Fixed issue where uppercase characters were delivered as lower case characters in the emulator.
  • Fixed loading console token from a unicode path in windows.
  • Fixed SO_REUSEPORT error message on linux.
  • Fixed a snapshot corruption issue when sending snapshot commands through gRPC, as well as when pressing the snapshot save button in Android Studio embedded emulator.
  • When using the Linux emulator embedded in Studio, we found that if this is done through Chrome Remote Desktop, there is a bug where XDG_RUNTIME_DIR is not set and may cause the embedded emulator to fail to appear due to the emulator discovery files being placed in XDG_RUNTIME_DIR . You can check the status of the corresponding issue in the Chrome issue tracker .

    As a workaround, the emulator now falls back to using discovery files in a possibly-different directory that is based on user UID: /run/user/&lt;uid> .

  • Embedded emulator: Devices with rounded corners/notches now properly change their layout to make room for the corners and notch. This requires a cold boot of those emulators.

  • gRPC endpoint now supports sending SMS to the device.

General fixes

  • We've seen compatibility issues running the Windows emulator with Riot Vanguard active. The Windows emulator now detects Vanguard anti-cheat and pops up a warning message if Vanguard is detected.
  • Fixed FD_SETSIZE error on Windows. We now use WSAEventSelect() instead of select() for establishing non-blocking connections to loopback servers.
  • Added F16C CPUID feature support to Linux emulator with fixes issues running some ARM64 applications through NDK translation; macOS/Windows in progress.
  • Fixed gpx/kml route playback to follow timestamps.
  • Fixed bouncing icon on launch for MacOs.
  • If hw.audioInput=no and hw.audioOutput=no in config.ini , emulator audio is now properly disabled.
  • Fixed an issue where if the emulator window was minimized while the extended controls window was open but not active, the extended controls window would keep showing up when resizing the emulator window. We will completely remove the behavior (the case with active extended controls window) in a future update.
  • Fixed a flaky bug with Wi-Fi not connected when the emulator starts.
  • Fixed hang-on-exit when emulator issues shell commands with long or indefinite timeouts.
  • Updated pc-bios with fixes to better support large images passed to -initrd ; previous BIOS used a very inefficient method.
  • Fixed crash during termination when -wifi-server-port option is used.
  • The emulator now prints a warning if unsupported options are passed to -prop (Only qemu.* props are supported).
  • When building the emulator on Windows, there should be less chance of seeing flaky failures to write to files. For more information, see the Windows build instructions .
  • Disabled Zoom button for foldable AVDs, which was causing issues.
  • Emulator now correctly reports boot time coming from a device reboot.
  • Linux: In the case where there are insufficient KVM permissions, the emulator now prints debugging instructions more promptly.
  • Fixed issue where the emulator could not boot recent system images with no acceleration.
  • Fixed memory corruption or crash on start from a boot-completed detector.
  • Fixed memory leak during long screen recording sessions.
  • Emulator icons updated to reflect Studio 4.1 branding.
  • Added better support for detecting remote sessions on Windows.

Fixes: graphics and video decode

  • Fixed an issue where latest Asphalt 9 game rendered with a black screen.
  • Removed spam about flushing mapped buffer with NULL .
  • Fixed a race condition when tearing down Vulkan state when a guest Vulkan app exited.
  • Vulkan ASTC/ETC2 emulation shaders are now baked into the libOpenglRender library. This will be more reliable versus reading from the filesystem.
  • Fixed an issue in Vulkan where if running with a Vulkan 1.0 instance on the host, vkGetImageMemoryRequirements2KHR would incorrectly clear the returned VkMemoryRequirements2 struct's pNext field.
  • Fixed a memory leak in Vulkan renderer.
  • Fixed a recent regression where GLSL ES 1.00 shaders with variable names like isampler2D failed to compile.
  • Updated ANGLE shader translator with various fixes that address possible failure to compile shaders on Linux.
  • We now crash the emulator if the basic framebuffer blit shader fails to compile, in order to keep track of the phenomenon.
  • Updated ANGLE shader translator to keep up with upstream ANGLE. This fixed an issue around memory corruption when translating and constant-folding OpenGL ES shaders that used non-square matrices. The shader translator is now a separate shared library, libshadertranslator.dll .
  • Fixed an issue on Vulkan initialization on some GPU drivers, where certain 1.1 device functions were not found.
  • Vulkan: We've reverted back to using the prebuilt loader as favoring the system Vulkan loader caused issues in some setups; will figure out a better solution.
  • Fixed issue when using Vulkan external memory where it could have been imported mismatching memory type indices on the host.
  • Fixed issue in emulation of GL_ALIASED_POINT_SIZE_RANGE where the enum was not supported on the host.
  • Fixed issue where on some host GPUs, Skia shaders could not compile due to errors related to GL_EXT_shader_framebuffer_fetch .
  • Since our copy of the D3D9 ANGLE renderer was removed a few versions ago, we now also auto switch users who were on that renderer to d3d11 ANGLE if it was selected in the UI preferences.
  • More debug info has been added to WGL initialization on Windows in order to trace failures.
  • When hw.gltransport=virtio-gpu-pipe , performance is improved by not spinning on the host in transfers from host to guest.
  • Added more debug logging for when OpenGLES emulation fails to initialize.
  • Fixed an issue with Youtube videos flickering or not showing up on snapshot load.
  • Switched back to software decode for libvpx for now as we've seen issues with CUDA hardware decode of libvpx. If you have a supported CUDA hardware decode implementation on the host side, hardware decode of libvpx can be re-enabled via the environment variable ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 .

30.0.10 (April 30, 2020)

This update includes support for running the emulator directly in Android Studio and virtual devices with Freeform Window Mode activated by default.

Run the Emulator in Android Studio

The Android Emulator can now be run directly in Android Studio . Use this feature to conserve screen real estate, to navigate quickly between the emulator and the editor window using hotkeys, and to organize your IDE and emulator workflow in a single application window.

Freeform Window Mode

You can now create an AVD that has Freeform Window Mode enabled by selecting the 13.5” Freeform tablet hardware profile when creating a virtual device in Android Studio. This hardware profile requires a system image with Android 11 Developer Preview 3 or higher.

مسائل شناخته شده

Resizing freeform windows is currently broken due to issues transferring focus to the Window Manager. This will be addressed in a future Android 11 system image release.

30.0.0 (February 19, 2020)

This update includes Android 11 (API level 30) system images and improved performance when running ARM binaries.

Android 11 system images

You can now create an AVD that runs Android 11 by selecting either of the available API level 30 system images:

  • x86 : Includes both x86 and ARMv7 ABIs.
  • x86_64 : Includes x86, x86_64, ARMv7 and ARM64 ABIs.

Support for ARM binaries on Android 9 and 11 system images

If you were previously unable to use the Android Emulator because your app depended on ARM binaries, you can now use the Android 9 x86 system image or any Android 11 system image to run your app – it is no longer necessary to download a specific system image to run ARM binaries. These Android 9 and Android 11 system images support ARM by default and provide dramatically improved performance when compared to those with full ARM emulation.

مسائل شناخته شده

  • Some ARMv7 binaries fail to run on Android 11 x86 and x86_64 system images. Consider building for ARM64 when targeting Android 11.

29.0.11 (May 29, 2019)

This update includes the following improvements and fixes:

  • Windows: The emulator now relies on the libgcc DLL that we ship instead of being compiled with libgcc statically.
  • Linux: Added logcat support to the gRPC API. For more information about gRPC, see gRPC streaming emulator (Linux) .
  • The emulator now includes a headless build for 32-bit x86 guests ( qemu-system-i386 ). This feature enables x86 32-bit images for API levels 26 and lower to run with the headless build. Note that for 32-bit x86 guests with API 27 and later, the emulator uses the 64-bit engine ( qemu-system-x86_64 ) because in these system images, while the userspace is 32-bit, the kernel is 64-bit. Android Studio uses the kernel to select emulation engines.
  • You can now specify custom Qt library paths using the ANDROID_QT_LIB_PATH environment variable.
  • You can now run the emulator with previous binaries that use QEMU1 if the QEMU1 executables ( emulator[64]-[x86|arm|etc] ) are placed in the emulator directory.
  • Windows: Fixed an issue that could sometimes cause the emulator to fail to start with a "vCPU shutdown request" message.
  • Fixed an issue with an unnecessary pipeline barrier in emulated compressed textures in Vulkan.
  • Fixed an error that occurred with http proxy requests when chunked transfer encoding was used. For more information, see the commit details .

29.0.9 (May 7, 2019)

This update includes the following fix:

  • Windows: Fixed an issue where the virtual scene camera and webcam would not work on the emulator.

29.0.8 (May 6, 2019)

This update includes the following improvements and fixes:

  • Added support for multiple virtual hardware displays when there's a guest service to enumerate and set each display. Multiple virtual hardware displays will be included in a future emulator system image update.
  • Added a new command line option: -delay-adb . This option suppresses processing of ADB packets until the guest has completed booting (off a cold boot). This option helps resolve issues that could occur if you use the emulator in a CI environment that reboots the emulator and uses DDMS at the same time.
  • Fixed an error that occurred when snapshots are loaded where glIsRenderbuffer would return the incorrect value.
  • Fixed some issues with stale state when the Android guest reboots.
  • Windows: Fixed issues that prevented the emulator from starting when the Windows username had non-ASCII characters or spaces.

مسائل شناخته شده

  • The Snapshots UI is disabled for Automotive system images because snapshots aren't currently supported for these system images.

29.0.6 (May 1, 2019)

This update includes several new features, improvements to existing features, and bug fixes.

Removal of QEMU1 and 32-bit Windows support

To better maintain the emulator, we no longer ship QEMU1 and 32-bit Windows binaries. If you are using Windows 32-bit, you cannot upgrade to version 29.0.6.

Requirements for Android Q system images

If you want to run an AVD that uses an Android Q system image, you must now use version 29.0.6 (this release version) or higher.

Project Marble Improvements

This update continues our work on the Project Marble initiative that was announced at the Android Developer Summit in November 2018. For more information about other Project Marble improvements in previous releases, see Android Emulator: Project Marble Improvements .

For this update, most of our Project Marble efforts were dedicated to reducing emulator resource usage, such as reducing the emulator's CPU usage while idle. We've also included changes that make it easier to work with the emulator in a wider variety of environments, and we've addressed general quality issues.

The following sections describe the Project Marble improvements that are included with this update:

Improvements for host audio behavior

Starting with version 28.0.3, the emulator blocks audio input from the host by default.

If you want to use the host audio data, you can enable that option by going to Extended Controls > Microphone and enabling Virtual microphone uses host audio input . This option is automatically disabled whenever the emulator is restarted.

If you are using the command line, you can also enable host audio using the -allow-host-audio option, and you can use the following ADB commands to turn host audio data on or off, respectively:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

Improvements for headless emulator builds

Starting with version 28.0.25, the emulator includes a headless build option that can run without the UI. You can use headless builds to help you set up the emulator for Docker and continuous integration (CI) workflows.

With this update, we've made further improvements to allow the emulator to run with a minimum number of dependencies. On Linux, headless builds no longer include the pulseaudio or libX11 libraries. The system-dependent shared libraries that are not packaged with the emulator has been reduced to the following list:

  • 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

Upgraded Qt UI libraries to 5.12 LTS

This update includes the following improvements from the Qt 5.12 LTS release:

  • To avoid crashes in Qt's libpng decoding when starting certain system images, the emulator now uses its own copy of libpng to decode PNG images.
  • To address issues with some Linux installs containing incompatible versions of some Qt dependent libraries, we now package libfreetype , libsoftokn , libsqlite3 , and libxkbcommon with the emulator.
  • The emulator now uses the platform's native windowing libraries to get monitor dimensions, instead of using the Qt libraries that returned unreliable results.

Automatic CPU optimizations after cold boot

To address CPU usage, the emulator now runs the following ADB commands on a cold boot after it receives a boot complete signal:

adb shell settings put screen_off_timeout 214783647
This command increases the screen off timeout so the emulator can be used in battery mode without charging. In battery mode, background CPU usage is greatly reduced.
In AC charging mode, GMSCore background operations such as app updates can take over all the device's CPU cores—and by extension, the user's machine—with no warning.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
This command revokes microphone permissions for the Google search app, which greatly reduces background CPU usage on the home screen and in the launcher when the Google search app is active.
This command is run in addition to the emulator's default behavior of disabling host audio for the host. Furthermore, this automatically provides the CPU usage mitigation described for hotword detection from the 28.0.23 release.

New environment variables for performance monitoring

You can now use two new environment variables to enable detailed monitoring of the emulator's performance and resource usage.

SHOW_PERF_STATS=1
This environment variable enables tracking of both CPU and RAM usage. Tracking for RAM usage distinguishes between graphics usage and total resident memory.
ANDROID_EMU_TRACING=1
This environment variable enables printing every time an input or graphics operation takes a long time (longer than 1 ms).
We're also using this environment variable to help diagnose issues that Windows users have experienced with more jank (dropped frames) than users experience on macOS or Linux.

General Project Marble improvements

This update also includes the following general improvements that are part of the Project Marble initiative:

  • You can now immediately pause all vCPUs on the emulator via the following console commands:
    • adb emu avd pause
    • adb emu avd resume
  • Greatly reduced overhead of OpenGL drawing. This improvement reduces CPU usage while the emulator is playing animations.
  • Restored support for mainline QEMU's e1000 virtual network device. You can use this device to set up the emulator in a bridged network environment. In a bridged network environment, the emulator is shown on the host network and the host network is shown on the emulator.
  • QEMU 2.12-appropriate BIOS binaries are now used to start up the emulator.
  • Upgraded ffmpeg version to 3.4.5 for video encoding and decoding.
  • Greatly reduced overhead of QEMU main loop I/O on macOS by replacing the main loop that was based on select() with a main loop that is based on kqueue .
  • Logcat buffer size increased to 2 MB to address issues with flaky unexpected EOF when running logcat with the emulator.
  • The emulator now exports the LC_ALL=C environment variable by default. This change addresses crashes and incompatibility issues associated with running the emulator in different locales.
  • You can now track the CPU and RAM usage of the emulator using performance stats that you can access at Extended Controls > Settings > Advanced > Performance Stats . Use these stats to quickly diagnose issues if the emulator seems to be using too much CPU or RAM.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE now uses the host GPU's result instead of an emulated one. This change helps fix issues where images and assets do not display because of improper format for readback.
  • Added support for the OpenGL ES extensions GL_EXT_texture_format_BGRA8888 and GL_APPLE_texture_format_BGRA8888 if these extensions are supported by the host.
  • Added more diagnostic info to the Bugreport UI. In addition, you can access bug reports from the console using the following commands:
    • telnet localhost 5554
    • avd bugreport
  • On Android Q system images, the emulator increases its minimum RAM size to 2 GB.
  • Added more logging and printing whenever OpenGL or the hypervisor fails to initialize.
  • If the emulator cannot start a concurrent -read-only instance of an AVD, the emulator now attempts to relaunch the -read-only AVD 3 more times over 3 seconds. This change increases the likelihood that the emulator will be able to launch concurrent -read-only instances an AVD if other writable instances of that AVD are not done cleaning up stale files.
  • For upcoming system images, the emulator now supports Hardware Composer 2.0. This change should lower the driver overhead when running most animations.
  • The emulator build is now based on CMake/Ninja.
  • In the emulator extended controls UI, divider lines in the keyboard shortcuts table have been restored.
  • Users can now opt-in to provide our team with CPU and RAM usage metrics in a 10 second interval. We use these metrics to enrich our data about emulator resource usage with different use cases from our users, which allows us to make the emulator more efficient and responsive.

General Project Marble fixes

This update also includes the following general fixes that are part of the Project Marble initiative:

  • Fixed issues with twitching and incorrect frames that were displayed on systems with Intel GPUs when using Android Q system images.
  • Fixed issues where a black screen was displayed when using Android Q system images with Pixel 2 XL skins (or any skin that has a notch or rounded corners).
  • Fixed an issue where the -partition-size command line option would not set the data partition size.
  • Fixed an issue where pulseaudio on the Linx emulator would spin and take up an entire CPU core in some situations.
  • Fixed issues with out of bounds memory access when processing compressed textures.
  • Fixed GL errors that occurred on the host in glTexSubImage2D when updating certain gralloc buffers (with format RGB 565, RGB10A2, RGB(A)16F).
  • Fixed a display issue in Android Q system images with snapshots where the notification shade's geometry was rendered with an improper instance divisor setting.
  • Fixed a few hard-to-reproduce crash and freeze issues on launch that happened due to Qt losing signals or having flaky, inconsistent states on startup.
  • Fixed numerous concurrency issues. We are now able to build the Linux emulator with ThreadSanitizer (TSAN), which can easily uncover bugs that are otherwise difficult to reproduce.
  • For Linux users: we have found that on certain host kernels, the guest Android kernel can error out and exit in KVM with a generic hardware error. The emulator will now abort() when this happens in order to increase debuggability (previously, the emulator just hung).
  • For Linux users: for convenience with CI setups, you can use the new -stdouterr-file <file-name> command line option to redirect both stdout and stderr to a file.
  • Fixed an issue where SO_REUSEADDR was used incorrectly. For more information, see the commit details .
  • Fixed a long-standing issue with the Windows emulator where sub-processes, such as ADB commands, failed to start if the username had spaces in it.
  • Fixed an issue with missing initialization of RCU in HAXM vCPU threads. This fix can possibly address some crashes and race conditions.
  • Fixed a crash that happened with certain patterns of saving and loading snapshots from the snapshots UI using recent Android Q system images.
  • Fixed an issue where the virtual scene camera would be blank when the emulator was initialized from a snapshot if an AR macro was playing when that snapshot was saved.
  • Fixed an issue where some users with remote desktop setups got a black screen when launching the emulator on Linux. To avoid this, the emulator now explicitly configures MESA_RGB_VISUAL . For more information, see the commit details .
  • Fixed an issue where the rotate buttons would appear on TV AVDs.
  • Fixed an issue where if emulator was set always on top, the extended controls window appeared every time the emulator was rotated.

Hardware profiles for foldable devices

The emulator now includes hardware profiles for foldable devices. To use these new hardware profiles, you must be using Android Studio 3.5 Canary 10 or higher.

There are two foldable hardware profiles that you can use to create an AVD:

  • 7.3" Foldable: 1536x2152 unfolded, 4.6" 840x1960 folded
  • 8" Foldable: 2200x2480 unfolded, 6.6" 1480x2480 folded

When you run the emulator using one of these hardware profiles, you can fold and unfold the device using the fold and unfold actions in the emulator toolbar, console commands , or the following keyboard shortcuts:

  • Fold: Ctrl + F ( Command + F on macOS)
  • Unfold: Ctrl + U ( Command + U on macOS)

AR macros

The emulator now includes AR macros that can help you test common AR actions. For example, you can use a macro to reset all the device's sensors to their default state.

For more information, see Test common AR actions with macros .

Vulkan support (Windows, Linux)

Windows and Linux users can now test Vulkan apps with the Android Emulator up to Vulkan 1.1 when using a compatible system image (Android Q Beta 3 or higher for Vulkan 1.1, Android Q Beta 2 for Vulkan 1.0) and a compatible host GPU (this includes most Intel, NVIDIA, and AMD GPUs from 2014 and later).

To enable Vulkan support, you must add the following feature flags to your ~/.android/advancedFeatures.ini file (create the file if it doesn't exist):

  • Vulkan = on
  • GLDirectMem = on

Initial support for ROM developers

ROM developers who are building the sdk_phone_x86 or sdk_phone_x86_64 ( userdebug , eng variants) targets on AOSP master branch can now run a Vulkan-enabled emulator.

This support is still experimental and is mainly for developers who work on system images, drivers, and game engines. Many extensions are still missing. However, HOST_COHERENT memory is supported, and you should now be able to run the Vulkan API Tutorial Samples .

If you are using linux, you can try this by using the following commands:

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 rendering with Vulkan

NVIDIA and AMD GPUs that support Vulkan also support zero-copy interop with OpenGL via the GL_EXT_memory_objects extension. The emulator leverages this capability to provide a complete way to render the Android UI using the Skia Vulkan APIs.

If you have an NVIDIA or AMD GPU that supports Vulkan, use the following commands to test the Skia rendering with a compatible system image (Android Q Beta 3 and higher):

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

macOS support for Vulkan

macOS support is still experimental, but the emulator already includes the Swiftshader , MoltenVK , and libportability ( gfx-rs ) APIs. You can experiment with these APIs by setting the following environment variables:

  • Swiftshader: ANDROID_EMU_VK_ICD=swiftshader
  • MoltenVK: ANDROID_EMU_VK_ICD=moltenvk
  • libportability: ANDROID_EMU_VK_ICD=portability

مسائل شناخته شده

HAXM can sometimes fail to map Vulkan coherent memory to the guest and shuts down the emulator. This is addressed in an upcoming HAXM update.

gRPC streaming emulator (Linux)

We're always trying to make the emulator as versatile as possible by allowing host GPU rendering and interactivity in the widest range of running contexts. Our CI and remote desktop users have the following long-standing issues:

  • Programmatically sending input commands to the emulator involves either running adb shell commands that can experience high overhead, or using the telnet console, which is faster, but might not work with certain network configurations.
  • CI users often run emulators headless, which can make it difficult to notice issues that require the screen to be visible or interactive.
  • Remote desktop users often can't interact with the emulator when using host GPU rendering because GPU rendering is often tied to the host's non-virtual displays.

To address this, when running on a Linux machine, the emulator now serves a gRPC service. gRPC is a general framework for RPC that works over HTTP.

By default, the emulator gRPC service is disabled, but you can activate the service using the following command line option, where <port> is the port which the emulator should serve gRPC requests (usually 5556 ):

-grpc <port>

Once the service is started, gRPC commands can then be issued from clients. The current set of commands allows both sending input events and receiving screenshots. These commands help address the following issues:

  • Input commands can be sent to the emulator with low overhead over HTTP. HTTP also enables commands to be sent in additional network configurations.
  • Screenshot commands can be sent to query the current screen, even if the emulator is running headless. For interactivity, input events can also be sent back to the emulator.
  • Remote desktop users can run the emulator headless on the main display with GPU accelerated rendering while using gRPC to get screenshots and send input events in order to interact with the emulator.

For a complete list of the commands that are available, see this protobuf .

To help you get started with gRPC, we've provided some sample clients that you can refer to.

Currently, this includes the following samples:

  • A Go-based service that can be used to query emulator states.
  • A React app that demonstrates remote interactivity via screenshot and input RPCs. This sample requires protobuf version 3.7.0 or higher.
  • A Python sample that queries the emulator's VM configuration and then sends a series of commands.

28.0.25 (March 29, 2019)

This update includes the following improvements and fixes:

Headless emulator build

The emulator has been difficult to set up with Docker and other continuous integration (CI) workflows due to the implicit expectations of the system being able to support Qt along with its shared library dependencies (among other issues).

As a first step to address this, we've introduced a variant of the emulator launcher with QEMU executables that does not depend on Qt. On Linux, there is still a link to libX11 , but we hope to remove that soon as well.

To use the headless emulator, run the emulator from the command line as usual, but replace the emulator binary invocation with emulator-headless . For more information, see the 28.1.8 Canary release update.

  • Fixed twitching and incorrect frame display on Intel GPUs when running Android Q system images.
  • Fixed issues where black screen would display when using Android Q system images with Pixel 2 XL skins.
  • The latest BIOS binaries are now used to start up the emulator. This change can help reduce "vCPU shutdown request" errors that happen sometimes when launching the emulator on Windows.
  • Backported a fix for the "wrong display when resuming Android Q system images from a snapshot" issue .
  • Users were experiencing "unauthorized" emulators issues due to an incompatible change in ADB in platform-tools 28.0.2. You can now safely use ADB from platform-tools 28.0.2 with the emulator. If you are experiencing problems with "unauthorized" emulators, do the following troubleshooting steps:
    1. Exit all emulators.
    2. Delete both the ~/.android/adbkey and ~/.android/adbkey.pub files.
    3. Run the following command: adb kill-server
    4. Run the following command: adb devices
    5. Wipe the AVD data.
    6. Relaunch the emulator.

28.0.23 (January 29, 2019)

This update includes the following improvements and fixes:

Host audio input disabled by default

A recent post on Reddit detailed how the guest Android OS would always be using the host microphone's audio, and thereby allowing "Ok Google" to work unexpectedly. We're sorry about this and will work with the Android team to make sure hotword detection is disabled in the system image as well.

To address this, we've made the following changes:

  • Actual host audio data is now squelched by default. When the guest uses the microphone, silence is passed over instead of the host's audio.
  • If you want to use the host audio data, you can now enable that option by going to Extended Controls > Microphone and enabling Virtual microphone uses host audio input . This option is automatically disabled whenever the emulator is restarted.

Updates on CPU usage investigations

During our Project Marble investigations, we've noticed that high CPU usage on the emulator generally falls into the following three categories:

At idle: Automatic app updates in Play Store images

We found that at random intervals, all apps installed get updated, even when the user is not logged in. During the process, CPU usage is driven to the number of cores x 100% (typically ~400%) in GMSCore and dex2oat. You can mitigate this issue by disabling auto app updates in the Play Store app.

At idle: Hotword detection

When on the home screen and without any app foregrounded, there can be a great deal of CPU usage (~25% with spikes to 50%). This is caused by hotword detection that constantly pings the host. You cannot mitigate this issue by disabling host audio input because the CPU cost is primarily caused by the time that it takes to travel to the guest from the host. However, you can mitigate this issue by revoking microphone permissions from the Google app.

While active, sometimes at idle: Animations

The third source of high CPU usage is animations. We have found that by optimizing the graphics driver stack we can also reduce CPU usage even when the emulator is not idle. We will be rolling out graphics driver optimizations incrementally as part of Project Marble.

28.0.22 (December 21, 2018)

This update includes the following improvements and fixes:

  • Fixed a long-standing issue where in some settings, the Mac emulator would reboot or kernel panic on Quickboot save. ( Issue 120951634 )
  • When using a mapped file as the RAM snapshot, the emulator now unmaps the file mapping explicitly on exit.

28.0.20 (December 11, 2018)

This update includes the following improvements and fixes:

  • Fixed an issue on Windows that caused the emulator to freeze on snapshot load with certain models of Intel GPUs.
  • Fixed an issue that caused an unauthorized ADB device state when using a non-standard ANDROID_SDK_HOME location.
  • Fixed an issue on Windows that caused the emulator to crash when booting system images with CPU acceleration disabled.
  • Fixed the pixelated emulator display issue. Downsampling should now be working.
  • Fixed an issue on macOS 10.14+ where the virtual scene camera mouselook control could become too sensitive due to an interaction with new accessibility security settings.
  • Fixed an error in timezone calculation that could cause the emulator clock to sporadically change.
  • Fixed rendering errors in various cocos2d and Unreal engine apps.
  • Added support in the emulator for Wi-Fi peer-to-peer . Two emulators can now talk to each other directly via Wi-Fi if using the latest Pie Play Store image. To use Wi-Fi peer-to-peer, start two AVDs with the same -wifi-server-port and -wifi-client-port arguments:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Added support for more webcams on Windows by taking any incompatible frame sizes and dynamically resizing them to fit the camera setting in the Android guest.

28.0.16 (November 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Resource usage

The emulator now uses less RAM overall, especially when using system images with API level 28 or higher. These system images include improved memory usage for guest-side graphics drivers.

In addition, we have also improved resource usage in the following areas:

  • Reduced emulator memory usage during long-running tests. If you still experience issues with memory usage during long-running tests, please create an issue that describes your use case in Issue Tracker .
  • Reduced CPU usage when running apps with animations.
  • Fixed an issue where the QEMU AIO context could leak on Windows.

Run multiple instances of a single AVD concurrently

You can now launch multiple instances of the same AVD and run them concurrently. Instances that you launch after the first instance are read-only, and their changes to the guest virtual disk are discarded on exit.

To run multiple instances of the same AVD at the same time, launch any instances after the first instance from the command line using the -read-only flag.

This feature is made possible by copying the QCOW2 files associated with the writable parts of the Android image. To help you manage disk space, we have also bundled the qemu-img command line tool to allow you to pre-commit QCOW2 files before launching multiple instances.

In addition, when used in tandem with the File-backed guest RAM snapshots feature, multiple AVD instances share the primary AVD Quickboot snapshot as a common source of copy-on-write guest RAM. This property means that the instances share much of their RAM in common. Use this feature to run tests that require multiple devices to run in parallel.

We appreciate your feedback on possible use cases that are part of your normal interactive or CI workflow. Please create or upvote issues in Issue Tracker .

File-backed guest RAM snapshots

By pre-allocating and mapping guest RAM as a file, the emulator can now save Quickboot snapshots during runtime, instead of doing all of the work on exit. If you currently experience long save times when closing your emulators, enable this feature to improve your Quickboot performance. By default, a Quickboot snapshot is saved on exit and loaded again every time, like suspending and waking a real device.

Because Android guest RAM is now auto-saved by default, if you want to define a device state and repeatedly load from that state, you need to tell the emulator to discard changes after each session. You can do this in the following ways:

  • Use the -no-snapshot-save or -read-only flags when launching the emulator from the command line.
  • Go to Extended Controls > Snapshots > Settings and switch Auto-save current state to Quickboot? to No .
  • You will need to restart the emulator after selecting this option. If the emulator is set to auto-save, you can run the following command to set a checkpoint:
    adb emu avd snapshot remap 0
    
    After you run this command, the emulator Quickboot snapshot will stay at that checkpoint. Run the same command again to load the emulator from your checkpoint.

Snapshots that are taken and loaded through the Snapshots UI function as they did before, with no file mapping.

Because this is a large change to how Quickboot works, we would greatly appreciate your feedback on whether it improves Quickboot performance and what kind of issues you encounter when using it. If you experience problems, you can disable this feature by adding the following line to your ~/.android/advancedFeatures.ini file:

QuickbootFileBacked = off

When you start the emulator from a snapshot (either using the -snapshot command line option, or launching from a snapshot in the AVD manager) the emulator disables both auto-saving for Quickboot snapshots and saving Quickboot snapshots on exit. This reduces the chances that the Quickboot snapshot will be unintentionally overwritten, and avoids slow fallback paths that do not use file-backed Quickboot snapshots.

QEMU 2.12

We have rebased our variant of QEMU from QEMU 2.9 to QEMU 2.12. This update includes the following QEMU changes:

Here are some of the notable changes that impact the Android Emulator:

  • x86: gdbstub now provides access to SSE registers.
  • Disk images: Image locking is added and enabled by default. Multiple QEMU processes cannot write to the same image as long as the host supports OFD or posix locking, unless options are specified otherwise.
  • qemu-img: qemu-img resize supports preallocation of the new parts of the image.
  • QCOW2 shrinking now supported in qemu and qemu-img .

قابلیت دسترسی

  • Fixed issues with screen readers and added better support for these tools in the Screen Record and Snapshot UI.
  • Made the Quick Boot notification icons more accessible to users who are color blind.

گرافیک

  • Fixed an out-of-bounds memory access issue that could occur for OpenGL ES vertex array pointers.
  • Some older GPUs did not support OpenGL 2.1 or greater (which is required), or had other reliability issues. These issues could cause the emulator to crash on start, freeze, or be unusable on the default GPU setting. The emulator now automatically switches to the Swiftshader renderer if it detects that these GPUs are in use.
  • Fixed an issue that caused the emulator to not post the correct framebuffer if FBO != 0 was bound at the time of eglSwapBuffers .
  • Fixed issue where the virtual Android display would only show up in the top left corner. We believe this was due to misconfigured Qt environment variables. The emulator now overrides all Qt scaling-related environment variables.
  • Fixed an issue where the emulator crashed in some situations when loading GLES1 apps from a snapshot.
  • Fixed concurrency issues in OpenGL and launching render threads that could result in double frees or corrupted data.
  • Android Emulator now supports ASTC LDR compressed texture support ( GL_KHR_texture_compression_astc_ldr ) for system images that use API level 28 or higher.
  • Most modern GPUs should now be able to launch the emulator with OpenGL ES 3.x enabled by default without using the GLESDynamicVersion feature flag.
  • -gpu guest (software rendering in the guest) has been deprecated. System images for API level 28 or higher now automatically switch to using Swiftshader instead ( -gpu swiftshader_indirect ).
  • If the emulator is launched from the command line using the -no-window flag, the default renderer is now Swiftshader.

مکان

  • The emulator can now update bearing along with latitude and longitude position. The magnetometer virtual sensor adjusts itself dynamically to magnetic north by inferring motion when playing back a GPX or KML file.
  • Device speed can now be set on the Location page.
  • When playing back a GPX or KML file, the speed is set automatically, and is set to zero when the playback ends.
  • The altitude is no longer restricted to being between -1,000 and +10,000 meters.
  • Fixed an issue where the virtual GPS location would not be updated periodically unless the Extended Controls window was opened at least once.

دوربین

On Windows, more webcams are now supported because the emulator dynamically resizes the camera frames that are delivered from the webcam. This feature also prevents errors in frame delivery from causing the emulator to hang.

فروشگاه Play

To address issues with running out of disk space on Play Store images, the emulator now automatically resizes the userdata partition to 6 GB when running with a fresh Play Store AVD.

General quality improvements and fixes

  • Some users reported that the emulator has been running slow. We identified one possible cause where the temp directory for the emulator ends up with too many stale files inside. As a workaround, the emulator no longer stores ADB liveness check files in that directory. However, it may also help to delete the contents of that folder. The folder is located in one of the following locations, depending on your operating system:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS or Linux: /tmp/android-<username>/*
  • If the emulator is unable to start due to insufficient free RAM, an error message is now displayed. If you are on Windows and notice that there is RAM free, but you are still unable to start the emulator, the commit charge may have been exceeded. For help with this issue, see the emulator Troubleshooting page .
  • The -sysdir command line option now properly overrides the inferred system image directory.
  • Virtual modem now supports the model activity info +MAI query.
  • Fixed various issues with memory leaks, memory corruption, and CPU usage. If you are experiencing crashes, memory leaks, or other high resource usage, please create an issue in Issue Tracker .
  • Fixed an issue that reappeared on macOS 10.14 where using Bluetooth headsets with the emulator would degrade audio globally. To prevent this, the emulator now avoids using Bluetooth audio when running on macOS. ( Issue 37070892 )
  • Fixed an issue on Windows where the emulator clock would not be in the correct timezone.
  • Fixed emulator slowness and hangs on Linux systems with spinning harddrives (HDDs).
  • Fixed some compile warnings that could lead to stack corruption on macOS.
  • Fixed issues that could result in misleading reports of hanging.
  • Fixed an issue with destroying thread pools that could cause a crash if one of the threads was not successfully created.
  • Fixed an issue on macOS where timers would become unreliable, leading to hangs and other strange behavior. If you experience emulator hangs on macOS, please create an issue in Issue Tracker .
  • Fixed an issue where closing the emulator would disable the UI, but not actually close the emulator.
  • Fixed issues involving sporadic crashes, including an abort due to opening too many instances of /dev/urandom .
  • Fixed an issue that caused the emulator to fail to start after the first time if ADB was terminated forcefully.
  • The MIPS build has been removed. If you still require MIPS, please create an issue in Issue Tracker .
  • Fixed an issue where ADB connections could become corrupt on snapshot load.
  • Fixed an issue where the emulator window would have an afterimage or teleport offscreen when resuming a snapshot where the device orientation was different from the AVD's default orientation.
  • Fixed issues involving crashes when saving snapshots.
  • On Linux, btrfs filesystems can cause extreme slowdowns because the emulator automatically saves snapshots and uses copy-on-write for its virtual disk devices. We recommend cleaning out the ~/.android/avd directory and running the following command on the empty ~/.android/avd directory:
    chattr +C
    
    This creates new snapshots in a folder where copy-on-write is disabled.

HAXM 7.3.2

We would like to mention HAXM 7.3.2 again because it must be installed in order for recent system images to run properly on the emulator. HAXM 7.3.2 should already be available in the Stable channel, and can also be installed manually from https://github.com/intel/haxm/releases .

Here are a couple of the issues that this version of HAXM resolved:

  • Fixed random crashes of guest OSes that use a recent Linux kernel (>= 4.6). For example, Ubuntu 18.04 ( #39 , #74 ).
  • Fixed an x86 instruction emulator bug that could lead to a host crash ( #93 ).

32-bit Windows deprecation

Due to low usage and high maintenance costs, we are planning to deprecate the 32-bit version of the Android Emulator that runs on Windows. We will roll out a transition plan before removal and end-of-life for the 32-bit version of the Android Emulator. However, we are actively seeking any feedback or concerns with this future change.

Please let us know in Issue Tracker if you currently rely on the 32-bit version of the Android Emulator that runs on Windows and tell us how we can best work with you going forward.

27.3.10 (August 2018)

This update includes the following bug fix:

RAM size configuration fix

Some users reported that the emulator has been running slow. We identified one possible cause where the AVD RAM size in the AVD's config.ini file was being set incorrectly.

To mitigate this, the emulator increases the minimum RAM level for images that use API level 26 or higher to the Android Studio default level of 1536 MB. If your AVD's config.ini file is not listing hw.ramSize in megabytes, please create an issue in Issue Tracker . You can find the config.ini file in the following location:

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

27.3.9 (July 2018)

This update includes the following improvements and bug fixes:

Improved error messages for Windows Hypervisor Platform

Some users were having difficulty diagnosing why the Windows Hypervisor Platform (WHPX) failed to initialize when they activated a WHPX emulator. To help you diagnose these issues, we have added more informative error messages. You can enable these error messages by running the emulator from the command line using the -verbose flag.

General fixes

  • Fixed OpenGL errors that occur when loading a snapshot in the camera app.

27.3.8 (July 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Snapshots

You can now save multiple AVD snapshots for a given device configuration and choose which of the saved snapshots to load when you start the emulator.

Starting with Android Studio 3.2 Canary 13, each device configuration includes a control in the advanced settings in the Virtual Device Configuration dialog with which you can you can specify which AVD snapshot to load when starting the AVD.

To accommodate this expansion of the snapshot features, we have added a Snapshots category to the Extended controls dialog. This new pane contains controls for saving and loading AVD snapshots, including the controls for saving and loading the quick-boot snapshot that had previously been in the Settings pane.

You can edit the name and description of each saved snapshot.

For details, see Snapshots .

HAXM 7.2.0

HAXM 7.2.0 is now available in all channels.

This update includes bug fixes and improved support for large amounts of RAM. Also, with this HAXM update and Emulator 27.3 and later, snapshots load their contents into RAM on demand rather than loading the entire snapshot when the virtual device starts. This change should greatly decrease the time needed to load a snapshot.

For details, see Configuring VM acceleration .

27.2.9 (May 2018)

This update includes several new features, improvements to existing features, and bug fixes.

Screen recording

You can now record video and audio from the Android Emulator and save the recording to a WebM or animated GIF file.

The screen recording controls are in the Screen record tab of the Extended Controls window.

Tip: You can also open the screen recording controls by pressing Control + Shift + R (Command + Shift + R on Mac).

To begin screen recording, click the Start recording button in the Screen record tab. To stop recording, click Stop recording .

Controls for playing and saving the recorded video are at the bottom of the Screen record tab. To save the video, choose WebM or GIF from the menu at the bottom of the tab and click Save .

You can also record and save a screen recording from the emulator using the following command on the command line:

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

اسکرین شات ها

You can take screenshots from the command line with either of the following commands:

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

Screenshots are saved in PNG format.

Virtual scene camera and ARCore

Developing and testing augmented reality apps (AR) with ARCore is now even easier with the new virtual scene camera, which allows you to experiment with your AR experience within a virtual environment.

For information on using the virtual scene camera in the emulator, see Run AR apps in Android Emulator .

Google Play Store on Pixel device images

The Google Play Store is now enabled for Pixel and Pixel 2 device images. This is indicated in the AVD Manager in Android Studio 3.2 and later with the Google Play logo in the Play Store column. AVDs with Google Play Store enabled have a Google Play tab in the Extended controls dialog that provides a convenient button for updating Google Play services on the device.

Snapshots

You can now load a Quick Boot snapshot without restarting the emulator. To load a snapshot, open the Extended Controls window to the Settings page and click the Load Now button.

We have made many improvements to the loading and saving of snapshots to improve efficiency of resource usage and to minimize the time that each operation takes. If you still experience unusually long saves, please file an issue , providing details of your CPU, RAM, and settings of any antivirus / firewall / security software that is running.

Rendering with Skia

When using images for API 27 or later, the emulator can render the Android UI with Skia , which can render more smoothly and efficiently.

For now, use of Skia requires that you explicitly enable it.

To enable Skia rendering, use the following commands in adb shell:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

دوربین

On Windows, Android Emulator now uses Media Foundation as the webcam back end, which greatly improves performance and frame rate for webcam capture, up to 720p 30 FPS.

On Mac, you can now use webcam0 and webcam1 together.

متفرقه

The -phone-number-prefix command-line option has been changed to -phone-number [number] , which allows setting of the full phone number.

You can now use alphanumeric SMS addresses.

رفع می کند

  • The Linux version of the Android Emulator is now built using a modern Clang C++ toolchain. This change fixes the issue of the emulator failing to start due to libGL and libstdc++ errors.
  • Fixed several causes of crashes and hangs.
  • To avoid crashes and hangs caused by not having enough free disk space, the emulator now checks for sufficient free disk space on startup, and will not start unless at least 2 GB is free.
  • Fixed an issue that prevented some Unity games from rendering.
  • Fixed DNS issue that caused the emulator to be unable to connect to the network.
  • Fixed an issue that caused changes to the internal storage allocated to an AVD through the Virtual Device Configuration dialog to not work.
  • Fixed an issue of many adb processes being created and not properly shut down.
  • Fixed an issue that caused the rotate buttons and other parts of the UI to become unresponsive unless the Extended controls window was open.
  • Fixed an issue that caused copy and paste from the host to not work unless the Extended controls dialog was opened at least once.
  • The frameless emulator's resize rectangle has been updated to better follow the emulator's visual theme.
  • Telephone and SMS are now properly deactivated when airplane mode is on.
  • Fixed an issue that caused SMS and cellular functionality to be disabled after loading a snapshot.
  • You will no longer receive false warning messages saying “Unable to open... \pstore.bin. Permission denied.”
  • Fixed an issue that prevented re-positioning the AVD on some Mac screens.
  • Fixed issues with flickering and blank screens on newer MacBook Pro computers when running AVDs with Pixel 2 XL skins.
  • Fixed issues with blank screens when switching into zoomed mode while a frameless emulator was active.
  • Fixed an issue that caused the device skin and emulator contents to scroll out of sync when zoomed in.

If you are still experiencing hangs or other instabilities, please file an issue .

27.1.12 (March 2018)

This update includes fixes for the following issues:

  • Bluetooth audio quality degraded after starting the emulator. ( Issue 37095756 )
  • Locations sent to one emulator were sent to all of them. ( Issue 73450633 )
  • GPS location set using the console was overridden by values set using Extended Controls > Location in the graphical user interface. ( Issue 73471760 )

If you are still experiencing hangs or other instabilities, please file an issue .

With this update, a current system image, and a preview version of Android Studio, you can use Android Emulator to run augmented reality applications built with ARCore. For detailed requirements and instructions, see Run AR apps in Android Emulator .

27.1.10 (February 2018)

  • Camera capture resolution

    720p frames can now be captured from an attached webcam.

    To work with Android 8.1 (API level 27) and higher system images, any attached webcam must have the capability to capture 720p frames.

  • رفع می کند

    • Fixed an issue that caused webcam capture to sometimes output a distorted or all-green image.
    • Fixed an issue that made it possible to see the following message even when there was no actual hang: "emulator: ERROR: detected a hanging thread 'Qt event loop'. No response for 15000 ms".

If you are still experiencing hangs or other instabilities, please file an issue .

27.1.7 (February 2018)

  • Frameless emulator window:

    By default, emulators with device skin files are now shown without a surrounding window frame. To show the surrounding window frame, enable Show window frame around device in the Settings pane of the Extended Controls window.

  • Quick Boot improvements to make working with AVD snapshots more efficient:

    • You can save an AVD snapshot at any time using the Save Now button in the Settings pane of the Extended Controls dialog box.
    • The emulator reduces the time that it takes to save a snapshot in many cases by saving only the difference between the current state and the previously saved snapshot.

    For details, see the Quick Boot documentation.

  • The emulator has been updated to use QEMU 2.9.

    Some notable improvements include the following:

    • Optimized I/O and finer-grained I/O thread locking for greater performance.
    • Fixed bugs since QEMU 2.8 (26.1.4).
    • New implementation of the HAXM back end.

    See the full list of changes in the QEMU 2.9 change log .

  • Swiftshader implementation conforming to OpenGL ES 3.0:

    The emulator's Swiftshader renderer now conforms fully with OpenGL ES 3.0. For details of the Swiftshader renderer, see the Settings > Advanced section of Extended Controls .

  • رفع می کند

    • Fixed an issue where clipboard sharing was not working unless the Enable clipboard sharing option was toggled off and on.
    • Fixed a hang when using the Swiftshader rendering back end with low-resolution AVDs.

27.0.5 (January 2018)

  • ANGLE for rendering on Windows is now disabled by default.

    If ANGLE works better for you, you can re-enable it with command line flag -gpu angle_indirect . Or, open the Extended controls window, navigate to Settings > Advanced , and select ANGLE D3D11 for the OpenGL ES renderer setting.

  • Fixed an issue where Shift+B does not type a capital B character.

27.0.2 (December 2017)

  • New Quick Boot feature provides faster emulator start times, based on a snapshot of your AVD instance.

    Quick Boot is enabled by default for all AVDs. Although the first time you start an AVD it must perform a cold boot (just like powering on a device), all subsequent starts are fast and the system is restored to the state at which you closed the emulator (similar to waking a device).

    If you want to control when the emulator saves a snapshot, open the emulator's Extended controls window and click Settings . Here, you can select one of the following settings for Save quick boot state on exit :

    • Yes : Always save quick boot snapshot when you close the emulator. این پیش فرض است.
    • No : Never save quick boot snapshot; always perform a cold boot.
    • Ask : Prompt whether or not to save quick boot snapshot when you close the emulator.

    Your selection applies only to the currently open AVD.

    For more information, see the Quick Boot documentation .

  • Added support for Mac OpenGL ES 3 (for system images using API level 24 and higher, Google APIs, and the x86 ABI).

  • For added stability in OpenGL ES 2+ apps, emulator now uses OpenGL core profile if available.

  • New options for rendering with Swiftshader / ANGLE:

    • -gpu swiftshader_indirect : Faster, more stable variant of Swiftshader that works with Quick Boot.
    • -gpu angle_indirect (Windows only): More stable variant of ANGLE D3D that also works with Quick Boot.

    The older -gpu swiftshader and -gpu angle options are now deprecated. In the Extended controls window, the "SwiftShader" and "ANGLE" options for the OpenGL ES renderer setting in Settings > Advanced now use the *_indirect variants.

  • Various other bug fixes.

26.1.4 (August 2017)

This is a minor release with bug fixes and the following improvements to GPU configuration:

  • Enable boot animation when running on ANGLE renderer
  • Disable GLES3 when running on ANGLE renderer

26.1.3 (August 2017)

This is a minor release with bug fixes, performance improvements, and small feature changes.

  • This version is now required to use the latest Android 8.0 system images. They are Treble-compliant , featuring separate vendor.img partitions.
  • New HAXM 6.2.0 now available (check the SDK Manager) and includes the following updates:
    • Improved memory usage. The peak working set of memory pinned by HAXM is no longer equal to the size of the AVD's RAM; instead, memory is paged in on demand. This should help the emulator run more reliably on machines with lower amounts of RAM.
    • The emulator with HAXM 6.2.0 can now boot faster on macOS, skipping a lengthy initialization phase.
  • Improvements to GPU configuration
    • Fixed issues with black screen on boot when performing guest-side software rendering by falling back to host-side software rendering with Swiftshader. Latest revisions of system images for API levels 19 - 25 with Google APIs should have working guest-side rendering.
    • Fixed an issue where the emulator was switched to a software renderer due to detecting the presence of older Intel GPUs, but the emulator was actually running on a discrete GPU. Which GPUs will be switched to use ANGLE or Swiftshader rendering is determined as follows:
      • Older Intel iGPUs have driver issues on both OpenGL and ANGLE D3D drivers. Users with Intel HD Graphics 3xxx and older will use Swiftshader.
      • Some users reported the inability to use API level 25 images because of a bug in which "Pixel Launcher keeps stopping." This seems to be a driver issue in some Intel HD 4xxx models. So they will be switched to use ANGLE automatically.
    • For best results with GPU emulation, we recommend either to use a discrete NVIDIA or AMD GPU, or a newer Intel GPU (Iris, HD 5xxx, HD 5xx/6xx).
    • Fixed an issue where the emulator would fail to start (OpenGL emulation failed to initialize) if the AVD was configured with hw.gpu.mode=host and the emulator was launched in a remote desktop client.
    • Clarified "OpenGL ES API level (requires restart)" settings; added an option to downgrade from OpenGL ES 3 to OpenGL ES 2 if experiencing issues or needing to test on lower OpenGL ES API levels.
    • Mesa renderer is deprecated; hw.gpu.mode=mesa will now be automatically switched to use Swiftshader on the host.
  • Improvements for macOS:
    • The emulator is now fully compatible with macOS 10.13 High Sierra through either Hypervisor.Framework or HAXM 6.2.0.
    • Hypervisor.framework is now enabled by default on macOS for 32-bit x86 images to improve performance and macOS compatibility. If you experience issues with it specifically, please file a bug report and append HVF = off to ~/.android/advancedFeatures.ini (create this file if it doesn't exist).
    • Fixed issues with no internet / failure to attach debugger while using Hypervisor.framework.
    • To enhance compatibility and performance of webcam capture, the QTKit-based camera capture has been replaced with a buffered one based on AVFoundation.
  • Added support for Wi-Fi in some system images (currently only API level 25). An access point called "AndroidWifi" is available and Android automatically connects to it. Wi-Fi support can be disabled by running the emulator with the command line parameter -feature -Wifi .
  • Some users raised the concern that the fixed-size Play Store system images did not have sufficient storage. As such, we've increased the size to 2 GB by default (up from 800 MB).
  • Added a keyboard shortcut (Ctrl+Shift+U) to open the bug reporting UI page directly from the settings page.
  • Fixed an issue where if an older CPU with Intel x86 EPT but without UG was used, the emulator would fail to boot if more than one core was configured.
  • Fixed an issue where HyperV would be improperly detected if the emulator was itself running in a Xen hypervisor.
  • Fixed an issue where the emulator would crash on start in some Linux configurations.

26.1.2 (July 2017)

This release includes new features and performance improvements.

  • Added the ability to define a custom HTTP proxy configuration in the extended controls (click More, and then click Settings and Proxy ). By default, the emulator uses the Android Studio HTTP proxy settings, but this screen allows you to define a manual proxy configuration.

  • Added VNC support for guest mode GPU so emulator can be remotely viewed and controlled. For example, you can launch the emulator and let VNC listen to port 5901 as follows:

    1. Execute: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. Open a VNC viewer, such as tightvnc viewer, to connect to port 5901.

      • To use Mac's built-in screen sharing client, a VNC password is required when launching the emulator. To set a password, use this command:

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

        And then enter change vnc password into the console, and enter a password.

    Android O is not currently supported for VNC mode.

  • Added a File a bug button in the extended controls Help screen (Click More, and then click Help and Emulator help ). Clicking File a bug opens a dialog where you can see the bug report details such as the screenshot, the AVD configuration info, and a bug report log. You can then save the report for yourself or report emulator issues .

  • Added gyroscope sensor to emulator and virtual sensors panel. This requires a system image with gyroscope support to work (currently API level 24 and 25).

  • Added host-preferred DNS to Qemu DNS list on Windows, when multiple virtual network interfaces on the host introduce multiple DNS addresses which are not functional for the emulator.

  • Added experimental macOS Hypervisor.Framework support for 32-bit x86 images on macOS 10.10+ through server flags, which should improve boot time and performance.

    • If you experience problems with it, add the line HVF = off in ~/.android/advancedFeatures.ini .
  • OpenGL ES 3.x is now enabled by default for system images and host GPUs that support OpenGL ES 3. Currently, only Android O (API level 26) and Windows/Linux hosts support OpenGL ES 3.

    • If you experience problems with OpenGL ES 3, add the line GLESDynamicVersion = off in ~/.android/advancedFeatures.ini .
  • Emulator now uses offscreen OpenGL FBOs for all rendering except final display image posting, which should help with color consistency issues across platforms.

  • After collecting data on sudden emulator slowdown issues, we have determined that the problem may have to do with some interaction between older Intel OpenGL drivers and Windows updates. As such, users with Intel HD 4000, 3000, 2000 (and related GPUs) now have rendering set by default to either a D3D renderer (ANGLE) or Swiftshader (software renderer).

26.0.0 (March 2017)

This release is compatible with API level 26. It also includes a number of performance improvements and bug fixes.

Minor revision 26.0.3 (May 2017)

  • Adds online-updateable feature flags for quickly addressing issues stemming from problematic hardware configurations. This allows Google to roll out fixes and features that are dependent on user configurations by updating server-side flags. If you notice issues with specific hardware, please report a bug so we can investigate the problem.
  • New support for rotary input for Android Wear API level 25 system images. To emulate the rotary input dial on a Wear device, click the Rotary Input tab on the extended window.
  • The Crash Reporting dialog is now resizable and no longer resets When to send crash reports to Ask without input.
  • The 32-bit emulator now requires that the maximum AVD RAM size be less than or equal to 512 MB, in order prevent the emulator from running out of room in the 2 GB virtual address space.
  • Adds support for absolute paths in emulator images.
  • Adds a new tab in the extended window for Google Play Store images that displays the Play Services version and a button to check for updates to Play Services.
  • Adds a dropdown to select the OpenGL renderer on the Emulator Settings page. If you are experiencing issues with the OpenGL driver on a Windows machine, try using the ANGLE (D3D11) or ANGLE (D3D9) options (requires a restart). If you are experiencing issues with the OpenGL driver on a non-Windows machine, try using the Swiftshader software renderer (requires a restart).
  • Fixes a rare crash on exit when the emulator receives both exit and minimize commands.
  • Fixes a scaling issue when changing displays on a Mac machine. ( Issue 268296 )
  • Fixes an issue where the emulator takes 300% of the CPU and holds it after resuming the host computer from sleep or when the emulator has been running for a long time.
  • Fixes a crash when the emulator is shutting down.

Updates with HAXM v6.1.1 (March 2017)

Note: HAXM v6.1.1 is available for Mac users through the SDK Manager as of March 30th, and will be available for Windows users soon.

Version 26.0.0 of the Android Emulator supports HAXM v6.1.1, which includes the following updates:

  • Enables Performance Monitoring Units (PMU) emulation. ( Issue 223377 )
  • Fixes coexistence with VirtualBox and Docker on Macs. ( Issue 197915 )
  • Revises the installation error message displayed when the installer fails to detect Intel VT-x on Windows, usually because Hyper-V is enabled.
  • Adds support for accelerating the Android Emulator in a Hyper-V-based Windows VM. This update requires that the host Hyper-V instance (the one that manages the Windows VM/guest) use the latest version of Hyper-V with nested virtualization enabled. Hyper-V must be disabled in the guest Hyper-V instance (the Windows VM).

وابستگی ها

  • Android SDK Platform-Tools revision 25.0.4 or later.
  • Android SDK Tools revision 26.0.0 or later.

New features and bug fixes

  • Compatible with API level 26.
  • Fully GLES 2.0 compliant. Given a host GPU that has conformant desktop OpenGL drivers, the emulator now passes 100% of the Android CTS dEQP-GLES2 mustpass list . This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images.
  • Improved video playback performance. The emulator now stores all video color buffers in host/guest shared memory and performs necessary final YUV to RGB conversion in the GPU. 1080p30 should be well within reach of most systems now. This has been released for API level 24 x86 images (revision 11 and higher) and will soon be included for all system images.
  • The emulator now correctly unregisters itself from the adb devices list on exit and closes open TCP ports on Linux machines.
  • adb connections are now more reliable. A running emulator is detected faster and doesn't go into “offline” or “unauthorized” status anymore.

25.3.0 (March 2017)

As of this release, the Android Emulator will be released separately from the SDK Tools. This release contains a variety of performance improvements, new features, and bug fixes.

Minor revision 25.3.1 (March 2017)

  • Fixed a crash occurring on some GPU configurations by disabling GLAsyncSwap by default. This feature was added in 25.3.0 to improve frame timing and frames per second for games and video, but causes the emulator to fail on some unknown machine configurations. You can manually enable it by opening the android_sdk /emulator/lib/advancedFeatures.ini file and setting GLAsyncSwap = on .

وابستگی ها

  • Android SDK Platform-Tools revision 24 or later.
  • Android SDK Tools revision 25.3.0.

New features and bug fixes

  • Updated emulation engine to QEMU 2.7, including all recent bug fixes, improved performance, and new features.
  • New IPv6 support.
  • The emulator now uses SwiftShader as a pure software renderer on the host.
  • Android Pipe performance improvements: Android Pipe, the main communication channel between the emulator and Android OS, is now an order of magnitude faster, has lower latency and offers better multi-threaded performance. This causes a number of performance improvements for the emulator, including:
    • Improved ADB push/pull speed.
    • Better 3D acceleration support.
    • Increased overall responsiveness of the emulator.
    • Improved graphics performance.
  • The emulator now uses GPU-side buffers (glBindBuffers / glBufferData) when the guest requests them, decreasing CPU overhead in some apps.
  • Improved audio support.
  • Faster disk I/O: The emulator now uses separate threads to dispatch disk I/O, resulting in lower latency and better throughput (~1.5x sequential I/O speed, ~5x random access I/O speed). This also reduces the number of flushes to disk, resulting in much lower physical device load.
  • The emulator now uses sparse files for disk boots on Windows machines, speeding up both first boot and "wipe-data" boots. When creating or resetting an AVD, the emulator now writes 100-200 MB of data to disk, instead of 2 GB or more.
  • Various GUI enhancements:
    • The emulator now uses Qt 5.7.0, which includes bug fixes and performance improvements.
    • UI initialization no longer attempts to load all emulator executables as Qt plugins, so it's dramatically shorter, especially on HDDs.
    • UI interactions are now faster and smoother, including rotation, window resizing, and extended controls window loading and closing.