एम्युलेटर की जानकारी

Android Emulator, Android Studio में शामिल होता है.

इम्यूलेटर के 25.3.0 से पहले के वर्शन, Android SDK टूल के हिस्से के तौर पर डिस्ट्रिब्यूट किए गए थे.

यह पक्का करने के लिए कि आपके पास नया वर्शन हो, अपडेट के लिए एसडीके मैनेजर देखें.

Android Emulator के पिछले वर्शन डाउनलोड करने के लिए, Emulator का डाउनलोड संग्रह देखें.

25.3.0 से पहले के Emulator वर्शन के रिलीज़ नोट देखने के लिए, Android SDK Tools के रिलीज़ नोट देखें.

Android Emulator के सबसे नए वर्शन में ठीक की गई समस्याओं के बारे में जानने के लिए, बंद की गई समस्याएं देखें.

पहले से मालूम समस्याओं और उन्हें हल करने के तरीके जानने के लिए, कृपया एम्युलेटर से जुड़ी समस्याएं हल करना लेख पढ़ें.

36.3.10 स्टेबल (4 दिसंबर, 2025)

  • [बग ठीक किया गया]समस्या #452843321 Android API 34 और उसके बाद के वर्शन पर, एम्युलेटर में बड़ी फ़ाइलें पुश करने पर परफ़ॉर्मेंस खराब हो जाती है.

  • वीडियो कोडेक के जीपीयू टेक्सचर मोड में चलने पर, Vulkan कंपोज़िशन क्रैश होने की समस्या ठीक की गई.

  • -debug-events के साथ चलाने पर, टचस्क्रीन इवेंट पर एम्युलेटर क्रैश होने की समस्या ठीक की गई.

36.2.12 पैच (13 अक्टूबर, 2025)

  • सॉफ़्टवेयर रेंडरिंग मोड में Vulkan ऐप्लिकेशन लॉन्च करते समय, Windows पर क्रैश होने की समस्या को ठीक किया गया

36.2.11 स्टेबल वर्शन (9 अक्टूबर, 2025)

  • एम्युलेटर से HAXM की सुविधा हटा दी गई है. HAXM का इस्तेमाल करके एवी़डी़ बनाने की कोशिश करने पर, आपको एक बैनर दिखेगा. इसमें हाइपरवाइज़र मौजूद न होने की जानकारी दी गई होगी. साथ ही, AEHD इंस्टॉल करने के लिए एक ऐक्शन लिंक दिया गया होगा.

    HAXM की मदद से नया एवीडी बनाने की कोशिश करने पर दिखने वाला बैनर HAXM को अनइंस्टॉल करने के बारे में जानकारी के लिए, HAXM अनइंस्टॉल करना लेख पढ़ें.

  • ड्राइवर क्रैश होने से रोकने के लिए, यह पक्का किया गया है कि Intel GPU, OpenGL ES 3.0 का इस्तेमाल करे

  • [बग ठीक किया गया]समस्या #340322888 डिवाइस में जगह खाली न होने पर, AVD शुरू नहीं किया जा सकता

  • [बग ठीक किया गया]समस्या #150758736 एम्युलेटर में टीसीपी कनेक्शन पर, कभी-कभी एक बाइट का डेटा मिट जाता है

  • [बग ठीक किया गया]समस्या #434774381 i7-11850H पर WHPX का इस्तेमाल करके Windows 11 पर, API 36 और 35 (शायद इससे ज़्यादा) के लिए क्विक बूट के बाद गेस्ट कर्नल क्रैश हो गया

36.1.9 स्टेबल (31 जुलाई, 2025)

  • [बग ठीक किया गया]समस्या #419157428 उपयोगकर्ता नाम या एवीडी पाथ में UTF-8 वर्णों की वजह से, एम्युलेटर शुरू नहीं हो सकता

  • [गड़बड़ी ठीक की गई]समस्या #423670833 btrfs फ़ाइल सिस्टम पर Android Emulator क्रैश हो जाता है

  • ध्यान दें: अगर आपको X11 पर एम्युलेटर लॉन्च करने में समस्याएं आ रही हैं, तो सॉफ़्टवेयर रेंडरिंग का इस्तेमाल करें. सॉफ़्टवेयर रेंडरिंग को कॉन्फ़िगर करने का तरीका जानने के लिए, ग्राफ़िक ऐक्सेलरेटर कॉन्फ़िगर करना लेख पढ़ें.

35.6.11 स्टेबल वर्शन (24 जून, 2025)

  • XR Emulation के लिए, Windows और Linux पर AMD और Nvidia GPU के साथ काम करने की सुविधा को बेहतर बनाया गया है

  • XR AVD को, Windows पर चल रहे Android Studio में एम्बेड करके चलाया जा सकता है

  • Windows पर क्रैश रिपोर्ट की जानकारी को बेहतर बनाया गया है, ताकि Emulator का पूरा डंप चालू किया जा सके

  • [बग ठीक किया गया]समस्या #410485043 Android Emulator XR डिवाइस, Vulkan की गड़बड़ी की वजह से क्रैश हो जाता है

  • [बग ठीक किया गया]समस्या #388718417 libndk_translation.so बंद हो जाता है और Arm64AesEncode में क्रैश हो जाता है

35.5.10 स्टेबल (6 मई, 2025)

  • सीपीयू के साथ काम करने की सुविधा की अतिरिक्त जांच जोड़ी गई है. साथ ही, गड़बड़ी के मैसेज भी जोड़े गए हैं. उदाहरण के लिए: डिस्क में ज़रूरत के मुताबिक स्टोरेज नहीं बचा है

  • Vulkan मेमोरी मैनेजमेंट और इस्तेमाल के अमान्य उदाहरणों से जुड़ी गड़बड़ियों को ठीक किया गया

  • टर्मिनल पर चलाने के दौरान, Vulkan स्नैपशॉट की सुविधा की जांच की जाती है और इसे सही तरीके से स्किप किया जाता है

  • VK_KHR_multiview एक्सटेंशन और A1R5G5B5 टेक्सचर फ़ॉर्मैट के लिए सहायता जोड़ी गई

  • Pixel 9a AVD जोड़ा गया

35.4.9 स्टेबल वर्शन (25 फ़रवरी, 2025)

  • मेहमान के तौर पर इस्तेमाल किए जाने वाले GLES ड्राइवर की प्राथमिकताओं के लिए, बेहतर कंट्रोल में एक ड्रॉप-डाउन मेन्यू जोड़ा गया है

  • [बग ठीक किया गया]समस्या #389330750 Ñ वर्ण वाले एसएमएस को एम्युलेटर पर भेजने से मैसेज दो हिस्सों में बंट जाता है

  • [बग ठीक किया गया]समस्या #382180488 Vulkan डिवाइसों का पता न चलने की वजह से, "emuglConfig_get_vulkan_hardware_gpu_support_info" फ़ंक्शन क्रैश हो रहा है

  • ध्यान दें: Android XR Emulator सिर्फ़ Studio के Canary वर्शन में उपलब्ध हैं

35.3.11 स्टेबल (9 जनवरी, 2025)

  • [गड़बड़ी ठीक की गई]समस्या #368059211 Android Auto OS में, Car Service API का इस्तेमाल करके VHAL को प्रोग्राम के हिसाब से ऐक्सेस करने की सुविधा काम नहीं कर रही है

  • [बग ठीक किया गया]समस्या #348598513 एम्युलेटर में, मल्टी-थ्रेड लॉक में थ्रेड-अनसेफ़ पब्लिक मेथड मौजूद है

  • [गड़बड़ी ठीक की गई]समस्या #356896486 -feature -Vulkan के साथ चलाने पर, Vulkan API कॉल को पूरी तरह से बंद करें

35.4.4 Canary (12 दिसंबर, 2024)

नया Android XR Emulator

हमने हेडसेट के लिए Jetpack XR SDK का इस्तेमाल करके बनाए गए ऐप्लिकेशन को डेवलप और टेस्ट करने के लिए, Android XR का नया एक्सपेरिमेंटल एम्युलेटर जोड़ा है. Android XR इम्यूलेटर इंस्टॉल करने और डेवलपमेंट एनवायरमेंट सेट अप करने के बारे में जानकारी पाने के लिए, Jetpack XR SDK सेटअप देखें.

Android XR इम्यूलेटर, एक्सपेरिमेंट के तौर पर उपलब्ध एक टूल है. हालांकि, हमने आपके साथ इस सुविधा को पहले ही शेयर करने का फ़ैसला किया है, ताकि आप इसे जल्द से जल्द आज़मा सकें. आपको कुछ समस्याएं आ सकती हैं. खास तौर पर, Windows के कुछ जीपीयू और ड्राइवर कॉन्फ़िगरेशन पर. मौजूदा 2D मोबाइल ऐप्लिकेशन की कंपैटिबिलिटी टेस्टिंग से जुड़ी समस्याएं भी हो सकती हैं. आपके सुझाव/राय से, हमें आने वाले समय में सुविधाओं को बेहतर बनाने और उनकी प्राथमिकता तय करने में मदद मिलेगी.

अब तक, Android XR एम्युलेटर को इन एचडब्ल्यू कॉन्फ़िगरेशन पर टेस्ट किया गया है:

  • Mac (ARM)
  • Windows 11
    • nVidia GPU, 4 जीबी vRAM, ड्राइवर वर्शन 553.35 या इसके बाद का वर्शन
  • 16 जीबी या इससे ज़्यादा रैम
  • आठ या इससे ज़्यादा कोर

मौजूदा समस्याएं

एम्युलेटर - स्टेबिलिटी और परफ़ॉर्मेंस:

  • कुछ Windows कॉन्फ़िगरेशन पर, बूट करने के दौरान या ऐप्लिकेशन चलाने के दौरान सिस्टम लॉक हो सकता है या क्रैश हो सकता है. कृपया पक्का करें कि Windows Hypervisor Platform (WHPX) चालू हो. इसके लिए, WHPX को चालू करने के लिए Android Studio डेवलपर गाइड देखें.
  • लैपटॉप को बंद करके खोलने के बाद, एवीडी या यूज़र इंटरफ़ेस (यूआई) एलिमेंट के काम न करने जैसी समस्याएं.
  • "होम स्क्रीन मोड" से "फ़ुल स्क्रीन मोड" पर ऐप्लिकेशन स्विच करते समय, कभी-कभी क्रैश हो जाता है
  • Gemini API अभी उपलब्ध नहीं हैं. इसलिए, Gemini API का स्टार्टर टेंप्लेट ऐप्लिकेशन क्रैश हो जाएगा.

एम्युलेटर - इनपुट और आउटपुट को सिम्युलेट करना:

  • ऐसा हो सकता है कि खोज और बदलाव वाले फ़ील्ड के लिए वर्चुअल कीपैड, व्यू के फ़ील्ड में सिर्फ़ कुछ हद तक दिखे
  • माउस और कीबोर्ड का इस्तेमाल करके, एलिमेंट को z-डायरेक्शन (स्क्रीन के अंदर और बाहर) में नहीं ले जाया जा सकता

  • AVD के माइक्रोफ़ोन में होस्ट के ऑडियो इनपुट की वजह से समस्या आ सकती है. इससे AVD रीबूट हो सकता है और क्रैश हो सकता है.

  • कभी-कभी आवाज़ में स्टैटिक होता है या वह खराब हो जाती है.

  • कैमरे को वर्चुअल लिविंग रूम से बाहर ले जाने पर, रेंडरिंग से जुड़ी गड़बड़ियां दिखती हैं.

  • Windows कॉन्फ़िगरेशन में, सामान्य से ज़्यादा गहरे रंग दिखते हैं.

  • macOS पर, एम्युलेटर को कुछ समय तक इस्तेमाल न करने और स्क्रीन लॉक करने के बाद, ऑडियो काम नहीं करता. (एम्युलेटर को रीस्टार्ट करने पर, यह वापस आ जाएगा.)

  • होस्ट मशीन के वाई-फ़ाई बदलने पर, नेटवर्क कनेक्शन टूट जाता है.

  • Caps Lock चालू होने पर भी, छोटे अक्षरों में टाइप किया जा रहा है.

  • Mac पर ट्रैकपैड का इस्तेमाल करके स्क्रोल करने में समस्या आ रही है.

  • ऐसा हो सकता है कि कुछ यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर क्लिक करके खींचने और छोड़ने की सुविधा काम न करे. अगर ऐसा नहीं होता है, तो स्क्रोल करने के लिए माउस के पहिए का इस्तेमाल करें.

  • Windows के कुछ सिस्टम कॉन्फ़िगरेशन पर, Chrome में टेक्स्ट और यूज़र इंटरफ़ेस (यूआई) का धुंधला दिखना और अन्य गड़बड़ियां. समस्या हल करने का तरीका: WHP चालू करें.

एम्युलेटर - विमानों और ऐंकर को सिम्युलेट करना:

  • कभी-कभी ऐंकर, उसी जगह के आस-पास फिर से नहीं दिखते
  • चलने वाले पैनल, दीवारों या छत से जुड़े नहीं हो सकते
  • सिम्युलेट किए गए प्लेन, पासथ्रू मोड में 3D रूम के फ़िज़िकल लेआउट से मेल नहीं खाते
  • वर्चुअल रूम में ऑब्जेक्ट को ऐंकर करने के लिए, सीमित जगहें
  • Windows पर पासथ्रू व्यू में दिखने वाला छोटा आर्टफ़ैक्ट
  • कुछ मामलों में, ऐंकर जोड़ने पर ऐप्लिकेशन क्रैश हो सकता है
  • Windows पर ऐप्लिकेशन को ज़मीन के करीब ले जाने पर, ऐप्लिकेशन के ऊपर काली लाइनें दिख सकती हैं

एम्युलेटर - अन्य:

  • एम्युलेटर सिर्फ़ "स्टैंडअलोन" मोड में चालू होता है. फ़िलहाल, "एम्बेड किया गया" मोड (एम्बेड किया गया यूज़र इंटरफ़ेस) काम नहीं करता.
  • Windows पर एम्युलेटर में खातों से लॉग इन करने पर, एम्युलेटर काम करना बंद कर सकता है
  • विंडो का साइज़ बदलने के बाद, यूज़र इंटरफ़ेस (यूआई) का कॉन्टेंट गायब हो सकता है (समस्या हल करने का तरीका: "होम" बटन दबाना)
  • JXRCore ActivityPanelTest ऐप्लिकेशन में, सेकंडरी पैनल शुरू में नहीं दिखता
  • ऐसा हो सकता है कि लंबे समय तक इस्तेमाल न करने पर, क्विक सेटिंग के आइटम सिस्टम सेटिंग से गायब हो जाएं.
  • ऐसा हो सकता है कि शुरुआत में, एम्युलेटर का यूज़र इंटरफ़ेस (यूआई) स्क्रीन के उस हिस्से के बाहर दिखे जहां उसे दिखना चाहिए. अगर ऐसा होता है, तो एम्युलेटर विंडो के साइज़ में थोड़ा बदलाव करें. इससे वह अपनी जगह पर वापस आ जाएगी.
  • Windows पर Chrome Remote Desktop का इस्तेमाल करते समय, एम्युलेटर शुरू नहीं हो सकता
  • फ़िलहाल, एम्युलेटर पर OpenXR काम नहीं करता है. साथ ही, OpenXR ऐप्लिकेशन एम्युलेटर को क्रैश कर सकते हैं
  • Windows पर Android Studio की एक्सटेंड की गई सेटिंग का इस्तेमाल करके, गड़बड़ी की रिपोर्ट सबमिट करने की कोशिश करते समय कभी-कभी गड़बड़ी होती है
  • Mac पर कर्सर को सेटिंग ऐप्लिकेशन के "वापस जाएं" आइकॉन के पास ले जाने तक, वह आइकॉन ठीक से नहीं दिखता
  • कुछ मामलों में, XR टेंप्लेट प्रोजेक्ट के हिस्से के तौर पर "बेसलाइन प्रोफ़ाइल" मॉड्यूल का इस्तेमाल करते समय, बिल्ड करने में गड़बड़ी हो सकती है
  • "XR Talkback" की सुलभता की सुविधा को अब तक सिर्फ़ एम्युलेटर में आंशिक रूप से इंटिग्रेट किया गया है

Scene Viewer ऐप्लिकेशन:

  • Scene Viewer में एलिमेंट को इधर-उधर ले जाने से, यह क्रैश हो सकता है. इस समस्या को हल करने के लिए, एलिमेंट को मूव करने से पहले, सिर की पोज़िशन को उसकी शुरुआती पोज़िशन से थोड़ा दूर ले जाएं. उदाहरण के लिए, पैन, डॉली, WASD वगैरह का इस्तेमाल करके.
  • अगर 3D मॉडल का असल साइज़, स्केल की कम से कम और ज़्यादा से ज़्यादा सीमा (फ़िलहाल, 20 सेमी और 70 मीटर पर सेट है) से कम या ज़्यादा है, तो 1:1 के असल साइज़ वाली सुविधा ठीक से काम नहीं करेगी
  • लोड होने के बाद, 3D मॉडल पहले फ़्रेम पर कूद सकता है

35.2.10 (1 अक्टूबर, 2024)

  • Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, और Pixel 9 Pro Fold जैसे नए Pixel AVD जोड़े गए
  • Vanilla Ice Cream (API 35) के लिए, नई टैबलेट सिस्टम इमेज जोड़ी गई

35.1.20 (29 अगस्त, 2024)

  • Pixel 8a AVD जोड़ा गया
  • फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए कई गड़बड़ियां ठीक की गईं
  • Qt को अपडेट किया गया है. साथ ही, Qt से जुड़े क्रैश और हैंग होने की समस्याओं को ठीक किया गया है
  • [गड़बड़ी ठीक की गई] Vulkan का इस्तेमाल करने वाले ऐप्लिकेशन के साथ Windows पर क्रैश और फ़्रीज़ होने की समस्या ठीक की गई

34.2.16 (9 जुलाई, 2024)

  • [बग ठीक किया गया] Pixel Fold को फ़ोल्ड/अनफ़ोल्ड करते समय यूज़र इंटरफ़ेस (यूआई) फ़्रीज़ होने की समस्या
  • [गड़बड़ी ठीक की गई] Mac M1 पर, Android के वर्शन को API 35 के बजाय Android Vanilla Ice Cream Preview के तौर पर गलत तरीके से दिखाया जा रहा था.
  • [गड़बड़ी ठीक की गई] समस्या #296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE, Pixel C टैबलेट के एम्युलेटर पर सही वैल्यू दिखाता है

34.2.15 (31 मई, 2024)

  • स्वैंगल मोड और विज्ञापन देने वाले व्यक्ति या कंपनी के खाते को बंद करने से जुड़ी क्रैश की कई समस्याओं को ठीक किया गया

34.2.14 (20 मई, 2024)

इसे Android Studio Jellyfish के स्टेबल वर्शन के पहले पैच के साथ टेस्ट किया गया है.

  • [गड़बड़ी ठीक की गई] कभी-कभी, एम्बेड किए गए एम्युलेटर पर स्नैपशॉट रुक जाता है
  • [बग ठीक किया गया] स्नैपशॉट पर 'नहीं' और 'रद्द करें' बटन ठीक से काम नहीं कर रहे हैं
  • [बग ठीक किया गया] डायरेक्शनल पैड के बटन काम नहीं कर रहे हैं
  • [गड़बड़ी ठीक की गई] Windows पर दिखने वाली उस समस्या को ठीक किया गया है जिसकी वजह से, कुछ मामलों में एमुलेटर शुरू नहीं हो पाता था. ऐसा तब होता था, जब ANGLE के साथ जीपीयू मोड का इस्तेमाल किया जा रहा हो. साथ ही, लॉग में “Failed to initialize GL emulation” गड़बड़ी का मैसेज दिखता था. ध्यान दें कि इस वर्शन में, कमांड लाइन से -gpu swangle_indirect विकल्प का इस्तेमाल करके एम्युलेटर शुरू करने पर अब भी यह गड़बड़ी दिख सकती है. अगर आपको इस वर्शन के साथ, सॉफ़्टवेयर ग्राफ़िक्स रेंडरिंग की सुविधा का इस्तेमाल करके, Windows पर कमांड लाइन का इस्तेमाल करके एम्युलेटर शुरू करना है, तो कृपया -gpu swiftshader_indirect का इस्तेमाल करें
  • [बग ठीक किया गया] कीबोर्ड पर मौजूद जगह की जानकारी वाले शॉर्टकट से, इस्तेमाल न किया जा सकने वाला मैप लोड होता है
  • [बग ठीक किया गया] जगह की जानकारी सेट करते समय, "रास्ता सेव करें" डायलॉग मौजूद नहीं है

34.2.13 (30 अप्रैल, 2024)

इसे Android Studio Jellyfish के स्टेबल वर्शन के साथ टेस्ट किया गया है.

  • Qt 6.5.3 पर अपडेट करें
  • इमुलेटर के एक्सटेंडेड कंट्रोल में जगह की जानकारी की सुविधाओं के लिए, Google Maps API के अपडेट के साथ काम करने की सुविधा. यह अपडेट मई के आखिर में उपलब्ध होगा.
  • क्रैश होने की समस्या को ठीक करने के लिए, बहुत ज़्यादा असर डालने वाले सुधार
  • Pixel AVD से जुड़ी कई समस्याओं को ठीक किया गया
  • सॉफ़्टवेयर रेंडरिंग के लिए इस्तेमाल की जाने वाली ग्राफ़िक्स लाइब्रेरी को अपडेट किया गया
  • [बग ठीक किया गया]समस्या 225541819 Chrome शुरू करने पर, x86_64 पर एम्युलेटर क्रैश हो जाता है
  • [बग ठीक किया गया]समस्या 314614435 -http-proxy स्विच को गलत तरीके से पार्स किया गया

34.1.20 (1 अप्रैल, 2024)

इसे Android Studio Iguana 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
    • Pixel Tablet
    • Pixel 8
    • Pixel 8 Pro
    • Pixel 7a
  • gRPC इंटिग्रेशन टेस्ट: gRPC एंडपॉइंट अब एम्युलेटर में चल रहे इंस्ट्रुमेंटेड टेस्ट के लिए उपलब्ध हैं. इससे असली स्थितियों की जांच की जा सकेगी. इस सुविधा की मदद से डेवलपर, Android इंस्ट्रुमेंटेशन टेस्ट के दौरान Android Emulator पर होस्ट किए गए gRPC एंडपॉइंट के साथ सुरक्षित तरीके से इंटरैक्ट कर सकते हैं.
  • कई गड़बड़ियां ठीक की गईं
    • बग ठीक किया गया: फ़ोल्ड किए जा सकने वाले डिवाइसों पर इस्तेमाल करने से जुड़ी समस्याओं को ठीक किया गया
    • बग ठीक किया गया: रोटेशन के बाद, Emulator की पोज़िशन को अडजस्ट किया गया
    • क्रैश से जुड़ी समस्याएं ठीक की गईं

33.1.24 (28 दिसंबर, 2023)

इसकी जांच Android Studio Hedgehog Stable और Iguana Beta 1 के साथ की गई है.

  • इमुलेटर के वेबकैम से जुड़ी उस समस्या को ठीक किया गया है जिसकी वजह से, mp4 फ़ॉर्मैट में स्क्रीन रिकॉर्ड नहीं की जा सकती.
  • स्क्रीन रिकॉर्डिंग के दौरान, Pixel Fold AVD को अनफ़ोल्ड करने पर Emulator क्रैश होने की समस्या ठीक की गई.
  • Pixel Fold पर, कीबोर्ड के अलग होने पर फ़ोन की स्किन अलग दिखने की समस्या को ठीक किया गया है. साथ ही, अब इसका इस्तेमाल किया जा सकता है. यह समस्या Windows, Mac Intel, और Linux पर ठीक की गई है
  • स्टैंडअलोन मोड में वर्चुअल सेंसर के दिखने में गड़बड़ी को ठीक किया गया है. यह गड़बड़ी Windows, Mac Intel, और Linux पर ठीक की गई है
  • कुछ क्रैश की समस्याओं को ठीक किया गया है. खास तौर पर, एम्युलेटर बंद करते समय होने वाली समस्याओं को ठीक किया गया है

33.1.23 (30 नवंबर, 2023)

इसकी जांच Android Studio Giraffe Patch 4 और Hedgehog Stable के साथ की गई है.

  • Pixel Fold डिवाइस को बेहतर तरीके से चलाने के लिए, फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए नया वर्शन लागू किया गया है. यह एपीआई 34 के साथ काम करता है
  • ग्राफ़िक्स बैकएंड अपग्रेड: हमने अपने ग्राफ़िक्स बैकएंड के लिए gfxstream प्रोटोकॉल लागू किया है. इससे आपके सिस्टम की ग्राफ़िक्स परफ़ॉर्मेंस और स्थिरता बेहतर होती है. इसके अलावा, एपीआई 34 वाली सिस्टम इमेज से Vulkan 1.3 के साथ काम करने की सुविधा शुरू की जा रही है
  • सुविधा का अनुरोध: पिंच करके ज़ूम करने वाले जेस्चर को बंद करने या इसकी हॉटकी को फिर से असाइन करने का विकल्प
  • [गड़बड़ी ठीक की गई] समस्या #302562962 MacOS Sonoma का इस्तेमाल करते समय, Emulator का वेबकैम क्रैश होने की समस्या ठीक की गई
  • [बग ठीक किया गया] समस्या #293503871 Emulator को रीस्टार्ट करने पर, 'माइक्रोफ़ोन' सेटिंग सेव न होने की समस्या ठीक की गई
  • [बग ठीक किया गया] समस्या #270386314 एवीडी स्क्रीन को छोटा करने के बाद भी साइडबार खुला रहता है. इस ऐनिमेशन से जुड़ी गड़बड़ी को ठीक किया गया है
  • [बग ठीक किया गया] समस्या #154896775 बग सबमिट करने वाले टूल से जुड़ी गड़बड़ी ठीक की गई

32.1.15 (29 अगस्त, 2023)

इसकी जांच Android Studio Giraffe Patch 1 और Hedgehog Canary 16 के साथ की गई है.

  • AAE Emulator में सेंसर के लिए, GAS HW से जुड़ी ज़रूरी शर्तों का पालन करना
  • [गड़बड़ी ठीक की गई] समस्या #266201208 एपीआई 33 पर हिब्रू भाषा में एसएमएस नहीं भेजा जा रहा है
  • [बग ठीक किया गया] समस्या #257097404 एपीआई 29 और 30 पर, होस्ट के चालू होने के बाद एम्युलेटर में सही समय नहीं दिखता
  • [बग ठीक किया गया] समस्या #228201899 Android Emulator के एक्सटेंडेड कंट्रोल में Google Maps नहीं दिख रहा है

32.1.14 (27 जून, 2023)

इसकी जांच Android Studio Hedgehog Canary 8, Giraffe Beta 5, और Flamingo Stable के साथ की गई है.

  • एम्युलेटर के कैमरे के ओरिएंटेशन और इमेज में होने वाली गड़बड़ियों को ठीक किया गया.
  • [बग ठीक किया गया] समस्या #257097404 "होस्ट को चालू करने के बाद, एम्युलेटर में सही समय नहीं दिखता". यह गड़बड़ी, एपीआई 29 और एपीआई 30 के लिए अब भी दोहराई जा सकती है.
  • [बग ठीक किया गया] समस्या #243456582 "API 30 के बाद वाले Android वर्शन, Mac M1 मशीनों पर एम्युलेटर में ठीक से शुरू नहीं हो सकते"

32.1.13 (22 मई, 2023)

इसे Android Studio Hedgehog Canary 2, Giraffe Beta 1, और Flamingo Stable के साथ टेस्ट किया गया है.

  • Pixel Fold और Pixel Tablet AVD के लिए सहायता जोड़ी गई.
  • gLinux के क्रैश होने की समस्या को ठीक किया गया.
  • [बग ठीक किया गया] समस्या #215231636 "Intel 12th gen प्रोसेसर में, API 30 से ऊपर वाले एपीआई के साथ काम करने वाला एम्युलेटर काम नहीं कर रहा है".
  • [बग ठीक किया गया] समस्या #275397905 Android Emulator M1 में कर्सर को बार-बार अंदर और बाहर ले जाने पर, क्रैश होने की समस्या.
  • नए वर्शन वाले एम्युलेटर की क्रैश रिपोर्ट मौजूद होने पर, एवीडी लॉन्च करने में समस्या आ रही है. ज़्यादा जानकारी के लिए, एम्युलेटर से जुड़ी समस्या हल करना लेख पढ़ें.

32.1.12 (21 मार्च, 2023)

इसे Android Studio Giraffe Canary 10, Flamingo RC, और Electric Eel Patch 2 के साथ टेस्ट किया गया है.

  • [बग ठीक किया गया] समस्या #267647323 Android Studio से शुरू किए गए एम्युलेटर पर नेटवर्क काम नहीं करता
  • [बग ठीक किया गया] समस्या #268498686 एम्युलेटर की स्क्रीन फ़्लिकर हो रही है
  • [गड़बड़ी ठीक की गई] समस्या #270034824 वर्शन 33.1.1 पर अपडेट करने के बाद, एम्युलेटर की परफ़ॉर्मेंस खराब हो गई
  • [बग ठीक किया गया] समस्या #225541819 Chrome शुरू करने पर, x86_64 पर Emulator क्रैश हो जाता है
  • [बग ठीक किया गया] समस्या #257097404 होस्ट के चालू होने के बाद, एम्युलेटर में सही समय नहीं दिखता
  • Apple M1 डिवाइसों के लिए क्रैश रिपोर्टिंग की सुविधा जोड़ना

32.1.11 (8 फ़रवरी, 2023)

इसे Android Studio Giraffe Canary 2, Flamingo Beta 1, और Electric Eel Patch 1 के साथ टेस्ट किया गया है.

  • नेटवर्क की स्पीड को ऑप्टिमाइज़ करना
  • एम्बेड किए गए एम्युलेटर में माउस की सुविधा
  • Virtio-snd में सुधार
  • इंस्टॉल करने के दौरान, Android Emulator को अनज़िप करते समय सिमलंक के इस्तेमाल को बंद करें
  • एम्युलेटर की जांच करने वाले टूल में क्रैश होने की समस्या ठीक की गई

31.3.14 (13 दिसंबर, 2022)

इसे Android Studio Dolphin, Electric Eel RC1, और Flamingo Canary 9 के साथ टेस्ट किया गया है.

  • [गड़बड़ी ठीक की गई] Play Store में लॉग इन करते समय, AVD क्रैश होने की समस्या को ठीक किया गया.

31.3.13 (27 अक्टूबर, 2022)

इसकी जांच Android Studio Dolphin, Electric Eel Beta 2, और Flamingo Canary 5 के साथ की गई है.

  • [बग ठीक किया गया] समस्या #249948338: टाइम ज़ोन पैरामीटर काम नहीं कर रहा है
  • [बग ठीक किया गया] समस्या #249366543: एपीआई 31 के बाद, एम्युलेटर -dns-server विकल्प काम नहीं करता है

31.3.12 (10 अक्टूबर, 2022)

इसे Android Studio Dolphin और Electric Eel Beta 1 के साथ टेस्ट किया गया है.

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • [बग ठीक किया गया] समस्या #247843000: एवीडी के रिलेटिव पाथ को हैंडल करने में गड़बड़ी
  • एपीआई 24 और इसके बाद के वर्शन के लिए, डिस्क का साइज़ बढ़ाना

31.3.11 (23 सितंबर, 2022)

इसकी जांच Android Studio Dolphin और Electric Eel Canary 10 के साथ की गई है.

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • [बग ठीक किया गया] एक्सटेंडेड कंट्रोल विंडो पर एंबेड किया गया एम्युलेटर एवीडी क्रैश हो जाता है
  • [गड़बड़ी ठीक की गई] समस्या #183139207: एम्युलेटर के माइक्रोफ़ोन चालू करने से जुड़ी ऑडियो समस्याएं
  • [बग ठीक किया गया] समस्या #229764024: एवीडी में स्टिकी टच की गड़बड़ी की वजह से, यूज़र इंटरफ़ेस (यूआई) के काम करने से जुड़ी समस्याएं आ रही थीं
  • [गड़बड़ी ठीक की गई] Mac M1 पर API 33 AVD लॉन्च करने में गड़बड़ी.
  • [बग ठीक किया गया] समस्या #243053479: Emulator को अपडेट करने के बाद नेटवर्क की स्पीड धीमी हो जाती है
  • [बग ठीक किया गया] समस्या #244617627: Windows और Linux पर Maps में जगह की जानकारी काम नहीं कर रही है
  • [गड़बड़ी ठीक की गई] समस्या #232971796: एक्सटेंडेड कंट्रोल > फ़ोन पेज पर “डिवाइस पर कॉल करें” बटन काम नहीं कर रहा है
  • Android Emulator को minigbm पर अपडेट करना
  • बिल्ड स्क्रिप्ट को Python3 में माइग्रेट करना

31.3.10 (18 अगस्त, 2022)

इसकी जांच Android Studio Dolphin Beta 5 और Electric Eel Canary 9 के साथ की गई है.

अब एम्युलेटर को अलग से डाउनलोड किया जा सकता है. अगर आपको इस नए स्टेबल वर्शन में कोई समस्या आ रही है या यह क्रैश हो रहा है, तो कृपया बग की शिकायत करें. इसके अलावा, इमुलेटर डाउनलोड करने से जुड़े संग्रह से, पहले काम कर रहे वर्शन को डाउनलोड करें.

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • Windows पर यूनिकोड पाथ के लिए बेहतर सपोर्ट
  • एम्युलेटर के बंद होने की समस्या को बेहतर तरीके से ठीक किया गया है, ताकि एक ही एवीडी को फिर से लॉन्च किया जा सके.
  • फ़ोल्ड किए जा सकने वाले एवीडी के डिज़ाइन और डिफ़ॉल्ट सेटिंग को अपडेट किया गया
  • Wear OS के एम्युलेटर के अपडेट किए गए बटन
  • gRPC ऑडियो स्ट्रीमिंग में सुधार
  • रीसाइज़ किए जा सकने वाले एम्युलेटर कंसोल कमांड को जोड़ा गया
  • Chrome Fix for API 31
  • [गड़बड़ी ठीक की गई] GmsCore v21.42.18 के साथ Google खाते की पुष्टि नहीं हो पा रही है

31.2.10 (20 अप्रैल, 2022)

इसे Android Studio Dolphin Canary 8 और Chipmunk RC 1 के साथ टेस्ट किया गया है.

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • Vulkan फ़ंक्शन को फ़ॉलबैक के साथ लोड करने की सुविधा जोड़ें
  • [गड़बड़ी ठीक की गई] gcc8 बिल्ड करने में आने वाली गड़बड़ी ठीक की गई

31.2.9 (23 मार्च, 2022)

इसकी जांच Android Studio Dolphin Canary 7 के साथ की गई है.

इस अपडेट में, यह समस्या ठीक की गई है:

  • [बग ठीक किया गया] M1 पर स्नैपशॉट सेव करते समय, मेमोरी पर पड़ने वाले दबाव को अनदेखा करें

31.2.8 (7 फ़रवरी, 2022)

इसकी जांच Android Studio Bumblebee Patch 1 और Chipmunk Canary 6 के साथ की गई है.

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • [बग ठीक किया गया] ऐप्लिकेशन में साइन इन नहीं किया जा सका
  • [बग ठीक किया गया] समस्या #215368358: Intel प्लैटफ़ॉर्म पर "adb reboot" कमांड का इस्तेमाल करने पर, "vcpu shutdown request" की वजह से 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 एम्युलेटर में Wear बटन जोड़े गए.
  • वीएचएएल टैब में, वाहन की सभी प्रॉपर्टी में बदलाव करने की सुविधा जोड़ी गई.
  • [गड़बड़ी ठीक की गई] GmsCore v21.42.18 के साथ Google खाते की पुष्टि नहीं हो पाई.
  • [बग ठीक किया गया] Netshaper, VirtioWifi के साथ ठीक से काम नहीं कर रहा था.
  • [बग ठीक किया गया] इवेंट माउस कंसोल कमांड काम नहीं कर रही थी.
  • लोकल एवीडी बनाने के लिए, KVM की जांच करने की सुविधा जोड़ी गई.

31.1.3 (18 जनवरी, 2022)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • Fuchsia के लिए कंसोल पोर्ट चालू किए गए.
  • एक से ज़्यादा डिसप्ले वाली विंडो का साइज़ बदलते समय, ओरिएंटेशन को अनदेखा कर दिया जाता है.
  • वाई-फ़ाई: MAT मैक पते के आधार पर, यूनिकास्ट पैकेट को फ़िल्टर करने की सुविधा जोड़ी गई है.
  • वाई-फ़ाई: vmnet का इस्तेमाल करते समय क्रैश होने की समस्या ठीक की गई.

30.9.5 (15 दिसंबर, 2021)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • डेस्कटॉप या टैबलेट के साइज़ वाली विंडो में आसानी से साइज़ बदलने की सुविधा जोड़ी गई है.
  • इस सुविधा को इस्तेमाल करने वाले होस्ट डिवाइसों से, मल्टी-टच इनपुट के लिए सहायता जोड़ी गई.
  • VirtioWifi: टैप नेटवर्क के लिए सहायता जोड़ी गई.
  • Wear सिस्टम इमेज के लिए, रोटरी इनपुट की सुविधा चालू की गई.
  • gRPC ऑडियो कॉन्फ़िगरेशन से जुड़ी समस्या ठीक की गई.
  • SensorReplay Emulator Playback को अपडेट किया गया है, ताकि यह Android के स्टैंडर्ड सेंसर के साथ काम कर सके.
  • यूएसबी पास थ्रू की सुविधा का इस्तेमाल करके, यूएसबी की मदद से एम्युलेटर को सहायक डिवाइसों और अन्य डिवाइसों से कनेक्ट किया गया हो.

30.4.5 (23 फ़रवरी, 2021)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • macOS: ऑडियो इनपुट में गड़बड़ी होने की समस्याएं ठीक की गईं.
  • उपयोगकर्ता स्पेस में virtio-vsock के लिए सहायता जोड़ी गई.
  • आने वाले समय में, सिस्टम इमेज में logcat और कर्नल मैसेज के लिए virtio-console का इस्तेमाल किया जाएगा.
  • Vulkan रेंडरिंग की स्पीड बढ़ाएं.
  • टेस्ट फ़ेल होने पर, स्नैपशॉट डीबग करने की सुविधा जोड़ी गई.
  • virtio-gpu: नई परिभाषाएं जोड़ी गई हैं, ताकि नई ब्लोब रिसॉर्स इनम का इस्तेमाल किया जा सके.
  • 'asg' टाइप के ग्राफ़िक ट्रांसपोर्ट के लिए स्नैपशॉट की सुविधा जोड़ी गई.
  • macOS: macOS SDK 11.1 और इसके बाद के वर्शन के साथ काम करने की सुविधा जोड़ी गई.
  • KVMclock, नई सिस्टम इमेज पर डिफ़ॉल्ट रूप से चालू होता है.
  • Wear के एम्युलेटर में, धड़कन की दर मापने वाले सेंसर के लिए सहायता जोड़ी गई.
  • libportability Vulkan बैकएंड को हटा दिया गया है.
  • मोडम सिम्युलेटर में ज़्यादा सुविधाओं के लिए सहायता जोड़ी गई.

30.0.26 (16 अगस्त, 2020)

इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.

वर्चुअल हिंज सेंसर और 3D व्यू के साथ फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए सहायता

  • फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, हिंज सेंसर की सुविधा जोड़ी गई है. इसके लिए, Android 11 की सिस्टम इमेज और AVD कॉन्फ़िगरेशन की ज़रूरत होगी. 3D फ़ोल्ड करने की सुविधा और हिंज के पैरामीटर को अब फ़ोल्ड करने की सुविधा वाले मौजूदा प्रीसेट के साथ इंटिग्रेट कर दिया गया है. इनका इस्तेमाल, उदाहरण के लिए, 7.3 फ़ोल्ड किए जा सकने वाले एवीडी की config.ini फ़ाइल के साथ किया जा सकता है:

    hw.sensor.hinge = yes
    hw.sensor.hinge.count = 1
    hw.sensor.hinge.type = 1
    hw.sensor.hinge.ranges = 180-360
    hw.sensor.hinge.defaults = 180
    hw.sensor.hinge.areas = 54.7-0
    hw.sensor.posture_list=4, 3
    hw.sensor.hinge_angles_posture_definitions=210-360, 180-210
    hw.sensor.hinge.fold_to_displayRegion.0.1_at_posture=4
    
  • फ़ोल्ड किए जा सकने वाले डिवाइसों में अब सब-टाइप पैरामीटर भी होता है. config.ini प्रॉपर्टी hw.sensor.hinge.sub_type = hinge/fold अब उपलब्ध है. ज़्यादा जानने के लिए, Android Emulator की मदद से Android 11 के लिए डेवलपमेंट करना ब्लॉग पोस्ट पढ़ें.

  • अब हिंज सेंसर डिफ़ॉल्ट रूप से चालू होता है.

  • अगर फ़ोल्ड किए जा सकने वाले डिवाइस को कॉन्फ़िगर किया जाता है, तो अब एम्युलेटर, मेहमान को हिंज एंगल सेंसर के अपडेट और डिवाइस की स्थिति में हुए बदलावों की जानकारी भेजता है. फ़ोल्ड किए जा सकने वाले मौजूदा डिवाइसों में, टूलबार के फ़ोल्ड या अनफ़ोल्ड बटन दबाने पर, अब हिंज सेंसर के ऐंगल और पोस्चर को अपडेट किया जाएगा.

ARM64 होस्ट के लिए एम्युलेटर

  • Linux इम्युलेटर के सोर्स कोड में अब x86_64 से arm64 होस्ट तक क्रॉस कंपाइलेशन की सुविधा काम करती है. इससे KVM वर्चुअलाइज़ेशन के साथ arm64 सिस्टम इमेज को चलाया जा सकता है. फ़िलहाल, सिर्फ़ -gpu swiftshader_indirect (Swiftshader arm64 होस्ट रेंडरिंग) काम करता है. हालांकि, lib64/gles_swiftshader को libEGL/libGLESv2 लाइब्रेरी के साथ बदलकर, -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 होस्ट कोहेरेंट blob रिसॉर्स के लिए, होस्ट साइड पर सपोर्ट जोड़ा गया.
  • एम्युलेटर रेंडरिंग के काम करने के तरीके की वजह से, अब हम virtio-gpu virtqueue को vcpu थ्रेड में प्रोसेस करते हैं. ऐसा इसलिए, क्योंकि रेंडरिंग को किसी भी तरह से अन्य थ्रेड पर ऑफ़लोड किया जाता है. virtio-gpu रेंडरिंग, सिस्टम इमेज और एम्युलेटर के आने वाले वर्शन में चालू की जाएगी.
  • आने वाले समय में, सिस्टम इमेज में एम्युलेटर, virtio-gpu पर आधारित स्टैक की मदद से सभी ग्राफ़िक चला सकेगा.

अन्य नई सुविधाएं और सुधार

  • -qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id> का इस्तेमाल करके, अब Windows पर यूएसबी पासथ्रू की सुविधा उपलब्ध है. (यह सुविधा, Linux और macOS पर पहले से काम कर रही है)
  • WebRTC लाइब्रेरी को M83 पर अपडेट किया गया.
  • इमुलेटर अब WebRTC पर कंटेनर में ऑडियो स्ट्रीमिंग की सुविधा देता है.
  • darwinn पाइप एंडपॉइंट को हटा दिया गया है.
  • वीडियो के लिए CUDA VPx डिकोड की सुविधा अब उपलब्ध है. अगर हार्डवेयर में CUDA VPx डिकोड की सुविधा उपलब्ध है, तो एनवायरमेंट वैरिएबल ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 के ज़रिए इसका इस्तेमाल किया जा सकता है.
  • macOS पर, अब Android गेस्ट के अंदर से SSE 4.1 और 4.2 उपलब्ध हैं.
  • macOS पर, INVTSC अब डिफ़ॉल्ट रूप से चालू है. इससे मेहमान के समय के मेज़रमेंट की सटीकता को बेहतर बनाया जा सकता है.
  • अब हम मेट्रिक में यह ट्रैक करते हैं कि उपयोगकर्ता ने कौनसे एक्सटेंडेड कंट्रोल पैनल को चुना है.
  • Linux इम्यूलेटर अब KVM पैरावर्चुअलाइज़्ड क्लॉक का इस्तेमाल करता है. ऐसा तब होता है, जब मेहमान कर्नल का वर्शन >= 5.4 (R सिस्टम इमेज या बाद के वर्शन) हो.
  • इमुलेटर अब गेस्ट कर्नल को डीकंप्रेस करने के लिए LZ4 का इस्तेमाल करता है. इससे यह आधुनिक कर्नल पाइपलाइन के साथ काम कर पाता है.
  • इमुलेटर एवीडी डायरेक्ट्री, Studio में एम्बेड किए गए इस्तेमाल के उदाहरण में डिस्कवरी फ़ाइल का पाथ, और स्नैपशॉट का पाथ पाने के लिए, कंसोल कमांड जोड़ी गईं:

    adb emu avd path # Obtains path to AVD directory
    adb emu avd discoverypath # Obtains path to discovery file
    adb emu avd snapshotspath # Obtains path to snapshots folder
    adb emu avd snapshotpath <snapshotName> # Obtains path to the folder that stores the snapshot for the snapshot with name <snapshotName>
    
  • स्क्रीन पर ज़्यादा जगह बचाने के लिए, हमने ज़्यादा कंट्रोल > सेटिंग में, मौजूदा एवीडी के लिए डिवाइस फ़्रेम को छिपाने का विकल्प जोड़ा है. सभी एवीडी के लिए डिवाइस फ़्रेम को ग्लोबल लेवल पर छिपाने के लिए, हमने NoDeviceFrame सुविधा फ़्लैग उपलब्ध कराया है. इसे कमांड लाइन से -feature NoDevice फ़्रेम के साथ एम्युलेटर लॉन्च करके चालू किया जा सकता है. इसे लॉक करने के लिए, ~/.android/advancedFeatures.ini में NoDeviceFrame = on जोड़ें. अगर यह फ़ाइल पहले से मौजूद नहीं है, तो इसे बनाएं.

  • सेल्युलर पेज में एक ड्रॉप-डाउन आइटम जोड़ा गया है, ताकि मीटर किए गए नेटवर्क के इस्तेमाल की सुविधा को चालू और बंद किया जा सके. यह सुविधा, सिस्टम की उन पुरानी इमेज के लिए काम नहीं करती है जिनमें 5G मीटर किए गए नेटवर्क के इस्तेमाल की सुविधा को टॉगल करने की सुविधा नहीं होती है.

    • इसी मकसद के लिए, कंसोल कमांड भी जोड़ी गई है: gsm meter on|off
  • टूलचेन / बिल्ड को C++17 पर अपग्रेड किया गया.

ठीक की गई समस्याएं: एम्बेड किया गया एम्युलेटर

  • अब क्लिपबोर्ड की सुविधा काम करेगी.
  • एम्युलेटर में, अपरकेस वर्णों को लोअरकेस वर्णों के तौर पर डिलीवर करने की समस्या को ठीक किया गया है.
  • Windows में यूनिकोड पाथ से कंसोल टोकन लोड करने की समस्या ठीक की गई.
  • Linux पर SO_REUSEPORT गड़बड़ी के मैसेज को ठीक किया गया.
  • gRPC के ज़रिए स्नैपशॉट कमांड भेजने पर, स्नैपशॉट के खराब होने की समस्या को ठीक किया गया है. साथ ही, Android Studio में एम्बेड किए गए एम्युलेटर में, स्नैपशॉट सेव करने वाले बटन को दबाने पर होने वाली समस्या को भी ठीक किया गया है.
  • Studio में एम्बेड किए गए Linux इम्यूलेटर का इस्तेमाल करते समय, हमें पता चला कि अगर Chrome Remote Desktop के ज़रिए ऐसा किया जाता है, तो एक गड़बड़ी होती है. इसमें XDG_RUNTIME_DIR सेट नहीं होता है. इसकी वजह से, एम्बेड किया गया इम्यूलेटर नहीं दिख सकता है, क्योंकि इम्यूलेटर डिस्कवरी फ़ाइलों को XDG_RUNTIME_DIR में रखा जाता है. Chrome के समस्या ट्रैकर में जाकर, इस समस्या की स्थिति देखी जा सकती है.

    इस समस्या को हल करने के लिए, अब एम्युलेटर, डिस्कवरी फ़ाइलों का इस्तेमाल करता है. ये फ़ाइलें, उपयोगकर्ता के यूआईडी के आधार पर किसी दूसरी डायरेक्ट्री में मौजूद हो सकती हैं: /run/user/&lt;uid>.

  • एम्बेड किया गया एम्युलेटर: गोल कोनों/नॉच वाले डिवाइसों का लेआउट अब ठीक से बदलता है, ताकि कोनों और नॉच के लिए जगह बन सके. इसके लिए, उन इम्यूलेटर को कोल्ड बूट करना ज़रूरी है.

  • gRPC एंडपॉइंट अब डिवाइस पर एसएमएस भेजने की सुविधा देता है.

सामान्य समस्याएं ठीक करना

  • हमने देखा है कि Riot Vanguard चालू होने पर, Windows एम्युलेटर को चलाने में समस्याएं आती हैं. Windows Emulator अब Vanguard anti-cheat का पता लगाता है. अगर Vanguard का पता चलता है, तो यह चेतावनी वाला मैसेज दिखाता है.
  • Windows पर FD_SETSIZE से जुड़ी गड़बड़ी को ठीक किया गया. अब हम लूपबैक सर्वर से नॉन-ब्लॉकिंग कनेक्शन बनाने के लिए, select() के बजाय WSAEventSelect() का इस्तेमाल करते हैं.
  • Linux इम्यूलेटर में F16C CPUID सुविधा के लिए सहायता जोड़ी गई है. साथ ही, NDK ट्रांसलेशन के ज़रिए कुछ ARM64 ऐप्लिकेशन चलाने से जुड़ी समस्याओं को ठीक किया गया है. macOS/Windows पर काम जारी है.
  • टाइमस्टैंप के हिसाब से, gpx/kml फ़ाइल में सेव किए गए रास्ते को चलाने की सुविधा ठीक की गई.
  • MacOs के लिए, लॉन्च के समय आइकॉन के उछलने की समस्या ठीक की गई.
  • अगर config.ini में hw.audioInput=no और hw.audioOutput=no है, तो अब एम्युलेटर का ऑडियो ठीक से बंद हो जाता है.
  • उस समस्या को ठीक किया गया है जिसमें एक्सटेंडेड कंट्रोल विंडो खुली होने पर, अगर एम्युलेटर विंडो को छोटा किया जाता था, तो एक्सटेंडेड कंट्रोल विंडो दिखती रहती थी. हालांकि, ऐसा तब होता था, जब एक्सटेंडेड कंट्रोल विंडो ऐक्टिव नहीं होती थी. हम आने वाले अपडेट में, इस व्यवहार को पूरी तरह से हटा देंगे. यह मामला, एक्सटेंडेड कंट्रोल की चालू विंडो से जुड़ा है.
  • एम्युलेटर शुरू होने पर, वाई-फ़ाई कनेक्ट न होने की समस्या को ठीक किया गया है.
  • जब एम्युलेटर, लंबे या अनिश्चित समय के लिए शेल कमांड जारी करता है, तो बंद होने में लगने वाले समय से जुड़ी समस्या को ठीक किया गया.
  • पीसी-बायोस को अपडेट किया गया है. इसमें बड़ी इमेज को -initrd में पास करने की सुविधा को बेहतर बनाने के लिए सुधार किए गए हैं; पिछले BIOS में, बहुत ही खराब तरीके का इस्तेमाल किया गया था.
  • -wifi-server-port विकल्प का इस्तेमाल करने पर, बंद होने के दौरान क्रैश होने की समस्या ठीक की गई.
  • अगर -prop में ऐसे विकल्प पास किए जाते हैं जो काम नहीं करते हैं, तो अब एम्युलेटर एक चेतावनी दिखाता है. (सिर्फ़ qemu.* प्रॉपर्टी काम करती हैं).
  • Windows पर एम्युलेटर बनाते समय, फ़ाइलों में लिखने से जुड़ी गड़बड़ियों के दिखने की संभावना कम होनी चाहिए. ज़्यादा जानकारी के लिए, Windows बिल्ड से जुड़े निर्देश देखें.
  • फ़ोल्ड किए जा सकने वाले एवीडी के लिए, ज़ूम करने की सुविधा वाले बटन को बंद कर दिया गया है. इससे समस्याएं आ रही थीं.
  • अब एम्युलेटर, डिवाइस को रीबूट करने के बाद बूट होने में लगने वाले समय की जानकारी सही तरीके से देता है.
  • Linux: अगर KVM की अनुमतियां काफ़ी नहीं हैं, तो अब एम्युलेटर डीबग करने से जुड़े निर्देश तुरंत प्रिंट करता है.
  • उस समस्या को ठीक किया गया है जिसकी वजह से, बिना ऐक्सेलरेटर के हाल ही की सिस्टम इमेज को बूट नहीं किया जा सका.
  • बूट पूरा होने का पता लगाने वाले सिस्टम से शुरू होने पर, मेमोरी करप्ट होने या क्रैश होने की समस्या ठीक की गई.
  • स्क्रीन रिकॉर्डिंग के लंबे सेशन के दौरान, मेमोरी लीक होने की समस्या ठीक की गई.
  • Studio 4.1 की ब्रैंडिंग दिखाने के लिए, एम्युलेटर के आइकॉन अपडेट किए गए.
  • Windows पर रिमोट सेशन का पता लगाने की सुविधा को बेहतर बनाया गया है.

सुधार: ग्राफ़िक और वीडियो डिकोड करने से जुड़ी समस्याएं ठीक की गईं

  • हमने उस समस्या को ठीक किया है जिसकी वजह से, Asphalt 9 गेम की नई स्क्रीन काली दिख रही थी.
  • NULL की मदद से मैप किए गए बफ़र को फ़्लश करने के बारे में स्पैम हटाया गया.
  • Vulkan का इस्तेमाल करने वाले मेहमान ऐप्लिकेशन के बंद होने पर, Vulkan की स्थिति को खत्म करते समय होने वाली रेस कंडीशन को ठीक किया गया है.
  • Vulkan ASTC/ETC2 इम्यूलेशन शेडर अब libOpenglRender लाइब्रेरी में शामिल कर दिए गए हैं. यह फ़ाइल सिस्टम से पढ़ने की तुलना में ज़्यादा भरोसेमंद होगा.
  • Vulkan में एक समस्या ठीक की गई है. इसमें अगर होस्ट पर Vulkan 1.0 इंस्टेंस चल रहा है, तो vkGetImageMemoryRequirements2KHR, VkMemoryRequirements2 स्ट्रक्चर के pNext फ़ील्ड को गलत तरीके से साफ़ कर देगा.
  • Vulkan रेंडरर में मेमोरी लीक की समस्या ठीक की गई.
  • हाल ही में हुई एक समस्या को ठीक किया गया है. इस समस्या में, GLSL ES 1.00 शेडर कंपाइल नहीं हो पा रहे थे. इन शेडर में, isampler2D जैसे वैरिएबल नाम इस्तेमाल किए गए थे.
  • ANGLE शेडर ट्रांसलेटर को अपडेट किया गया है. इसमें कई ऐसे सुधार किए गए हैं जिनसे Linux पर शेडर कंपाइल न होने की समस्या ठीक हो सकती है.
  • अगर बुनियादी फ़्रेमबफ़र ब्लिट शेडर कंपाइल नहीं होता है, तो अब हम एम्युलेटर को क्रैश कर देते हैं, ताकि इस समस्या को ट्रैक किया जा सके.
  • ANGLE के अपस्ट्रीम के साथ काम करने के लिए, ANGLE शेडर ट्रांसलेटर को अपडेट किया गया. इससे, अनुवाद करते समय मेमोरी करप्ट होने की समस्या ठीक हो गई है. साथ ही, इससे OpenGL ES शेडर को लगातार फ़ोल्ड करने की समस्या भी ठीक हो गई है. इन शेडर में नॉन-स्क्वेयर मैट्रिक्स का इस्तेमाल किया जाता था. शेडर ट्रांसलेटर अब एक अलग शेयर की गई लाइब्रेरी, libshadertranslator.dll है.
  • कुछ GPU ड्राइवर पर Vulkan को शुरू करने से जुड़ी समस्या को ठीक किया गया है. इस समस्या में, 1.1 वर्शन के कुछ डिवाइस फ़ंक्शन नहीं मिल रहे थे.
  • Vulkan: हमने प्रीबिल्ट लोडर का इस्तेमाल फिर से शुरू कर दिया है, क्योंकि सिस्टम Vulkan लोडर का इस्तेमाल करने से कुछ सेटअप में समस्याएं आ रही थीं. हम एक बेहतर समाधान ढूंढेंगे.
  • Vulkan की बाहरी मेमोरी का इस्तेमाल करते समय होने वाली समस्या को ठीक किया गया है. इस समस्या में, होस्ट पर मेमोरी टाइप इंडेक्स को इंपोर्ट करते समय गड़बड़ी हो सकती थी.
  • GL_ALIASED_POINT_SIZE_RANGE के इम्यूलेशन में मौजूद उस समस्या को ठीक किया गया है जिसमें होस्ट पर enum काम नहीं कर रहा था.
  • उस समस्या को ठीक किया गया है जिसमें कुछ होस्ट जीपीयू पर, GL_EXT_shader_framebuffer_fetch से जुड़ी गड़बड़ियों की वजह से Skia शेडर कंपाइल नहीं हो पाते थे.
  • D3D9 ANGLE रेंडरर की हमारी कॉपी को कुछ वर्शन पहले हटा दिया गया था. इसलिए, अब हम उन उपयोगकर्ताओं को भी d3d11 ANGLE पर अपने-आप स्विच कर देते हैं जिन्होंने यूज़र इंटरफ़ेस (यूआई) की प्राथमिकताओं में इसे चुना था.
  • Windows पर WGL को शुरू करने के दौरान, डीबग करने की ज़्यादा जानकारी जोड़ी गई है, ताकि गड़बड़ियों का पता लगाया जा सके.
  • जब hw.gltransport=virtio-gpu-pipe होता है, तो होस्ट से मेहमान को ट्रांसफ़र करते समय, होस्ट पर स्पिन न होने की वजह से परफ़ॉर्मेंस बेहतर होती है.
  • OpenGLES इम्यूलेशन के शुरू न होने पर, डीबग लॉगिंग की सुविधा जोड़ी गई.
  • स्नैपशॉट लोड होने पर, YouTube वीडियो के फ़्लिकर होने या न दिखने की समस्या ठीक की गई है.
  • फ़िलहाल, libvpx के लिए सॉफ़्टवेयर डिकोड पर वापस स्विच कर दिया गया है, क्योंकि हमें libvpx के CUDA हार्डवेयर डिकोड में समस्याएं मिली हैं. अगर होस्ट साइड पर CUDA हार्डवेयर डिकोड करने की सुविधा काम करती है, तो libvpx के हार्डवेयर डिकोड करने की सुविधा को फिर से चालू किया जा सकता है. इसके लिए, एनवायरमेंट वैरिएबल ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1 का इस्तेमाल करें.

30.0.10 (30 अप्रैल, 2020)

इस अपडेट में, Android Studio में सीधे तौर पर एम्युलेटर चलाने की सुविधा शामिल है. साथ ही, इसमें फ़्रीफ़ॉर्म विंडो मोड के साथ वर्चुअल डिवाइसों की सुविधा भी शामिल है. यह मोड डिफ़ॉल्ट रूप से चालू होता है.

Android Studio में Emulator चलाना

अब Android Emulator को सीधे Android Studio में चलाया जा सकता है. इस सुविधा का इस्तेमाल करके, स्क्रीन की जगह बचाई जा सकती है. साथ ही, हॉटकी का इस्तेमाल करके, एम्युलेटर और एडिटर विंडो के बीच तेज़ी से नेविगेट किया जा सकता है. इसके अलावा, अपने आईडीई और एम्युलेटर के वर्कफ़्लो को एक ही ऐप्लिकेशन विंडो में व्यवस्थित किया जा सकता है.

फ़्रीफ़ॉर्म विंडो मोड

अब Android Studio में वर्चुअल डिवाइस बनाते समय, 13.5 इंच की फ़्रीफ़ॉर्म टैबलेट हार्डवेयर प्रोफ़ाइल चुनकर, फ़्रीफ़ॉर्म विंडो मोड चालू किया जा सकता है. इस हार्डवेयर प्रोफ़ाइल के लिए, Android 11 Developer Preview 3 या इसके बाद के वर्शन वाली सिस्टम इमेज की ज़रूरत होती है.

पहले से मालूम समस्याएं

फ़िलहाल, विंडो मैनेजर को फ़ोकस ट्रांसफ़र करने से जुड़ी समस्याओं की वजह से, फ़्रीफ़ॉर्म विंडो का साइज़ बदलने की सुविधा काम नहीं कर रही है. इस समस्या को Android 11 की आने वाली सिस्टम इमेज रिलीज़ में ठीक कर दिया जाएगा.

30.0.0 (19 फ़रवरी, 2020)

इस अपडेट में, Android 11 (एपीआई लेवल 30) की सिस्टम इमेज शामिल हैं. साथ ही, ARM बाइनरी चलाने पर परफ़ॉर्मेंस को बेहतर बनाया गया है.

Android 11 की सिस्टम इमेज

अब Android 11 पर चलने वाला AVD बनाया जा सकता है. इसके लिए, एपीआई लेवल 30 की उपलब्ध सिस्टम इमेज में से कोई एक चुनें:

  • x86: इसमें x86 और ARMv7, दोनों एबीआई शामिल हैं.
  • x86_64: इसमें x86, x86_64, ARMv7, और ARM64 एबीआई शामिल हैं.

Android 9 और 11 की सिस्टम इमेज पर, एआरएम बाइनरी के लिए सहायता

अगर आपका ऐप्लिकेशन ARM बाइनरी पर निर्भर था और इस वजह से, आपको Android Emulator का इस्तेमाल करने में समस्या आ रही थी, तो अब अपने ऐप्लिकेशन को चलाने के लिए, Android 9 x86 सिस्टम इमेज या Android 11 की किसी भी सिस्टम इमेज का इस्तेमाल किया जा सकता है. अब ARM बाइनरी चलाने के लिए, किसी खास सिस्टम इमेज को डाउनलोड करना ज़रूरी नहीं है. Android 9 और Android 11 की ये सिस्टम इमेज, डिफ़ॉल्ट रूप से एआरएम के साथ काम करती हैं. साथ ही, एआरएम के पूरे इम्यूलेशन के साथ काम करने वाली इमेज की तुलना में, इनकी परफ़ॉर्मेंस काफ़ी बेहतर होती है.

पहले से मालूम समस्याएं

  • कुछ ARMv7 बाइनरी, Android 11 x86 और x86_64 सिस्टम इमेज पर नहीं चलती हैं. Android 11 को टारगेट करते समय, ARM64 के लिए ऐप्लिकेशन बनाएं.

29.0.11 (29 मई, 2019)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • Windows: अब एम्युलेटर, libgcc के साथ स्टैटिक तौर पर कंपाइल होने के बजाय, हमारे भेजे गए libgcc DLL पर निर्भर करता है.
  • Linux: gRPC API में logcat की सुविधा जोड़ी गई. gRPC के बारे में ज़्यादा जानकारी के लिए, gRPC स्ट्रीमिंग एम्युलेटर (Linux) देखें.
  • एम्युलेटर में अब 32-बिट x86 गेस्ट के लिए हेडलेस बिल्ड शामिल है (qemu-system-i386). इस सुविधा की मदद से, एपीआई लेवल 26 और इससे कम वाले x86 32-बिट इमेज को हेडलेस बिल्ड के साथ चलाया जा सकता है. ध्यान दें कि API 27 और इसके बाद के वर्शन वाले 32-बिट x86 गेस्ट के लिए, एम्युलेटर 64-बिट इंजन (qemu-system-x86_64) का इस्तेमाल करता है. ऐसा इसलिए, क्योंकि इन सिस्टम इमेज में, यूज़रस्पेस 32-बिट होता है, जबकि कर्नेल 64-बिट होता है. Android Studio, इम्यूलेशन इंजन चुनने के लिए कर्नल का इस्तेमाल करता है.
  • अब ANDROID_QT_LIB_PATH एनवायरमेंट वैरिएबल का इस्तेमाल करके, Qt लाइब्रेरी के कस्टम पाथ तय किए जा सकते हैं.
  • अगर QEMU1 एक्ज़ीक्यूटेबल (emulator[64]-[x86|arm|etc]) को एम्युलेटर डायरेक्ट्री में रखा गया है, तो अब QEMU1 का इस्तेमाल करने वाले पिछले बाइनरी के साथ एम्युलेटर चलाया जा सकता है.
  • Windows: उस समस्या को ठीक किया गया है जिसकी वजह से कभी-कभी "वीसीपीयू बंद करने का अनुरोध" मैसेज के साथ एम्युलेटर शुरू नहीं हो पाता था.
  • Vulkan में, कंप्रेस की गई बनावटी बनावटों में, बिना वजह पाइपलाइन बैरियर से जुड़ी समस्या को ठीक किया गया है.
  • http प्रॉक्सी अनुरोधों से जुड़ी गड़बड़ी को ठीक किया गया है. यह गड़बड़ी, चंक्ड ट्रांसफ़र एन्कोडिंग का इस्तेमाल करने पर होती थी. ज़्यादा जानकारी के लिए, कमिट की जानकारी देखें.

29.0.9 (7 मई, 2019)

इस अपडेट में, यह समस्या ठीक की गई है:

  • Windows: उस समस्या को ठीक कर दिया गया है जिसकी वजह से एम्युलेटर पर वर्चुअल सीन कैमरा और वेबकैम काम नहीं कर रहे थे.

29.0.8 (6 मई, 2019)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • जब गेस्ट सेवा हर डिसप्ले को गिनने और सेट करने के लिए होती है, तब एक से ज़्यादा वर्चुअल हार्डवेयर डिसप्ले के लिए सहायता जोड़ी गई. आने वाले समय में, एम्युलेटर सिस्टम इमेज के अपडेट में एक से ज़्यादा वर्चुअल हार्डवेयर डिसप्ले शामिल किए जाएंगे.
  • एक नया कमांड लाइन विकल्प जोड़ा गया: -delay-adb. इस विकल्प से, ADB पैकेट की प्रोसेसिंग तब तक बंद रहती है, जब तक मेहमान डिवाइस पूरी तरह से बूट नहीं हो जाता. इस विकल्प से उन समस्याओं को हल करने में मदद मिलती है जो CI एनवायरमेंट में एम्युलेटर का इस्तेमाल करने पर हो सकती हैं. ऐसा तब होता है, जब एम्युलेटर रीबूट होता है और एक ही समय में DDMS का इस्तेमाल करता है.
  • स्नैपशॉट लोड करते समय होने वाली गड़बड़ी को ठीक किया गया है. इस गड़बड़ी की वजह से, glIsRenderbuffer गलत वैल्यू दिखाता था.
  • Android डिवाइस को मेहमान के तौर पर इस्तेमाल करने वाले व्यक्ति के रीबूट करने पर, पुरानी स्थिति से जुड़ी कुछ समस्याएं ठीक की गई हैं.
  • Windows: उन समस्याओं को ठीक किया गया जिनकी वजह से, Windows के उपयोगकर्ता नाम में ASCII के बाहर के वर्ण या स्पेस होने पर, एम्युलेटर शुरू नहीं हो पाता था.

पहले से मालूम समस्याएं

  • ऑटोमोटिव सिस्टम इमेज के लिए, स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) बंद है. ऐसा इसलिए है, क्योंकि फ़िलहाल इन सिस्टम इमेज के लिए स्नैपशॉट की सुविधा उपलब्ध नहीं है.

29.0.6 (1 मई, 2019)

इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.

QEMU1 और 32-बिट Windows के लिए सहायता बंद कर दी गई है

एम्युलेटर को बेहतर तरीके से बनाए रखने के लिए, अब हम QEMU1 और 32-बिट Windows बाइनरी शिप नहीं करते हैं. अगर Windows 32-बिट का इस्तेमाल किया जा रहा है, तो 29.0.6 वर्शन पर अपग्रेड नहीं किया जा सकता.

Android Q की सिस्टम इमेज के लिए ज़रूरी शर्तें

अगर आपको Android Q सिस्टम इमेज का इस्तेमाल करने वाला AVD चलाना है, तो अब आपको 29.0.6 (यह रिलीज़ वर्शन) या उसके बाद के वर्शन का इस्तेमाल करना होगा.

Project Marble में किए गए सुधार

यह अपडेट, Project Marble पहल के तहत किए जा रहे हमारे काम का हिस्सा है. इस पहल का एलान, नवंबर 2018 में Android डेवलपर सम्मेलन में किया गया था. पिछली रिलीज़ में, Project Marble से जुड़े अन्य सुधारों के बारे में ज़्यादा जानने के लिए, Android Emulator: Project Marble से जुड़े सुधार लेख पढ़ें.

इस अपडेट के लिए, हमने Project Marble के तहत किए गए ज़्यादातर काम में, एम्युलेटर के संसाधन इस्तेमाल को कम करने पर ध्यान दिया है. जैसे, एम्युलेटर के इस्तेमाल में न होने पर, सीपीयू के इस्तेमाल को कम करना. हमने ऐसे बदलाव भी किए हैं जिनसे अलग-अलग एनवायरमेंट में एम्युलेटर का इस्तेमाल करना आसान हो गया है. साथ ही, हमने क्वालिटी से जुड़ी सामान्य समस्याओं को ठीक किया है.

यहां दिए गए सेक्शन में, Project Marble से जुड़े उन सुधारों के बारे में बताया गया है जो इस अपडेट में शामिल हैं:

होस्ट के ऑडियो के व्यवहार में सुधार

एम्युलेटर के 28.0.3 वर्शन से, होस्ट से ऑडियो इनपुट को डिफ़ॉल्ट रूप से ब्लॉक कर दिया जाता है.

अगर आपको होस्ट के ऑडियो डेटा का इस्तेमाल करना है, तो इस विकल्प को चालू किया जा सकता है. इसके लिए, ज़्यादा कंट्रोल > माइक्रोफ़ोन पर जाएं और वर्चुअल माइक्रोफ़ोन, होस्ट के ऑडियो इनपुट का इस्तेमाल करता है को चालू करें. एम्युलेटर को रीस्टार्ट करने पर, यह विकल्प अपने-आप बंद हो जाता है.

अगर कमांड लाइन का इस्तेमाल किया जा रहा है, तो -allow-host-audio विकल्प का इस्तेमाल करके भी होस्ट ऑडियो चालू किया जा सकता है. साथ ही, होस्ट ऑडियो डेटा को चालू या बंद करने के लिए, यहां दिए गए ADB कमांड का इस्तेमाल किया जा सकता है:

  • adb emu avd hostmicon
  • adb emu avd hostmicoff

हेडलेस एम्युलेटर बिल्ड के लिए सुधार

वर्शन 28.0.25 से, एम्युलेटर में हेडलेस बिल्ड का विकल्प शामिल है. यह विकल्प, यूज़र इंटरफ़ेस (यूआई) के बिना काम कर सकता है. हेडलेस बिल्ड का इस्तेमाल करके, Docker और कंटीन्यूअस इंटिग्रेशन (सीआई) वर्कफ़्लो के लिए, एम्युलेटर सेट अप किया जा सकता है.

इस अपडेट के साथ, हमने कुछ और सुधार किए हैं. इससे एम्युलेटर को कम से कम डिपेंडेंसी के साथ चलाने में मदद मिलेगी. Linux पर, हेडलेस बिल्ड में अब 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 यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी को 5.12 एलटीएस में अपग्रेड किया गया

इस अपडेट में, Qt 5.12 एलटीएस रिलीज़ में किए गए ये सुधार शामिल हैं:

  • कुछ सिस्टम इमेज शुरू करते समय, Qt के libpng डिकोडिंग में क्रैश से बचने के लिए, अब एम्युलेटर, पीएनजी इमेज को डिकोड करने के लिए libpng की अपनी कॉपी का इस्तेमाल करता है.
  • कुछ Linux इंस्टॉलेशन में, Qt पर निर्भर कुछ लाइब्रेरी के साथ काम न करने वाले वर्शन से जुड़ी समस्याओं को ठीक करने के लिए, अब हम एम्युलेटर के साथ libfreetype, libsoftokn, libsqlite3, और libxkbcommon को पैकेज करते हैं.
  • अब मॉनिटर के डाइमेंशन पाने के लिए, एमुलेटर Qt लाइब्रेरी के बजाय प्लैटफ़ॉर्म की नेटिव विंडोइंग लाइब्रेरी का इस्तेमाल करता है. Qt लाइब्रेरी से भरोसेमंद नतीजे नहीं मिलते थे.

कोल्ड बूट के बाद, सीपीयू अपने-आप ऑप्टिमाइज़ हो जाता है

सीपीयू के इस्तेमाल की समस्या को ठीक करने के लिए, अब एम्युलेटर को boot complete सिग्नल मिलने के बाद, कोल्ड बूट पर ये ADB कमांड चलाने की सुविधा मिलती है:

adb shell settings put screen_off_timeout 214783647
इस कमांड से, स्क्रीन बंद होने का टाइमआउट बढ़ जाता है. इससे, बिना चार्ज किए बैटरी मोड में एम्युलेटर का इस्तेमाल किया जा सकता है. बैटरी मोड में, बैकग्राउंड में सीपीयू का इस्तेमाल काफ़ी कम हो जाता है.
एसी चार्जिंग मोड में, GMSCore के बैकग्राउंड में होने वाले ऑपरेशन, जैसे कि ऐप्लिकेशन अपडेट करने के लिए, डिवाइस के सभी सीपीयू कोर का इस्तेमाल किया जा सकता है. इससे उपयोगकर्ता के डिवाइस पर कोई सूचना नहीं दिखती.
adb shell pm revoke com.google.android.googlequicksearchbox android.permission.RECORD_AUDIO
इस कमांड से, Google Search ऐप्लिकेशन के लिए माइक्रोफ़ोन की अनुमतियां रद्द हो जाती हैं. इससे, Google Search ऐप्लिकेशन के चालू होने पर, होम स्क्रीन और लॉन्चर पर बैकग्राउंड में सीपीयू का इस्तेमाल काफ़ी कम हो जाता है.
यह कमांड, होस्ट के लिए होस्ट ऑडियो बंद करने की सुविधा के साथ-साथ एमुलेटर के डिफ़ॉल्ट व्यवहार में भी काम करती है. इसके अलावा, यह 28.0.23 वर्शन के लिए, हॉटवर्ड की पहचान करने की सुविधा के लिए बताए गए सीपीयू के इस्तेमाल को कम करने की सुविधा अपने-आप उपलब्ध कराता है.

परफ़ॉर्मेंस मॉनिटर करने के लिए नए एनवायरमेंट वैरिएबल

अब दो नई एनवायरमेंट वैरिएबल का इस्तेमाल किया जा सकता है. इससे, एम्युलेटर की परफ़ॉर्मेंस और संसाधन के इस्तेमाल की बेहतर तरीके से निगरानी की जा सकती है.

SHOW_PERF_STATS=1
इस एनवायरमेंट वैरिएबल की मदद से, सीपीयू और रैम, दोनों के इस्तेमाल को ट्रैक किया जा सकता है. RAM के इस्तेमाल को ट्रैक करने की सुविधा, ग्राफ़िक्स के इस्तेमाल और कुल रेज़िडेंट मेमोरी के बीच अंतर करती है.
ANDROID_EMU_TRACING=1
इस एनवायरमेंट वैरिएबल की मदद से, हर बार इनपुट या ग्राफ़िक्स ऑपरेशन में ज़्यादा समय (1 मि॰से॰ से ज़्यादा) लगने पर प्रिंटिंग की सुविधा चालू की जा सकती है.
हम इस एनवायरमेंट वैरिएबल का इस्तेमाल, उन समस्याओं का पता लगाने के लिए भी कर रहे हैं जो Windows का इस्तेमाल करने वाले लोगों को हुई हैं. इन समस्याओं में, macOS या Linux का इस्तेमाल करने वाले लोगों की तुलना में ज़्यादा जंक (ड्रॉप किए गए फ़्रेम) शामिल हैं.

Project Marble में सामान्य सुधार

इस अपडेट में, प्रोजेक्ट मार्बल के तहत किए गए ये सामान्य सुधार भी शामिल हैं:

  • अब कंसोल की इन कमांड का इस्तेमाल करके, एम्युलेटर पर सभी vCPU को तुरंत रोका जा सकता है:
    • adb emu avd pause
    • adb emu avd resume
  • OpenGL ड्राइंग का ओवरहेड काफ़ी कम हो गया है. इस सुधार से, सीपीयू का इस्तेमाल कम होता है. ऐसा तब होता है, जब एम्युलेटर ऐनिमेशन चला रहा होता है.
  • QEMU के e1000 वर्चुअल नेटवर्क डिवाइस के लिए, सहायता की सुविधा फिर से शुरू कर दी गई है. इस डिवाइस का इस्तेमाल, ब्रिज किए गए नेटवर्क एनवायरमेंट में एम्युलेटर सेट अप करने के लिए किया जा सकता है. ब्रिज किए गए नेटवर्क एनवायरमेंट में, एम्युलेटर को होस्ट नेटवर्क पर और होस्ट नेटवर्क को एम्युलेटर पर दिखाया जाता है.
  • एम्युलेटर को शुरू करने के लिए, अब QEMU 2.12 के हिसाब से BIOS बाइनरी का इस्तेमाल किया जाता है.
  • वीडियो एन्कोडिंग और डिकोडिंग के लिए, ffmpeg के वर्शन को 3.4.5 पर अपग्रेड किया गया.
  • macOS पर QEMU के मुख्य लूप I/O का ओवरहेड काफ़ी कम कर दिया गया है. इसके लिए, select() पर आधारित मुख्य लूप को kqueue पर आधारित मुख्य लूप से बदल दिया गया है.
  • लॉगकैट बफ़र का साइज़ बढ़ाकर 2 एमबी कर दिया गया है, ताकि एम्युलेटर के साथ लॉगकैट चलाने पर, अचानक ईओएफ़ से जुड़ी समस्याओं को ठीक किया जा सके.
  • एम्युलेटर अब डिफ़ॉल्ट रूप से LC_ALL=C एनवायरमेंट वैरिएबल एक्सपोर्ट करता है. इस बदलाव से, अलग-अलग स्थान-भाषाओं में एम्युलेटर चलाने से जुड़ी क्रैश और असंगतता की समस्याएं ठीक हो गई हैं.
  • अब परफ़ॉर्मेंस के आंकड़ों का इस्तेमाल करके, एम्युलेटर के सीपीयू और रैम के इस्तेमाल को ट्रैक किया जा सकता है. इन आंकड़ों को ज़्यादा कंट्रोल > सेटिंग > ऐडवांस > परफ़ॉर्मेंस के आंकड़े में जाकर ऐक्सेस किया जा सकता है. अगर एम्युलेटर, सीपीयू या रैम का बहुत ज़्यादा इस्तेमाल कर रहा है, तो इन आंकड़ों का इस्तेमाल करके समस्याओं का तुरंत पता लगाएं.
  • glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE अब एमुलेट किए गए GPU के बजाय, होस्ट GPU के नतीजे का इस्तेमाल करता है. इस बदलाव से उन समस्याओं को ठीक करने में मदद मिलती है जिनमें इमेज और ऐसेट, रीडबैक के लिए सही फ़ॉर्मैट में न होने की वजह से नहीं दिखती हैं.
  • OpenGL ES एक्सटेंशन GL_EXT_texture_format_BGRA8888 और GL_APPLE_texture_format_BGRA8888 के लिए सपोर्ट जोड़ा गया. हालांकि, ऐसा तब होगा, जब ये एक्सटेंशन होस्ट के साथ काम करते हों.
  • Bugreport यूज़र इंटरफ़ेस (यूआई) में, गड़बड़ी की जांच से जुड़ी ज़्यादा जानकारी जोड़ी गई. इसके अलावा, इन कमांड का इस्तेमाल करके कंसोल से गड़बड़ी की रिपोर्ट ऐक्सेस की जा सकती हैं:
    • telnet localhost 5554
    • avd bugreport
  • Android Q सिस्टम इमेज पर, एम्युलेटर अपनी कम से कम रैम के साइज़ को बढ़ाकर 2 जीबी कर देता है.
  • जब भी OpenGL या हाइपरवाइज़र शुरू नहीं हो पाता है, तब ज़्यादा लॉगिंग और प्रिंटिंग की सुविधा जोड़ी गई है.
  • अगर एम्युलेटर, एवीडी का एक साथ कई -read-only इंस्टेंस शुरू नहीं कर पाता है, तो अब एम्युलेटर, -read-only एवीडी को तीन सेकंड में तीन बार फिर से लॉन्च करने की कोशिश करता है. इस बदलाव से, एम्युलेटर के एक साथ कई -read-only इंस्टेंस लॉन्च करने की संभावना बढ़ जाती है. ऐसा तब होता है, जब उस एवीडी के अन्य राइटेबल इंस्टेंस, पुरानी फ़ाइलों को मिटा नहीं पाते.
  • आने वाली सिस्टम इमेज के लिए, एम्युलेटर अब Hardware Composer 2.0 के साथ काम करता है. इस बदलाव से, ज़्यादातर ऐनिमेशन चलाने पर ड्राइवर का ओवरहेड कम हो जाएगा.
  • एम्युलेटर का बिल्ड अब CMake/Ninja पर आधारित है.
  • एम्युलेटर के एक्सटेंडेड कंट्रोल के यूज़र इंटरफ़ेस (यूआई) में, कीबोर्ड शॉर्टकट की टेबल में मौजूद डिवाइडर लाइनें वापस आ गई हैं.
  • उपयोगकर्ता अब हमारी टीम को, सीपीयू और रैम के इस्तेमाल की मेट्रिक देने के लिए ऑप्ट-इन कर सकते हैं. ये मेट्रिक, 10 सेकंड के अंतराल में दी जाती हैं. हम इन मेट्रिक का इस्तेमाल, एम्युलेटर के संसाधन इस्तेमाल करने से जुड़े डेटा को बेहतर बनाने के लिए करते हैं. इसमें हम अपने उपयोगकर्ताओं के अलग-अलग इस्तेमाल के उदाहरणों को शामिल करते हैं. इससे हमें एम्युलेटर को ज़्यादा असरदार और रिस्पॉन्सिव बनाने में मदद मिलती है.

Project Marble से जुड़ी सामान्य समस्याएं ठीक की गईं

इस अपडेट में, सामान्य तौर पर ठीक की गई ये समस्याएं भी शामिल हैं. ये समस्याएं, Project Marble पहल का हिस्सा हैं:

  • Android Q सिस्टम इमेज का इस्तेमाल करते समय, Intel GPU वाले सिस्टम पर दिखने वाले फ़्रेम के गलत होने और उनके हिलने से जुड़ी समस्याओं को ठीक किया गया.
  • उन समस्याओं को ठीक किया गया है जिनमें Pixel 2 XL की स्किन (या नॉच या गोल कोनों वाली कोई भी स्किन) के साथ Android Q सिस्टम इमेज का इस्तेमाल करते समय काली स्क्रीन दिखती थी.
  • उस समस्या को ठीक किया गया है जिसमें -partition-size कमांड लाइन विकल्प, डेटा पार्टीशन का साइज़ सेट नहीं करता था.
  • उस समस्या को ठीक किया गया है जिसमें कुछ मामलों में, Linx Emulator पर pulseaudio स्पिन होता था और पूरे सीपीयू कोर का इस्तेमाल करता था.
  • कंप्रेस की गई बनावटों को प्रोसेस करते समय, मेमोरी को तय सीमा से ज़्यादा ऐक्सेस करने से जुड़ी समस्याएं ठीक की गईं.
  • glTexSubImage2D में होस्ट पर होने वाली GL गड़बड़ियों को ठीक किया गया. ये गड़बड़ियां, कुछ ग्रैलोक बफ़र (फ़ॉर्मैट RGB 565, RGB10A2, RGB(A)16F) को अपडेट करते समय होती थीं.
  • Android Q की सिस्टम इमेज में, स्नैपशॉट के साथ दिखने से जुड़ी समस्या को ठीक किया गया है. इसमें सूचना पैनल की ज्यामिति को इंस्टेंस डिवाइज़र की गलत सेटिंग के साथ रेंडर किया गया था.
  • लॉन्च के दौरान क्रैश और फ़्रीज़ होने की कुछ ऐसी समस्याओं को ठीक किया गया है जिन्हें दोहराना मुश्किल था. ये समस्याएं, Qt के सिग्नल खोने या स्टार्टअप के दौरान अस्थिर और असंगत स्थितियों की वजह से होती थीं.
  • एक साथ कई अनुरोध मिलने पर होने वाली कई समस्याएं ठीक की गईं. अब हम ThreadSanitizer (TSAN) की मदद से, Linux एम्युलेटर बना सकते हैं. इससे ऐसे बग का पता आसानी से लगाया जा सकता है जिन्हें ठीक करना मुश्किल होता है.
  • Linux का इस्तेमाल करने वाले लोगों के लिए: हमें पता चला है कि कुछ होस्ट कर्नल पर, मेहमान के तौर पर इस्तेमाल किए जा रहे Android कर्नल में गड़बड़ी हो सकती है. साथ ही, सामान्य हार्डवेयर की गड़बड़ी के साथ KVM से बाहर निकल सकता है. अब ऐसा होने पर, एम्युलेटर abort() हो जाएगा, ताकि डीबग करने में आसानी हो. इससे पहले, एम्युलेटर सिर्फ़ हैंग हो जाता था.
  • Linux का इस्तेमाल करने वाले लोगों के लिए: सीआई सेटअप को आसानी से इस्तेमाल करने के लिए, -stdouterr-file <file-name> और stderr, दोनों को किसी फ़ाइल पर रीडायरेक्ट करने के लिए, -stdouterr-file <file-name> कमांड लाइन के नए विकल्प का इस्तेमाल किया जा सकता है.stdout
  • SO_REUSEADDR का गलत इस्तेमाल होने की समस्या को ठीक किया गया है. ज़्यादा जानकारी के लिए, बदलाव की जानकारी देखें.
  • Windows Emulator में लंबे समय से आ रही एक समस्या को ठीक किया गया है. इस समस्या में, अगर उपयोगकर्ता नाम में स्पेस होते थे, तो ADB कमांड जैसी सब-प्रोसेस शुरू नहीं हो पाती थीं.
  • HAXM vCPU थ्रेड में RCU के इनिशियलाइज़ेशन से जुड़ी समस्या को ठीक किया गया है. इस फ़िक्स से, कुछ क्रैश और रेस कंडीशन की समस्याओं को ठीक किया जा सकता है.
  • Android Q की हाल ही की सिस्टम इमेज का इस्तेमाल करके, स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) से स्नैपशॉट सेव और लोड करने के कुछ पैटर्न में होने वाली क्रैश की समस्या को ठीक किया गया है.
  • उस समस्या को ठीक किया गया है जिसमें स्नैपशॉट से एम्युलेटर शुरू करने पर, वर्चुअल सीन कैमरा खाली दिखता था. ऐसा तब होता था, जब स्नैपशॉट सेव करते समय एआर मैक्रो चल रहा हो.
  • हमने उस समस्या को ठीक कर दिया है जिसमें रिमोट डेस्कटॉप सेटअप वाले कुछ उपयोगकर्ताओं को Linux पर एम्युलेटर लॉन्च करते समय काली स्क्रीन दिखती थी. इससे बचने के लिए, एम्युलेटर अब साफ़ तौर पर MESA_RGB_VISUAL को कॉन्फ़िगर करता है. ज़्यादा जानकारी के लिए, कमिट की जानकारी देखें.
  • एक समस्या ठीक की गई है. इसमें टीवी एवीडी पर रोटेट करने वाले बटन दिखते थे.
  • एक समस्या ठीक की गई है. इस समस्या में, अगर एम्युलेटर को हमेशा सबसे ऊपर सेट किया जाता था, तो एम्युलेटर को घुमाने पर एक्सटेंडेड कंट्रोल विंडो हर बार दिखती थी.

फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए हार्डवेयर प्रोफ़ाइलें

एम्युलेटर में अब फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए हार्डवेयर प्रोफ़ाइलें शामिल हैं. इन नई हार्डवेयर प्रोफ़ाइलों का इस्तेमाल करने के लिए, आपके पास Android Studio 3.5 Canary 10 या इसके बाद का वर्शन होना चाहिए.

AVD बनाने के लिए, फ़ोल्ड किए जा सकने वाले दो हार्डवेयर प्रोफ़ाइल का इस्तेमाल किया जा सकता है:

  • 7.3" फ़ोल्डेबल: अनफ़ोल्ड होने पर 1536x2152, फ़ोल्ड होने पर 4.6" 840x1960
  • 8" फ़ोल्ड किया जा सकने वाला डिवाइस: अनफ़ोल्ड होने पर 2200x2480, फ़ोल्ड होने पर 6.6" 1480x2480

इनमें से किसी एक हार्डवेयर प्रोफ़ाइल का इस्तेमाल करके एम्युलेटर चलाने पर, एम्युलेटर टूलबार में मौजूद फ़ोल्ड और अनफ़ोल्ड करने की कार्रवाइयों, कंसोल कमांड या यहां दिए गए कीबोर्ड शॉर्टकट का इस्तेमाल करके, डिवाइस को फ़ोल्ड और अनफ़ोल्ड किया जा सकता है:

  • फ़ोल्ड करें: Ctrl + F (macOS पर Command + F)
  • बड़ा करें: Ctrl + U (macOS पर Command + U)

एआर मैक्रो

इम्यूलेटर में अब एआर मैक्रो शामिल हैं. इनकी मदद से, एआर की सामान्य कार्रवाइयों को टेस्ट किया जा सकता है. उदाहरण के लिए, डिवाइस के सभी सेंसर को उनकी डिफ़ॉल्ट स्थिति पर रीसेट करने के लिए, मैक्रो का इस्तेमाल किया जा सकता है.

ज़्यादा जानकारी के लिए, मैक्रो की मदद से एआर की सामान्य कार्रवाइयों को टेस्ट करना लेख पढ़ें.

Vulkan के साथ काम करता है (Windows, Linux)

Windows और Linux का इस्तेमाल करने वाले लोग, Android Emulator के साथ Vulkan ऐप्लिकेशन की जांच कर सकते हैं. इसके लिए, उन्हें Vulkan 1.1 तक के वर्शन का इस्तेमाल करना होगा. हालांकि, इसके लिए उन्हें Vulkan 1.1 के साथ काम करने वाली सिस्टम इमेज (Vulkan 1.1 के लिए Android Q Beta 3 या इसके बाद का वर्शन, Vulkan 1.0 के लिए Android Q Beta 2) और Vulkan 1.1 के साथ काम करने वाले होस्ट जीपीयू का इस्तेमाल करना होगा. इसमें 2014 और इसके बाद के ज़्यादातर Intel, NVIDIA, और AMD जीपीयू शामिल हैं.

Vulkan की सुविधा चालू करने के लिए, आपको अपनी ~/.android/advancedFeatures.ini फ़ाइल में ये सुविधा फ़्लैग जोड़ने होंगे. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं:

  • Vulkan = on
  • GLDirectMem = on

ROM डेवलपर के लिए शुरुआती सहायता

ROM डेवलपर, अब AOSP master ब्रांच पर sdk_phone_x86 या sdk_phone_x86_64 (userdebug, eng वैरिएंट) टारगेट करने वाले Vulkan-enabled एम्युलेटर चला सकते हैं.

यह सुविधा, फ़िलहाल एक्सपेरिमेंट के तौर पर उपलब्ध है. यह मुख्य रूप से उन डेवलपर के लिए है जो सिस्टम इमेज, ड्राइवर, और गेम इंजन पर काम करते हैं. कई एक्सटेंशन अब भी मौजूद नहीं हैं. हालांकि, HOST_COHERENT मेमोरी के साथ काम किया जा सकता है. अब आपको Vulkan API के ट्यूटोरियल के सैंपल चलाने में कोई समस्या नहीं होनी चाहिए.

अगर Linux का इस्तेमाल किया जा रहा है, तो इन निर्देशों का इस्तेमाल करके इसे आज़माया जा सकता है:

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

Vulkan के साथ Skia रेंडरिंग

Vulkan के साथ काम करने वाले NVIDIA और AMD के जीपीयू, GL_EXT_memory_objects एक्सटेंशन के ज़रिए OpenGL के साथ ज़ीरो-कॉपी इंटरऑप की सुविधा भी देते हैं. एम्युलेटर, इस सुविधा का इस्तेमाल करके, Skia Vulkan API की मदद से Android यूज़र इंटरफ़ेस (यूआई) को पूरी तरह से रेंडर करता है.

अगर आपके पास NVIDIA या AMD का ऐसा जीपीयू है जो Vulkan के साथ काम करता है, तो Skia रेंडरिंग को आज़माने के लिए यहां दी गई कमांड का इस्तेमाल करें. इसके लिए, आपको Android Q Beta 3 और इसके बाद के वर्शन वाली सिस्टम इमेज का इस्तेमाल करना होगा:

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

macOS पर Vulkan के साथ काम करने की सुविधा

macOS के लिए, यह सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. हालांकि, एम्युलेटर में पहले से ही Swiftshader, MoltenVK, और libportability (gfx-rs) एपीआई शामिल हैं. इन एनवायरमेंट वैरिएबल को सेट करके, इन एपीआई के साथ एक्सपेरिमेंट किया जा सकता है:

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

पहले से मालूम समस्याएं

कभी-कभी HAXM, Vulkan कोहेरेंट मेमोरी को मेहमान के तौर पर इस्तेमाल किए जा रहे डिवाइस पर मैप नहीं कर पाता. इस वजह से, एम्युलेटर बंद हो जाता है. इस समस्या को HAXM के आने वाले अपडेट में ठीक कर दिया जाएगा.

gRPC स्ट्रीमिंग एम्युलेटर (Linux)

हम हमेशा एमुलेटर को ज़्यादा से ज़्यादा वर्सेटाइल बनाने की कोशिश करते हैं. इसके लिए, हम होस्ट जीपीयू रेंडरिंग और इंटरैक्टिविटी को ज़्यादा से ज़्यादा रनिंग कॉन्टेक्स्ट में इस्तेमाल करने की अनुमति देते हैं. हमारे सीआई और रिमोट डेस्कटॉप उपयोगकर्ताओं को ये समस्याएं लंबे समय से आ रही हैं:

  • प्रोग्राम के हिसाब से, एम्युलेटर को इनपुट कमांड भेजने के लिए, इनमें से किसी एक तरीके का इस्तेमाल किया जाता है: adb शेल कमांड चलाना. इसमें ज़्यादा समय लग सकता है या telnet कंसोल का इस्तेमाल करना. यह ज़्यादा तेज़ है, लेकिन हो सकता है कि यह कुछ नेटवर्क कॉन्फ़िगरेशन के साथ काम न करे.
  • सीआई के उपयोगकर्ता अक्सर इम्यूलेटर को हेडलेस मोड में चलाते हैं. इससे ऐसी समस्याओं का पता लगाना मुश्किल हो सकता है जिनके लिए स्क्रीन का दिखना या इंटरैक्टिव होना ज़रूरी है.
  • रिमोट डेस्कटॉप का इस्तेमाल करने वाले लोग, होस्ट जीपीयू रेंडरिंग का इस्तेमाल करते समय अक्सर एम्युलेटर के साथ इंटरैक्ट नहीं कर पाते. ऐसा इसलिए होता है, क्योंकि जीपीयू रेंडरिंग अक्सर होस्ट के नॉन-वर्चुअल डिसप्ले से जुड़ी होती है.

इस समस्या को हल करने के लिए, Linux मशीन पर चलने वाला एम्युलेटर अब gRPC सेवा देता है. gRPC , आरपीसी के लिए एक सामान्य फ़्रेमवर्क है, जो एचटीटीपी पर काम करता है.

डिफ़ॉल्ट रूप से, एम्युलेटर की gRPC सेवा बंद होती है. हालांकि, इस सेवा को चालू किया जा सकता है. इसके लिए, यहां दिए गए कमांड लाइन विकल्प का इस्तेमाल करें. इसमें <port> वह पोर्ट है जिस पर एम्युलेटर को gRPC अनुरोधों को पूरा करना चाहिए. आम तौर पर, यह 5556 होता है:

-grpc <port>

सेवा शुरू होने के बाद, क्लाइंट से gRPC कमांड जारी की जा सकती हैं. कमांड के मौजूदा सेट से, इनपुट इवेंट भेजे जा सकते हैं और स्क्रीनशॉट पाए जा सकते हैं. इन कमांड से, यहां दी गई समस्याओं को हल करने में मदद मिलती है:

  • इनपुट कमांड को एचटीटीपी पर कम ओवरहेड के साथ एम्युलेटर को भेजा जा सकता है. एचटीटीपी, अन्य नेटवर्क कॉन्फ़िगरेशन में भी कमांड भेजने की सुविधा देता है.
  • मौजूदा स्क्रीन के बारे में क्वेरी करने के लिए, स्क्रीनशॉट के निर्देश भेजे जा सकते हैं. भले ही, इम्यूलेटर हेडलेस मोड में चल रहा हो. इंटरैक्टिविटी के लिए, इनपुट इवेंट को एम्युलेटर पर वापस भी भेजा जा सकता है.
  • रिमोट डेस्कटॉप का इस्तेमाल करने वाले लोग, मुख्य डिसप्ले पर हेडलेस मोड में एम्युलेटर चला सकते हैं. इसके लिए, उन्हें जीपीयू की मदद से रेंडरिंग की सुविधा का इस्तेमाल करना होगा. साथ ही, एम्युलेटर से इंटरैक्ट करने के लिए, gRPC का इस्तेमाल करके स्क्रीनशॉट पाने और इनपुट इवेंट भेजने होंगे.

उपलब्ध कमांड की पूरी सूची देखने के लिए, यह प्रोटोबफ़ देखें.

gRPC का इस्तेमाल शुरू करने में आपकी मदद करने के लिए, हमने कुछ सैंपल क्लाइंट दिए हैं. इन्हें रेफ़र किया जा सकता है.

फ़िलहाल, इसमें ये सैंपल शामिल हैं:

  • यह Go पर आधारित एक सेवा है. इसका इस्तेमाल, एम्युलेटर की स्थितियों के बारे में क्वेरी करने के लिए किया जा सकता है.
  • एक React ऐप्लिकेशन, जो स्क्रीनशॉट और इनपुट आरपीसी के ज़रिए रिमोट इंटरैक्टिविटी दिखाता है. इस सैंपल के लिए, protobuf का वर्शन 3.7.0 या इसके बाद का वर्शन ज़रूरी है.
  • यह Python का एक सैंपल है. यह इम्यूलेटर के वीएम कॉन्फ़िगरेशन के बारे में क्वेरी करता है. इसके बाद, यह कई कमांड भेजता है.

28.0.25 (29 मार्च, 2019)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले एम्युलेटर का बिल्ड

सिस्टम की कुछ ज़रूरी शर्तों की वजह से, Docker और अन्य कंटीन्यूअस इंटिग्रेशन (सीआई) वर्कफ़्लो के साथ एम्युलेटर को सेट अप करना मुश्किल हो गया है. जैसे, सिस्टम में Qt और उसकी शेयर की गई लाइब्रेरी की डिपेंडेंसी (अन्य समस्याओं के साथ) को सपोर्ट करने की सुविधा होनी चाहिए.

इस समस्या को हल करने के लिए, हमने QEMU एक्ज़ीक्यूटेबल के साथ एम्युलेटर लॉन्चर का एक वैरिएंट लॉन्च किया है. यह Qt पर निर्भर नहीं करता. Linux पर, अब भी libX11 का लिंक मौजूद है. हालांकि, हमें उम्मीद है कि हम इसे भी जल्द ही हटा देंगे.

हेडलेस एम्युलेटर का इस्तेमाल करने के लिए, एम्युलेटर को कमांड लाइन से सामान्य तरीके से चलाएं. हालांकि, एम्युलेटर बाइनरी इनवोकेशन को emulator-headless से बदलें. ज़्यादा जानकारी के लिए, 28.1.8 Canary रिलीज़ अपडेट देखें.

  • Android Q सिस्टम इमेज चलाने पर, Intel GPU में फ़्रेम के ठीक से न दिखने और फ़्रेम के गलत तरीके से डिसप्ले होने की समस्या ठीक की गई.
  • उन समस्याओं को ठीक किया गया है जिनमें Pixel 2 XL की स्किन के साथ Android Q सिस्टम इमेज का इस्तेमाल करने पर, काली स्क्रीन दिखती थी.
  • अब इम्यूलेटर को चालू करने के लिए, BIOS के नए बाइनरी का इस्तेमाल किया जाता है. इस बदलाव से, "वीसीपीयू बंद करने का अनुरोध" वाली गड़बड़ियों को कम करने में मदद मिल सकती है. ये गड़बड़ियां कभी-कभी Windows पर एम्युलेटर लॉन्च करते समय होती हैं.
  • "स्नैपशॉट से Android Q सिस्टम इमेज फिर से शुरू करने पर, गलत डिसप्ले दिखना" समस्या को ठीक करने के लिए, बैकपोर्ट किया गया.
  • उपयोगकर्ताओं को "अनधिकृत" एम्युलेटर से जुड़ी समस्याएं आ रही थीं. ऐसा इसलिए हो रहा था, क्योंकि platform-tools 28.0.2 में ADB में ऐसा बदलाव किया गया था जो काम नहीं कर रहा था. अब प्लैटफ़ॉर्म-टूल 28.0.2 से, एम्युलेटर के साथ ADB का सुरक्षित तरीके से इस्तेमाल किया जा सकता है. अगर आपको "बिना अनुमति वाले" एम्युलेटर से जुड़ी समस्याएं आ रही हैं, तो इन्हें हल करने के लिए यह तरीका अपनाएं:
    1. सभी एम्युलेटर बंद करें.
    2. ~/.android/adbkey और ~/.android/adbkey.pub, दोनों फ़ाइलें मिटाएं.
    3. यह कमांड चलाएं: adb kill-server
    4. यह कमांड चलाएं: adb devices
    5. AVD का डेटा वाइप करें.
    6. एम्युलेटर को फिर से लॉन्च करें.

28.0.23 (29 जनवरी, 2019)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

होस्ट के लिए ऑडियो इनपुट की सुविधा डिफ़ॉल्ट रूप से बंद होती है

Reddit पर हाल ही में किए गए एक पोस्ट में बताया गया है कि मेहमान के तौर पर इस्तेमाल किया जा रहा Android OS, हमेशा होस्ट के माइक्रोफ़ोन के ऑडियो का इस्तेमाल करेगा. इससे "Ok Google" सुविधा अनचाहे तरीके से काम करेगी. हमें इसके लिए अफ़सोस है. हम Android टीम के साथ मिलकर काम करेंगे, ताकि यह पक्का किया जा सके कि सिस्टम इमेज में भी हॉटवर्ड का पता लगाने की सुविधा बंद हो.

इस समस्या को हल करने के लिए, हमने ये बदलाव किए हैं:

  • होस्ट के ऑडियो डेटा को अब डिफ़ॉल्ट रूप से म्यूट कर दिया जाता है. जब मेहमान माइक्रोफ़ोन का इस्तेमाल करता है, तो होस्ट के ऑडियो के बजाय चुप्पी सुनाई देती है.
  • अगर आपको होस्ट के ऑडियो डेटा का इस्तेमाल करना है, तो अब इस विकल्प को चालू किया जा सकता है. इसके लिए, ज़्यादा कंट्रोल > माइक्रोफ़ोन पर जाएं और वर्चुअल माइक्रोफ़ोन, होस्ट के ऑडियो इनपुट का इस्तेमाल करता है को चालू करें. एम्युलेटर को फिर से चालू करने पर, यह विकल्प अपने-आप बंद हो जाता है.

सीपीयू के इस्तेमाल की जांच से जुड़े अपडेट

Project Marble की जांच के दौरान, हमें पता चला है कि एम्युलेटर पर ज़्यादा सीपीयू इस्तेमाल होने की समस्या आम तौर पर इन तीन कैटगरी में आती है:

डिवाइस का इस्तेमाल न किए जाने पर: Play Store की इमेज में ऐप्लिकेशन अपने-आप अपडेट होने की सुविधा

हमें पता चला है कि कुछ समय के अंतराल पर, इंस्टॉल किए गए सभी ऐप्लिकेशन अपडेट हो जाते हैं. ऐसा तब भी होता है, जब उपयोगकर्ता ने लॉग इन न किया हो. इस प्रोसेस के दौरान, GMSCore और dex2oat में सीपीयू का इस्तेमाल, कोर की संख्या x 100% (आम तौर पर ~400%) तक पहुंच जाता है. Play Store ऐप्लिकेशन में, ऐप्लिकेशन के अपने-आप अपडेट होने की सुविधा बंद करके, इस समस्या को ठीक किया जा सकता है.

डिवाइस के इस्तेमाल न होने पर: हॉटवर्ड पहचान

होम स्क्रीन पर और किसी ऐप्लिकेशन के फ़ोरग्राउंड में न होने पर, सीपीयू का इस्तेमाल बहुत ज़्यादा हो सकता है. यह 25% तक हो सकता है और कभी-कभी 50% तक भी पहुंच सकता है. ऐसा हॉटवर्ड डिटेक्शन की वजह से होता है, जो होस्ट को लगातार पिंग करता है. होस्ट के ऑडियो इनपुट को बंद करके, इस समस्या को कम नहीं किया जा सकता. ऐसा इसलिए, क्योंकि सीपीयू का इस्तेमाल मुख्य रूप से होस्ट से मेहमान तक डेटा पहुंचने में लगने वाले समय की वजह से होता है. हालांकि, Google ऐप्लिकेशन से माइक्रोफ़ोन के ऐक्सेस की अनुमतियां रद्द करके, इस समस्या को कम किया जा सकता है.

चालू होने पर, कभी-कभी इस्तेमाल न किए जाने पर: ऐनिमेशन

सीपीयू का ज़्यादा इस्तेमाल होने की तीसरी वजह ऐनिमेशन हैं. हमें पता चला है कि ग्राफ़िक्स ड्राइवर स्टैक को ऑप्टिमाइज़ करके, सीपीयू के इस्तेमाल को कम किया जा सकता है. ऐसा तब भी किया जा सकता है, जब एम्युलेटर का इस्तेमाल न किया जा रहा हो. हम Project Marble के तहत, ग्राफ़िक्स ड्राइवर ऑप्टिमाइज़ेशन को धीरे-धीरे रोल आउट करेंगे.

28.0.22 (21 दिसंबर, 2018)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • एक पुरानी समस्या को ठीक किया गया है. इस समस्या में, कुछ सेटिंग में Quickboot सेव करने पर Mac Emulator रीबूट हो जाता था या कर्नेल पैनिक हो जाता था. (समस्या 120951634)
  • मैप की गई फ़ाइल को रैम स्नैपशॉट के तौर पर इस्तेमाल करते समय, अब एम्युलेटर बंद होने पर फ़ाइल मैपिंग को साफ़ तौर पर अनमैप कर देता है.

28.0.20 (11 दिसंबर, 2018)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

  • Windows पर मौजूद उस समस्या को ठीक किया गया है जिसकी वजह से, Intel GPU के कुछ मॉडल में स्नैपशॉट लोड करने पर एम्युलेटर फ़्रीज़ हो जाता था.
  • उस समस्या को ठीक किया गया है जिसकी वजह से, ANDROID_SDK_HOME की गैर-स्टैंडर्ड जगह का इस्तेमाल करते समय unauthorized ADB डिवाइस की स्थिति में बदलाव हो जाता था.
  • Windows पर उस समस्या को ठीक किया गया है जिसकी वजह से, सीपीयू ऐक्सेलरेटर की सुविधा बंद होने पर सिस्टम इमेज बूट करते समय एम्युलेटर क्रैश हो जाता था.
  • पिक्सलेट किए गए एम्युलेटर डिसप्ले की समस्या ठीक की गई. अब डाउनसैंपलिंग की सुविधा काम करनी चाहिए.
  • macOS 10.14 और इसके बाद के वर्शन में, एक समस्या ठीक की गई है. इसमें सुलभता से जुड़ी नई सुरक्षा सेटिंग के साथ इंटरैक्ट करने की वजह से, वर्चुअल सीन कैमरे के माउस लुक कंट्रोल बहुत ज़्यादा संवेदनशील हो जाते थे.
  • टाइमज़ोन की गिनती में हुई गड़बड़ी को ठीक किया गया है. इसकी वजह से, एम्युलेटर की घड़ी कभी-कभी बदल जाती थी.
  • cocos2d और Unreal engine के अलग-अलग ऐप्लिकेशन में रेंडरिंग से जुड़ी गड़बड़ियों को ठीक किया गया.
  • एम्युलेटर में वाई-फ़ाई पीयर-टू-पीयर के लिए सहायता जोड़ी गई. अगर Pie Play Store की नई इमेज का इस्तेमाल किया जा रहा है, तो अब दो एम्युलेटर वाई-फ़ाई के ज़रिए एक-दूसरे से सीधे कम्यूनिकेट कर सकते हैं. वाई-फ़ाई पीयर-टू-पीयर का इस्तेमाल करने के लिए, एक ही -wifi-server-port और -wifi-client-port आर्ग्युमेंट के साथ दो एवीडी शुरू करें:
    • emulator @<server-avd-name> -wifi-server-port 9999
    • emulator @<client-avd-name>-wifi-client-port 9999
  • Windows पर ज़्यादा वेबकैम इस्तेमाल करने की सुविधा जोड़ी गई है. इसके लिए, किसी भी साइज़ के फ़्रेम को लिया जाता है और Android गेस्ट में कैमरे की सेटिंग के हिसाब से, उनके साइज़ को डाइनैमिक तरीके से बदला जाता है.

28.0.16 (नवंबर 2018)

इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.

संसाधन का उपयोग

अब एम्युलेटर, कम रैम का इस्तेमाल करता है. खास तौर पर, जब एपीआई लेवल 28 या इससे ज़्यादा वाले सिस्टम इमेज का इस्तेमाल किया जा रहा हो. इन सिस्टम इमेज में, गेस्ट-साइड ग्राफ़िक्स ड्राइवर के लिए मेमोरी के इस्तेमाल को बेहतर बनाया गया है.

इसके अलावा, हमने इन क्षेत्रों में संसाधन के इस्तेमाल को भी बेहतर बनाया है:

  • लंबे समय तक चलने वाले टेस्ट के दौरान, एम्युलेटर के लिए मेमोरी का इस्तेमाल कम किया गया. अगर आपको लंबे समय तक चलने वाली जांच के दौरान मेमोरी के इस्तेमाल से जुड़ी समस्याएं अब भी आ रही हैं, तो कृपया Issue Tracker में एक समस्या बनाएं. इसमें अपने इस्तेमाल के उदाहरण के बारे में बताएं.
  • ऐनिमेशन वाले ऐप्लिकेशन चलाने पर, सीपीयू का इस्तेमाल कम होता है.
  • उस समस्या को ठीक किया गया है जिसकी वजह से Windows पर QEMU AIO कॉन्टेक्स्ट लीक हो सकता था.

एक ही एवीडी के कई इंस्टेंस एक साथ चलाएं

अब एक ही एवीडी के कई इंस्टेंस लॉन्च किए जा सकते हैं और उन्हें एक साथ चलाया जा सकता है. पहले इंस्टेंस के बाद लॉन्च किए गए इंस्टेंस, रीड-ओनली मोड में होते हैं. साथ ही, मेहमान के वर्चुअल डिस्क में किए गए बदलावों को बंद करने पर खारिज कर दिया जाता है.

एक ही समय में एक ही एवीडी के कई इंस्टेंस चलाने के लिए, -read-only फ़्लैग का इस्तेमाल करके कमांड लाइन से पहले इंस्टेंस के बाद कोई भी इंस्टेंस लॉन्च करें.

यह सुविधा, Android इमेज के लिखने लायक हिस्सों से जुड़ी QCOW2 फ़ाइलों को कॉपी करके उपलब्ध कराई जाती है. डिस्क स्पेस को मैनेज करने में आपकी मदद करने के लिए, हमने qemu-img कमांड लाइन टूल को भी बंडल किया है. इससे, एक साथ कई इंस्टेंस लॉन्च करने से पहले, QCOW2 फ़ाइलों को प्री-कमिट किया जा सकता है.

इसके अलावा, फ़ाइल-बैक किए गए मेहमान ओएस की रैम के स्नैपशॉट सुविधा के साथ इस्तेमाल करने पर, कई एवीडी इंस्टेंस, प्राइमरी एवीडी के क्विकबूट स्नैपशॉट को कॉपी-ऑन-राइट मेहमान ओएस की रैम के सामान्य सोर्स के तौर पर शेयर करते हैं. इस प्रॉपर्टी का मतलब है कि इंस्टेंस, अपनी ज़्यादातर रैम को एक-दूसरे के साथ शेयर करते हैं. इस सुविधा का इस्तेमाल करके, ऐसे टेस्ट चलाएं जिनके लिए एक साथ कई डिवाइसों की ज़रूरत होती है.

हम आपके सुझावों का स्वागत करते हैं. ये सुझाव, सामान्य इंटरैक्टिव या सीआई वर्कफ़्लो में इस्तेमाल होने वाले संभावित मामलों के बारे में होने चाहिए. कृपया Issue Tracker में समस्याएं बनाएं या उनके लिए वोट करें.

फ़ाइल के साथ सेव किए गए गेस्ट रैम के स्नैपशॉट

गेस्ट रैम को फ़ाइल के तौर पर पहले से असाइन और मैप करने की सुविधा की मदद से, अब एम्युलेटर रनटाइम के दौरान Quickboot स्नैपशॉट सेव कर सकता है. इसके लिए, उसे बंद होने के बाद सभी काम करने की ज़रूरत नहीं होती. अगर आपको फ़िलहाल अपने इम्यूलेटर बंद करते समय, सेव होने में ज़्यादा समय लगता है, तो इस सुविधा को चालू करें. इससे Quickboot की परफ़ॉर्मेंस बेहतर होगी. डिफ़ॉल्ट रूप से, Quickboot स्नैपशॉट को बंद करने पर सेव किया जाता है. साथ ही, इसे हर बार फिर से लोड किया जाता है. यह ठीक उसी तरह काम करता है जैसे किसी असली डिवाइस को स्लीप मोड में डालना और फिर से चालू करना.

Android के गेस्ट रैम को अब डिफ़ॉल्ट रूप से अपने-आप सेव किया जाता है. इसलिए, अगर आपको डिवाइस की स्थिति तय करनी है और उसे बार-बार लोड करना है, तो आपको एम्युलेटर को यह बताना होगा कि हर सेशन के बाद बदलावों को खारिज कर दिया जाए. ऐसा इन तरीकों से किया जा सकता है:

  • कमांड लाइन से एम्युलेटर लॉन्च करते समय, -no-snapshot-save या -read-only फ़्लैग का इस्तेमाल करें.
  • बेहतर कंट्रोल > स्नैपशॉट > सेटिंग पर जाएं. इसके बाद, क्या मौजूदा स्थिति को क्विकबूट में अपने-आप सेव करना है? को नहीं पर स्विच करें.
  • इस विकल्प को चुनने के बाद, आपको एम्युलेटर को रीस्टार्ट करना होगा. अगर एम्युलेटर को अपने-आप सेव होने के लिए सेट किया गया है, तो चेकपॉइंट सेट करने के लिए यह कमांड चलाएं:
    adb emu avd snapshot remap 0
    
    इस निर्देश को चलाने के बाद, एम्युलेटर का क्विकबूट स्नैपशॉट उसी चेकपॉइंट पर रहेगा. अपने चेकपॉइंट से एम्युलेटर को लोड करने के लिए, उसी कमांड को फिर से चलाएं.

स्नैपशॉट, स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) फ़ंक्शन के ज़रिए लिए जाते हैं और लोड किए जाते हैं. ये पहले की तरह ही काम करते हैं. इनमें फ़ाइल मैपिंग नहीं होती.

क्विकबूट के काम करने के तरीके में यह एक बड़ा बदलाव है. इसलिए, हम आपसे यह जानना चाहेंगे कि क्या इससे क्विकबूट की परफ़ॉर्मेंस बेहतर हुई है. साथ ही, इसका इस्तेमाल करते समय आपको किस तरह की समस्याएं आ रही हैं. अगर आपको समस्याएं आ रही हैं, तो इस सुविधा को बंद किया जा सकता है. इसके लिए, अपनी ~/.android/advancedFeatures.ini फ़ाइल में यह लाइन जोड़ें:

QuickbootFileBacked = off

स्नैपशॉट से एम्युलेटर शुरू करने पर, एम्युलेटर इन दोनों सुविधाओं को बंद कर देता है: क्विकबूट स्नैपशॉट के लिए अपने-आप सेव होने की सुविधा और एम्युलेटर बंद होने पर क्विकबूट स्नैपशॉट सेव करने की सुविधा. स्नैपशॉट से एम्युलेटर शुरू करने के लिए, -snapshot कमांड लाइन विकल्प का इस्तेमाल करें या एवीडी मैनेजर में स्नैपशॉट से एम्युलेटर लॉन्च करें. इससे, Quickboot स्नैपशॉट के अनजाने में ओवरराइट होने की संभावना कम हो जाती है. साथ ही, फ़ाइल-बैक किए गए Quickboot स्नैपशॉट का इस्तेमाल न करने वाले फ़ॉलबैक पाथ की वजह से होने वाली देरी से बचा जा सकता है.

QEMU 2.12

हमने QEMU के अपने वर्शन को QEMU 2.9 से QEMU 2.12 पर रीबेस किया है. इस अपडेट में, QEMU में हुए ये बदलाव शामिल हैं:

यहां कुछ ऐसे अहम बदलावों के बारे में बताया गया है जिनका असर Android Emulator पर पड़ता है:

  • x86: gdbstub अब SSE रजिस्टर का ऐक्सेस देता है.
  • डिस्क इमेज: इमेज लॉक करने की सुविधा जोड़ी गई है और यह डिफ़ॉल्ट रूप से चालू रहती है. जब तक होस्ट, OFD या posix लॉकिंग की सुविधा के साथ काम करता है, तब तक एक से ज़्यादा QEMU प्रोसेस एक ही इमेज में नहीं लिख सकतीं. हालांकि, अगर विकल्पों में कोई और जानकारी दी गई है, तो ऐसा किया जा सकता है.
  • qemu-img: qemu-img resize, इमेज के नए हिस्सों के लिए पहले से मेमोरी तय करने की सुविधा देता है.
  • QCOW2 फ़ाइल का साइज़ कम करने की सुविधा अब qemu और qemu-img में उपलब्ध है.

सुलभता

  • स्क्रीन रीडर से जुड़ी समस्याओं को ठीक किया गया है. साथ ही, स्क्रीन रिकॉर्ड और स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) में इन टूल के लिए बेहतर सपोर्ट जोड़ा गया है.
  • कलर ब्लाइंडनेस (रंग पहचानने में समस्या) वाले लोगों के लिए, क्विक बूट की सूचना के आइकॉन को ज़्यादा सुलभ बनाया गया है.

ग्राफ़िक्स

  • मेमोरी ऐक्सेस करने पर कोई रोक न होने की वजह से होने वाली समस्या को ठीक किया गया है. यह समस्या, OpenGL ES वर्टेक्स ऐरे पॉइंटर के लिए हो सकती है.
  • कुछ पुराने जीपीयू में OpenGL 2.1 या इससे ज़्यादा वर्शन काम नहीं करता था. यह ज़रूरी है. इसके अलावा, उनमें अन्य समस्याएं भी थीं. इन समस्याओं की वजह से, एम्युलेटर शुरू होने पर क्रैश हो सकता है, फ़्रीज़ हो सकता है या डिफ़ॉल्ट जीपीयू सेटिंग पर इसका इस्तेमाल नहीं किया जा सकता. अगर एमुलेटर को पता चलता है कि इन जीपीयू का इस्तेमाल किया जा रहा है, तो अब यह अपने-आप Swiftshader रेंडरर पर स्विच हो जाता है.
  • उस समस्या को ठीक किया गया है जिसकी वजह से eglSwapBuffers के समय FBO != 0 बाइंड होने पर, एम्युलेटर सही फ़्रेमबफ़र पोस्ट नहीं करता था.
  • उस समस्या को ठीक किया गया है जिसकी वजह से वर्चुअल Android डिसप्ले सिर्फ़ सबसे ऊपर बाईं ओर दिखता था. हमें लगता है कि ऐसा Qt एनवायरमेंट वैरिएबल के गलत तरीके से कॉन्फ़िगर होने की वजह से हुआ है. अब एम्युलेटर, Qt स्केलिंग से जुड़े सभी एनवायरमेंट वैरिएबल को बदल देता है.
  • स्नैपशॉट से GLES1 ऐप्लिकेशन लोड करते समय, कुछ स्थितियों में एम्युलेटर क्रैश होने की समस्या को ठीक किया गया है.
  • OpenGL में एक साथ कई काम करने से जुड़ी समस्याओं को ठीक किया गया है. साथ ही, रेंडर थ्रेड लॉन्च करने से जुड़ी समस्याओं को ठीक किया गया है. इनकी वजह से, डेटा को दो बार मिटाया जा सकता था या डेटा खराब हो सकता था.
  • Android Emulator अब एपीआई लेवल 28 या उसके बाद के वर्शन का इस्तेमाल करने वाली सिस्टम इमेज के लिए, ASTC LDR कंप्रेस की गई टेक्सचर फ़ाइल (GL_KHR_texture_compression_astc_ldr) के साथ काम करता है.
  • ज़्यादातर नए जीपीयू में, अब GLESDynamicVersion फ़ीचर फ़्लैग का इस्तेमाल किए बिना, डिफ़ॉल्ट रूप से OpenGL ES 3.x चालू करके एम्युलेटर लॉन्च किया जा सकता है.
  • -gpu guest (मेहमान के तौर पर इस्तेमाल किए जा रहे डिवाइस में सॉफ़्टवेयर रेंडरिंग) अब काम नहीं करता है. एपीआई लेवल 28 या इससे ऊपर के लेवल के लिए सिस्टम इमेज, अब अपने-आप Swiftshader का इस्तेमाल करने लगेंगी (-gpu swiftshader_indirect).
  • अगर एम्युलेटर को कमांड लाइन से -no-window फ़्लैग का इस्तेमाल करके लॉन्च किया जाता है, तो अब डिफ़ॉल्ट रेंडरर Swiftshader होता है.

जगह की जानकारी

  • अब एम्युलेटर, अक्षांश और देशांतर की पोज़िशन के साथ-साथ बेयरिंग को भी अपडेट कर सकता है. मैग्नेटोमीटर वर्चुअल सेंसर, GPX या KML फ़ाइल चलाने पर, मोशन का अनुमान लगाकर, मैग्नेटिक नॉर्थ के हिसाब से अपने-आप डाइनैमिक तरीके से अडजस्ट हो जाता है.
  • अब डिवाइस की स्पीड को लोकेशन पेज पर सेट किया जा सकता है.
  • GPX या KML फ़ाइल चलाने पर, स्पीड अपने-आप सेट हो जाती है. साथ ही, फ़ाइल चलने के बाद स्पीड शून्य पर सेट हो जाती है.
  • ऊंचाई अब -1,000 और +10,000 मीटर के बीच नहीं होनी चाहिए.
  • उस समस्या को ठीक किया गया है जिसकी वजह से वर्चुअल जीपीएस की जगह की जानकारी समय-समय पर अपडेट नहीं होती थी. ऐसा तब होता था, जब एक्सटेंडेड कंट्रोल विंडो को कम से कम एक बार खोला नहीं जाता था.

कैमरा

Windows पर, अब ज़्यादा वेबकैम काम करते हैं. ऐसा इसलिए, क्योंकि एम्युलेटर, वेबकैम से डिलीवर किए गए कैमरा फ़्रेम का साइज़ डाइनैमिक तरीके से बदलता है. इस सुविधा की मदद से, फ़्रेम डिलीवरी में होने वाली गड़बड़ियों की वजह से एम्युलेटर के हैंग होने की समस्या को भी रोका जा सकता है.

Play Store

Play Store की इमेज में डिस्क स्पेस खत्म होने की समस्याओं को ठीक करने के लिए, अब Play Store AVD के साथ चलाने पर, एम्युलेटर userdata पार्टीशन का साइज़ अपने-आप बदलकर 6 जीबी कर देता है.

क्वालिटी में सामान्य सुधार और गड़बड़ियां ठीक की गई हैं

  • कुछ उपयोगकर्ताओं ने बताया कि एम्युलेटर धीरे चल रहा है. हमें एक संभावित वजह का पता चला है. इसकी वजह से, एम्युलेटर की टेंप डायरेक्ट्री में बहुत सारी पुरानी फ़ाइलें मौजूद होती हैं. इस समस्या को हल करने के लिए, एम्युलेटर अब उस डायरेक्ट्री में ADB liveness check फ़ाइलें सेव नहीं करता है. हालांकि, उस फ़ोल्डर का कॉन्टेंट मिटाने से भी समस्या हल हो सकती है. आपके ऑपरेटिंग सिस्टम के हिसाब से, फ़ोल्डर इनमें से किसी एक जगह पर मौजूद होता है:
    • Windows: C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
    • macOS या Linux: /tmp/android-<username>/*
  • अगर रैम कम होने की वजह से एम्युलेटर चालू नहीं हो पाता है, तो अब गड़बड़ी का मैसेज दिखता है. अगर Windows का इस्तेमाल किया जा रहा है और आपको लगता है कि रैम खाली है, लेकिन फिर भी एम्युलेटर शुरू नहीं हो पा रहा है, तो हो सकता है कि कमिट चार्ज की सीमा पार हो गई हो. इस समस्या को हल करने के लिए, एम्युलेटर से जुड़ी समस्या हल करने वाला पेज देखें.
  • -sysdir कमांड लाइन विकल्प अब अनुमानित सिस्टम इमेज डायरेक्ट्री को सही तरीके से बदल देता है.
  • वर्चुअल मॉडेम अब मॉडल की गतिविधि की जानकारी +MAI क्वेरी के साथ काम करता है.
  • मेमोरी लीक, मेमोरी करप्शन, और सीपीयू के इस्तेमाल से जुड़ी कई समस्याओं को ठीक किया गया है. अगर आपको क्रैश होने, मेमोरी लीक होने या अन्य संसाधनों का ज़्यादा इस्तेमाल होने की समस्या आ रही है, तो कृपया Issue Tracker में जाकर समस्या की जानकारी दें.
  • macOS 10.14 पर फिर से दिखने वाली उस समस्या को ठीक किया गया है जिसमें एम्युलेटर के साथ ब्लूटूथ हेडसेट का इस्तेमाल करने पर, ऑडियो की क्वालिटी खराब हो जाती थी. ऐसा होने से रोकने के लिए, macOS पर चल रहा एम्युलेटर अब ब्लूटूथ ऑडियो का इस्तेमाल नहीं करता. (समस्या 37070892)
  • Windows पर उस समस्या को ठीक किया गया है जिसकी वजह से, एम्युलेटर की घड़ी सही टाइमज़ोन में नहीं होती थी.
  • Linux सिस्टम पर, स्पिनिंग हार्डड्राइव (एचडीडी) वाले इम्यूलेटर के धीमे चलने और हैंग होने की समस्या ठीक की गई.
  • macOS पर स्टैक करप्शन की वजह बन सकने वाली कुछ कंपाइल चेतावनियों को ठीक किया गया है.
  • ऐसी समस्याओं को ठीक किया गया है जिनकी वजह से, हैंग होने की गुमराह करने वाली रिपोर्ट मिल सकती हैं.
  • थ्रेड पूल को डिस्ट्रॉय करने से जुड़ी समस्या को ठीक किया गया है. अगर कोई थ्रेड नहीं बनाई गई है, तो इसकी वजह से क्रैश हो सकता है.
  • macOS पर, टाइमर के ठीक से काम न करने की समस्या को ठीक किया गया है. इस वजह से, टाइमर रुक जाते थे और अन्य समस्याएं होती थीं. अगर आपको macOS पर एम्युलेटर के हैंग होने की समस्या आ रही है, तो कृपया Issue Tracker में समस्या की जानकारी दें.
  • उस समस्या को ठीक किया गया है जिसमें एम्युलेटर को बंद करने पर यूज़र इंटरफ़ेस (यूआई) बंद हो जाता था, लेकिन एम्युलेटर बंद नहीं होता था.
  • कभी-कभी क्रैश होने की समस्याओं को ठीक किया गया है. इनमें /dev/urandom के बहुत ज़्यादा इंस्टेंस खोलने की वजह से बंद होने की समस्या भी शामिल है.
  • उस समस्या को ठीक किया गया है जिसकी वजह से, पहली बार के बाद एम्युलेटर शुरू नहीं हो पाता था. ऐसा तब होता था, जब ADB को ज़बरदस्ती बंद कर दिया जाता था.
  • MIPS बिल्ड को हटा दिया गया है. अगर आपको अब भी MIPS की ज़रूरत है, तो कृपया Issue Tracker में समस्या की जानकारी दें.
  • स्नैपशॉट लोड होने पर, ADB कनेक्शन खराब होने की समस्या को ठीक किया गया है.
  • स्नैपशॉट को फिर से शुरू करने पर, एम्युलेटर विंडो में इमेज के धुंधले दिखने या स्क्रीन से गायब होने की समस्या को ठीक किया गया है. ऐसा तब होता था, जब डिवाइस का ओरिएंटेशन, एवीडी के डिफ़ॉल्ट ओरिएंटेशन से अलग होता था.
  • स्नैपशॉट सेव करते समय क्रैश होने की समस्याओं को ठीक किया गया है.
  • Linux पर, btrfs फ़ाइल सिस्टम की वजह से इम्यूलेटर की स्पीड बहुत कम हो सकती है. ऐसा इसलिए होता है, क्योंकि इम्यूलेटर स्नैपशॉट अपने-आप सेव करता है और वर्चुअल डिस्क डिवाइसों के लिए कॉपी-ऑन-राइट का इस्तेमाल करता है. हमारा सुझाव है कि ~/.android/avd डायरेक्ट्री को साफ़ करें और खाली ~/.android/avd डायरेक्ट्री पर यह कमांड चलाएं:
    chattr +C
    
    इससे, ऐसे फ़ोल्डर में नए स्नैपशॉट बनते हैं जहां कॉपी-ऑन-राइट की सुविधा बंद होती है.

HAXM 7.3.2

हम HAXM 7.3.2 के बारे में फिर से बताना चाहते हैं, क्योंकि इसे इंस्टॉल करना ज़रूरी है. ऐसा इसलिए, ताकि हाल ही की सिस्टम इमेज, एम्युलेटर पर ठीक से चल सकें. HAXM 7.3.2, स्टेबल चैनल में पहले से उपलब्ध होना चाहिए. इसे https://github.com/intel/haxm/releases से मैन्युअल तरीके से भी इंस्टॉल किया जा सकता है.

इस वर्शन में, HAXM से जुड़ी कुछ समस्याएं ठीक की गई हैं. जैसे:

  • गेस्ट ओएस के रैंडम क्रैश की समस्या ठीक की गई है. ये ओएस, Linux के नए कर्नल (>= 4.6) का इस्तेमाल करते हैं. उदाहरण के लिए, Ubuntu 18.04 (#39, #74).
  • x86 इंस्ट्रक्शन एम्युलेटर की गड़बड़ी को ठीक किया गया है. इससे होस्ट क्रैश हो सकता था (#93).

Windows के 32-बिट वर्शन के लिए सहायता बंद कर दी गई है

कम इस्तेमाल और रखरखाव की ज़्यादा लागत की वजह से, हम Windows पर चलने वाले Android Emulator के 32-बिट वर्शन को बंद करने का प्लान बना रहे हैं. हम Android Emulator के 32-बिट वर्शन को हटाने और उसके बंद होने से पहले, ट्रांज़िशन प्लान लॉन्च करेंगे. हालांकि, हम इस बदलाव के बारे में आपके सुझाव/राय/शिकायत का इंतज़ार कर रहे हैं.

अगर आपको Windows पर चलने वाले Android Emulator के 32-बिट वर्शन पर भरोसा है, तो कृपया हमें Issue Tracker में बताएं. साथ ही, हमें बताएं कि हम आने वाले समय में आपके साथ कैसे बेहतर तरीके से काम कर सकते हैं.

27.3.10 (अगस्त 2018)

इस अपडेट में, गड़बड़ी को ठीक करने के लिए यह बदलाव किया गया है:

रैम के साइज़ से जुड़ी कॉन्फ़िगरेशन की समस्या ठीक की गई

कुछ उपयोगकर्ताओं ने बताया कि एम्युलेटर धीरे चल रहा है. हमें एक संभावित वजह का पता चला है. इसकी वजह से, एवीडी की config.ini फ़ाइल में एवीडी के रैम का साइज़ गलत तरीके से सेट किया जा रहा था.

इस समस्या को कम करने के लिए, एम्युलेटर उन इमेज के लिए रैम का कम से कम लेवल बढ़ा देता है जो एपीआई लेवल 26 या उसके बाद के लेवल का इस्तेमाल करती हैं. यह लेवल, Android Studio के डिफ़ॉल्ट लेवल 1536 एमबी पर सेट होता है. अगर आपके एवीडी की config.ini फ़ाइल में hw.ramSize को मेगाबाइट में नहीं दिखाया जा रहा है, तो कृपया Issue Tracker में समस्या की जानकारी दें. आपको config.ini फ़ाइल यहां मिलेगी:

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

27.3.9 (जुलाई 2018)

इस अपडेट में, ये सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं:

Windows Hypervisor Platform के लिए, गड़बड़ी के मैसेज को बेहतर बनाया गया

कुछ उपयोगकर्ताओं को यह पता लगाने में मुश्किल आ रही थी कि WHPX एम्युलेटर को चालू करने पर, Windows Hypervisor Platform (WHPX) शुरू क्यों नहीं हुआ. इन समस्याओं का पता लगाने में आपकी मदद करने के लिए, हमने गड़बड़ी के बारे में ज़्यादा जानकारी देने वाले मैसेज जोड़े हैं. -verbose फ़्लैग का इस्तेमाल करके, कमांड लाइन से एम्युलेटर को चालू करके, गड़बड़ी के इन मैसेज को चालू किया जा सकता है.

सामान्य समस्याएं ठीक करना

  • कैमरा ऐप्लिकेशन में स्नैपशॉट लोड करते समय होने वाली OpenGL गड़बड़ियों को ठीक किया गया है.

27.3.8 (जुलाई 2018)

इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.

स्नैपशॉट

अब किसी डिवाइस कॉन्फ़िगरेशन के लिए, एक से ज़्यादा एवीडी स्नैपशॉट सेव किए जा सकते हैं. साथ ही, एम्युलेटर शुरू करते समय, यह चुना जा सकता है कि सेव किए गए स्नैपशॉट में से किसे लोड करना है.

Android Studio 3.2 Canary 13 से, हर डिवाइस कॉन्फ़िगरेशन में वर्चुअल डिवाइस कॉन्फ़िगरेशन डायलॉग में मौजूद ऐडवांस सेटिंग में एक कंट्रोल शामिल होता है. इसकी मदद से, यह तय किया जा सकता है कि एवीडी शुरू करते समय कौनसे एवीडी स्नैपशॉट को लोड करना है.

स्नैपशॉट की सुविधाओं को बेहतर बनाने के लिए, हमने ज़्यादा कंट्रोल डायलॉग में स्नैपशॉट कैटगरी जोड़ी है. इस नए पैन में, एवीडी स्नैपशॉट को सेव और लोड करने के कंट्रोल शामिल हैं. इनमें, क्विक-बूट स्नैपशॉट को सेव और लोड करने के कंट्रोल भी शामिल हैं. ये कंट्रोल पहले सेटिंग पैन में मौजूद थे.

सेव किए गए हर स्नैपशॉट का नाम और ब्यौरा बदला जा सकता है.

ज़्यादा जानकारी के लिए, स्नैपशॉट देखें.

HAXM 7.2.0

HAXM 7.2.0 अब सभी चैनलों में उपलब्ध है.

इस अपडेट में गड़बड़ियां ठीक की गई हैं. साथ ही, ज़्यादा रैम के लिए बेहतर सपोर्ट दिया गया है. साथ ही, HAXM के इस अपडेट और Emulator 27.3 और इसके बाद के वर्शन में, स्नैपशॉट के कॉन्टेंट को ज़रूरत के हिसाब से RAM में लोड किया जाता है. वर्चुअल डिवाइस के शुरू होने पर, पूरे स्नैपशॉट को लोड नहीं किया जाता. इस बदलाव से, स्नैपशॉट लोड होने में लगने वाला समय काफ़ी कम हो जाएगा.

ज़्यादा जानकारी के लिए, वीएम ऐक्सेलरेट करने की सुविधा कॉन्फ़िगर करना लेख पढ़ें.

27.2.9 (मई 2018)

इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.

स्क्रीन रिकॉर्डिंग

अब Android Emulator से वीडियो और ऑडियो रिकॉर्ड किया जा सकता है. साथ ही, रिकॉर्डिंग को WebM या ऐनिमेशन वाले GIF फ़ाइल फ़ॉर्मैट में सेव किया जा सकता है.

स्क्रीन रिकॉर्डिंग के कंट्रोल, ज़्यादा कंट्रोल विंडो के स्क्रीन रिकॉर्ड करें टैब में होते हैं.

अहम जानकारी: स्क्रीन रिकॉर्डिंग के कंट्रोल खोलने के लिए, Control + Shift + R (Mac पर Command + Shift + R) दबाएं.

स्क्रीन रिकॉर्डिंग शुरू करने के लिए, स्क्रीन रिकॉर्ड टैब में मौजूद, रिकॉर्डिंग शुरू करें बटन पर क्लिक करें. रिकॉर्डिंग रोकने के लिए, रिकॉर्डिंग रोकें पर क्लिक करें.

रिकॉर्ड किए गए वीडियो को चलाने और सेव करने के कंट्रोल, स्क्रीन रिकॉर्ड टैब में सबसे नीचे मौजूद होते हैं. वीडियो को सेव करने के लिए, टैब में सबसे नीचे मौजूद मेन्यू से WebM या GIF चुनें. इसके बाद, सेव करें पर क्लिक करें.

एम्युलेटर से स्क्रीन रिकॉर्डिंग को रिकॉर्ड और सेव भी किया जा सकता है. इसके लिए, कमांड लाइन पर यह कमांड इस्तेमाल करें:

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

स्क्रीनशॉट

कमांड लाइन से स्क्रीनशॉट लेने के लिए, इनमें से किसी एक कमांड का इस्तेमाल करें:

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

स्क्रीनशॉट, PNG फ़ॉर्मैट में सेव किए जाते हैं.

वर्चुअल सीन कैमरा और ARCore

ARCore की मदद से ऑगमेंटेड रिएलिटी (एआर) वाले ऐप्लिकेशन डेवलप और टेस्ट करना अब और भी आसान हो गया है. इसके लिए, नए वर्चुअल सीन कैमरे का इस्तेमाल करें. इससे आपको वर्चुअल एनवायरमेंट में एआर का अनुभव आज़माने का मौका मिलता है.

एम्युलेटर में वर्चुअल सीन कैमरा इस्तेमाल करने के बारे में जानकारी पाने के लिए, Android Emulator में एआर ऐप्लिकेशन चलाना लेख पढ़ें.

Pixel डिवाइस पर Google Play Store की इमेज

Pixel और Pixel 2 डिवाइस की इमेज के लिए, Google Play Store अब चालू हो गया है. Android Studio 3.2 और इसके बाद के वर्शन में, AVD Manager में यह जानकारी दी जाती है. साथ ही, Play Store कॉलम में Google Play का लोगो दिखता है. जिन AVD में Google Play Store चालू होता है उनमें ज़्यादा कंट्रोल डायलॉग में Google Play टैब होता है. इसमें डिवाइस पर Google Play services को अपडेट करने के लिए एक बटन होता है.

स्नैपशॉट

अब एम्युलेटर को रीस्टार्ट किए बिना, क्विक बूट स्नैपशॉट लोड किया जा सकता है. स्नैपशॉट लोड करने के लिए, ज़्यादा कंट्रोल विंडो में सेटिंग पेज खोलें. इसके बाद, अभी लोड करें बटन पर क्लिक करें.

हमने स्नैपशॉट को लोड करने और सेव करने की प्रोसेस में कई सुधार किए हैं. इससे संसाधनों का बेहतर तरीके से इस्तेमाल किया जा सकेगा और हर ऑपरेशन में लगने वाला समय कम हो जाएगा. अगर आपको अब भी सेव करने में ज़्यादा समय लगता है, तो कृपया समस्या की शिकायत करें. इसमें अपने सीपीयू, रैम, और चल रहे किसी भी एंटीवायरस / फ़ायरवॉल / सुरक्षा सॉफ़्टवेयर की सेटिंग के बारे में जानकारी दें.

Skia की मदद से रेंडर करना

एपीआई 27 या इसके बाद के वर्शन के लिए इमेज का इस्तेमाल करते समय, एम्युलेटर Skia की मदद से Android यूज़र इंटरफ़ेस (यूआई) को रेंडर कर सकता है. इससे यूआई को ज़्यादा आसानी से और बेहतर तरीके से रेंडर किया जा सकता है.

फ़िलहाल, Skia का इस्तेमाल करने के लिए, आपको इसे साफ़ तौर पर चालू करना होगा.

Skia रेंडरिंग चालू करने के लिए, adb शेल में इन कमांड का इस्तेमाल करें:

  su
  setprop debug.hwui.renderer skiagl
  stop
  start

कैमरा

Windows पर, Android Emulator अब वेबकैम के बैक एंड के तौर पर Media Foundation का इस्तेमाल करता है. इससे वेबकैम से कैप्चर किए गए वीडियो की परफ़ॉर्मेंस और फ़्रेम रेट में काफ़ी सुधार होता है. यह 720 पिक्सल 30 FPS तक होता है.

Mac पर, अब webcam0 और webcam1 का एक साथ इस्तेमाल किया जा सकता है.

अन्य चीज़ें

-phone-number-prefix कमांड-लाइन विकल्प को बदलकर -phone-number [number] कर दिया गया है. इससे पूरा फ़ोन नंबर सेट किया जा सकता है.

अब अल्फ़ान्यूमेरिक एसएमएस पतों का इस्तेमाल किया जा सकता है.

समाधान

  • Android Emulator का Linux वर्शन अब आधुनिक Clang C++ टूलचेन का इस्तेमाल करके बनाया गया है. इस बदलाव से, libGL और libstdc++ से जुड़ी गड़बड़ियों की वजह से एम्युलेटर के शुरू न होने की समस्या ठीक हो जाती है.
  • ऐप्लिकेशन के क्रैश होने और हैंग होने की कई वजहों को ठीक किया गया है.
  • डिस्क में ज़रूरत के मुताबिक जगह न होने की वजह से, क्रैश और हैंग होने की समस्याओं से बचने के लिए, अब एम्युलेटर स्टार्टअप के दौरान यह जांच करता है कि डिस्क में ज़रूरत के मुताबिक जगह है या नहीं. अगर डिस्क में कम से कम 2 जीबी जगह खाली नहीं है, तो एम्युलेटर शुरू नहीं होगा.
  • उस समस्या को ठीक किया गया है जिसकी वजह से कुछ Unity गेम रेंडर नहीं हो पा रहे थे.
  • डीएनएस से जुड़ी समस्या को ठीक किया गया है. इस समस्या की वजह से, एम्युलेटर नेटवर्क से कनेक्ट नहीं हो पा रहा था.
  • उस समस्या को ठीक किया गया है जिसकी वजह से, वर्चुअल डिवाइस कॉन्फ़िगरेशन डायलॉग के ज़रिए किसी एवीडी को असाइन की गई इंटरनल स्टोरेज में किए गए बदलाव काम नहीं कर रहे थे.
  • adb की कई प्रोसेस बनने और ठीक से बंद न होने की समस्या को ठीक किया गया है.
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से, रोटेट करने वाले बटन और यूज़र इंटरफ़ेस (यूआई) के अन्य हिस्से काम नहीं करते थे. ऐसा तब होता था, जब तक कि एक्सटेंडेड कंट्रोल विंडो खुली न हो.
  • उस समस्या को ठीक कर दिया गया है जिसकी वजह से, होस्ट से कॉपी और चिपकाने की सुविधा तब तक काम नहीं करती थी, जब तक कि एक्सटेंडेड कंट्रोल डायलॉग को कम से कम एक बार न खोला गया हो.
  • फ़्रेमलेस एम्युलेटर के साइज़ बदलने वाले रेक्टैंगल को अपडेट किया गया है, ताकि यह एम्युलेटर की विज़ुअल थीम को बेहतर तरीके से फ़ॉलो कर सके.
  • हवाई जहाज़ मोड चालू होने पर, फ़ोन और एसएमएस की सुविधा अब ठीक से बंद हो जाती है.
  • स्नैपशॉट लोड करने के बाद, एसएमएस और सेल्युलर सुविधा के बंद होने की समस्या को ठीक किया गया है.
  • अब आपको झूठी चेतावनी वाले मैसेज नहीं मिलेंगे. जैसे, “Unable to open... \pstore.bin. Permission denied.”
  • Mac की कुछ स्क्रीन पर, AVD को फिर से जगह पर रखने में आ रही समस्या को ठीक किया गया है.
  • Pixel 2 XL स्किन के साथ AVD चलाने पर, नए MacBook Pro कंप्यूटरों पर स्क्रीन के फ़्लिकर होने और खाली होने की समस्याएं ठीक की गईं.
  • बिना फ़्रेम वाले एम्युलेटर के चालू होने पर, ज़ूम किए गए मोड में स्विच करते समय खाली स्क्रीन की समस्याओं को ठीक किया गया.
  • ज़ूम इन करने पर, डिवाइस की स्किन और एम्युलेटर के कॉन्टेंट के स्क्रोल होने में अंतर आने की समस्या को ठीक किया गया है.

अगर आपको अब भी हैंग होने या अन्य समस्याओं का सामना करना पड़ रहा है, तो कृपया समस्या की शिकायत करें.

27.1.12 (मार्च 2018)

इस अपडेट में, इन समस्याओं को ठीक किया गया है:

  • एम्युलेटर शुरू करने के बाद, ब्लूटूथ ऑडियो की क्वालिटी खराब हो जाती है. (समस्या 37095756)
  • एक एम्युलेटर को भेजी गई जगह की जानकारी, सभी एम्युलेटर को भेजी गई. (समस्या 73450633)
  • कंसोल का इस्तेमाल करके सेट की गई जीपीएस लोकेशन को, ग्राफ़िकल यूज़र इंटरफ़ेस में Extended Controls > Location का इस्तेमाल करके सेट की गई वैल्यू से बदल दिया गया था. (समस्या 73471760)

अगर आपको अब भी हैंग होने या अन्य समस्याओं का सामना करना पड़ रहा है, तो कृपया समस्या की शिकायत करें.

इस अपडेट के साथ-साथ मौजूदा सिस्टम इमेज और Android Studio के झलक वर्शन की मदद से, Android Emulator का इस्तेमाल करके ARCore से बनाए गए ऑगमेंटेड रिएलिटी ऐप्लिकेशन चलाए जा सकते हैं. ज़्यादा जानकारी और निर्देशों के लिए, Android Emulator में एआर ऐप्लिकेशन चलाना लेख पढ़ें.

27.1.10 (फ़रवरी 2018)

  • कैमरे से कैप्चर किए गए कॉन्टेंट का रिज़ॉल्यूशन

    अब अटैच किए गए वेबकैम से 720 पिक्सल वाले फ़्रेम कैप्चर किए जा सकते हैं.

    Android 8.1 (एपीआई लेवल 27) और उसके बाद के वर्शन की सिस्टम इमेज के साथ काम करने के लिए, अटैच किए गए किसी भी वेबकैम में 720 पिक्सल वाले फ़्रेम कैप्चर करने की सुविधा होनी चाहिए.

  • समाधान

    • उस समस्या को ठीक किया गया है जिसकी वजह से वेबकैम से कैप्चर की गई इमेज कभी-कभी खराब दिखती थी या पूरी तरह से हरी दिखती थी.
    • उस समस्या को ठीक किया गया है जिसकी वजह से, डिवाइस के हैंग न होने पर भी यह मैसेज दिखता था: "emulator: ERROR: detected a hanging thread 'Qt event loop'. 15,000 मि॰से॰ तक कोई जवाब नहीं मिला".

अगर आपको अब भी हैंग होने या अन्य समस्याओं का सामना करना पड़ रहा है, तो कृपया समस्या की शिकायत करें.

27.1.7 (फ़रवरी 2018)

  • फ़्रेमलेस एम्युलेटर विंडो:

    डिफ़ॉल्ट रूप से, डिवाइस स्किन फ़ाइलों वाले एम्युलेटर अब आस-पास के विंडो फ़्रेम के बिना दिखाए जाते हैं. आस-पास की विंडो फ़्रेम दिखाने के लिए, ज़्यादा कंट्रोल विंडो के सेटिंग पैनल में जाकर, डिवाइस के चारों ओर विंडो फ़्रेम दिखाएं को चालू करें.

  • AVD स्नैपशॉट के साथ काम करने को ज़्यादा असरदार बनाने के लिए, क्विक बूट की सुविधा में ये सुधार किए गए हैं:

    • एक्सटेंडेड कंट्रोल डायलॉग बॉक्स के सेटिंग पैन में मौजूद, अभी सेव करें बटन का इस्तेमाल करके, किसी भी समय एवीडी स्नैपशॉट सेव किया जा सकता है.
    • एम्युलेटर, कई मामलों में स्नैपशॉट सेव करने में लगने वाले समय को कम कर देता है. ऐसा इसलिए होता है, क्योंकि यह सिर्फ़ मौजूदा स्थिति और पहले से सेव किए गए स्नैपशॉट के बीच के अंतर को सेव करता है.

    ज़्यादा जानकारी के लिए, क्विक बूट दस्तावेज़ देखें.

  • इमुलेटर को QEMU 2.9 का इस्तेमाल करने के लिए अपडेट किया गया है.

    कुछ अहम सुधारों में ये शामिल हैं:

    • बेहतर परफ़ॉर्मेंस के लिए, ऑप्टिमाइज़ किया गया I/O और फ़ाइनर-ग्रेन्ड I/O थ्रेड लॉकिंग.
    • QEMU 2.8 (26.1.4) के बाद से मौजूद गड़बड़ियां ठीक की गईं.
    • HAXM बैक एंड का नया वर्शन लागू किया गया है.

    बदलावों की पूरी सूची QEMU 2.9 के बदलाव लॉग में देखें.

  • OpenGL ES 3.0 के मुताबिक Swiftshader लागू करना:

    इमुलेटर का Swiftshader रेंडरर अब OpenGL ES 3.0 के साथ पूरी तरह से काम करता है. Swiftshader रेंडरर के बारे में ज़्यादा जानने के लिए, एक्सटेंडेड कंट्रोल के सेटिंग > ऐडवांस सेक्शन पर जाएं.

  • समाधान

    • उस समस्या को ठीक किया गया है जिसकी वजह से, क्लिपबोर्ड शेयर करने की सुविधा चालू करें विकल्प को बंद और चालू करने पर ही क्लिपबोर्ड शेयर करने की सुविधा काम कर रही थी.
    • कम रिज़ॉल्यूशन वाले एवीडी के साथ Swiftshader रेंडरिंग बैक एंड का इस्तेमाल करते समय, हैंग होने की समस्या को ठीक किया गया है.

27.0.5 (जनवरी 2018)

  • Windows पर रेंडरिंग के लिए ANGLE की सुविधा अब डिफ़ॉल्ट रूप से बंद है.

    अगर ANGLE आपके लिए बेहतर काम करता है, तो कमांड लाइन फ़्लैग -gpu angle_indirect का इस्तेमाल करके, इसे फिर से चालू किया जा सकता है. इसके अलावा, एक्सटेंडेड कंट्रोल विंडो खोलें और सेटिंग > ऐडवांस पर जाएं. इसके बाद, OpenGL ES रेंडरर सेटिंग के लिए ANGLE D3D11 चुनें.

  • Shift+B दबाने पर कैपिटल B टाइप न होने की समस्या को ठीक किया गया है.

27.0.2 (दिसंबर 2017)

  • नई क्विक बूट सुविधा की मदद से, एमुलेटर को तेज़ी से शुरू किया जा सकता है. यह सुविधा, आपके एवीडी इंस्टेंस के स्नैपशॉट पर आधारित होती है.

    क्विक बूट की सुविधा, सभी एवीडी के लिए डिफ़ॉल्ट रूप से चालू होती है. पहली बार एवीडी शुरू करने पर, उसे कोल्ड बूट करना होगा. यह डिवाइस को चालू करने जैसा होता है. इसके बाद, एवीडी को तेज़ी से शुरू किया जा सकता है. साथ ही, सिस्टम को उस स्थिति में वापस लाया जा सकता है जब आपने एम्युलेटर बंद किया था. यह डिवाइस को चालू करने जैसा होता है.

    अगर आपको यह कंट्रोल करना है कि एम्युलेटर स्नैपशॉट कब सेव करे, तो एम्युलेटर की एक्सटेंडेड कंट्रोल विंडो खोलें और सेटिंग पर क्लिक करें. यहां, एप्लिकेशन बंद करते समय क्विक बूट की स्थिति सेव करें के लिए, इनमें से कोई एक सेटिंग चुनी जा सकती है:

    • हां: एम्युलेटर बंद करने पर, क्विक बूट स्नैपशॉट हमेशा सेव करें. यह डिफ़ॉल्ट विकल्प है.
    • नहीं: क्विक बूट स्नैपशॉट को कभी सेव न करें; हमेशा कोल्ड बूट करें.
    • पूछें: एम्युलेटर बंद करते समय, यह प्रॉम्प्ट करें कि क्विक बूट स्नैपशॉट को सेव करना है या नहीं.

    आपने जो विकल्प चुना है वह सिर्फ़ मौजूदा समय में खुले हुए एवीडी पर लागू होगा.

    ज़्यादा जानकारी के लिए, क्विक बूट का दस्तावेज़ देखें.

  • Mac OpenGL ES 3 के लिए सहायता जोड़ी गई है. यह एपीआई लेवल 24 और इसके बाद के वर्शन, Google API, और x86 ABI का इस्तेमाल करने वाली सिस्टम इमेज के लिए है.

  • OpenGL ES 2+ वाले ऐप्लिकेशन को ज़्यादा बेहतर तरीके से चलाने के लिए, अब एम्युलेटर OpenGL कोर प्रोफ़ाइल का इस्तेमाल करता है. हालांकि, ऐसा तब ही होता है, जब यह प्रोफ़ाइल उपलब्ध हो.

  • Swiftshader / ANGLE की मदद से रेंडर करने के नए विकल्प:

    • -gpu swiftshader_indirect: Swiftshader का तेज़ और ज़्यादा स्टेबल वर्शन. यह Quick Boot के साथ काम करता है.
    • -gpu angle_indirect (सिर्फ़ Windows के लिए): ANGLE D3D का ज़्यादा स्टेबल वर्शन. यह क्विक बूट के साथ भी काम करता है.

    -gpu swiftshader और -gpu angle के पुराने विकल्पों का इस्तेमाल अब नहीं किया जा सकता. एक्सटेंडेड कंट्रोल विंडो में, सेटिंग > ऐडवांस में OpenGL ES रेंडरर सेटिंग के लिए"SwiftShader " और"ANGLE " विकल्प अब *_indirect वैरिएंट का इस्तेमाल करते हैं.

  • कई अन्य गड़बड़ियां ठीक की गईं.

26.1.4 (अगस्त 2017)

यह एक छोटी रिलीज़ है. इसमें गड़बड़ियां ठीक की गई हैं. साथ ही, जीपीयू कॉन्फ़िगरेशन में ये सुधार किए गए हैं:

  • ANGLE रेंडरर पर चलने के दौरान बूट ऐनिमेशन चालू करें
  • ANGLE रेंडरर पर चलने के दौरान GLES3 को बंद करें

26.1.3 (अगस्त 2017)

यह एक छोटी रिलीज़ है. इसमें गड़बड़ियां ठीक की गई हैं, परफ़ॉर्मेंस में सुधार किए गए हैं, और सुविधाओं में कुछ बदलाव किए गए हैं.

  • Android 8.0 की नई सिस्टम इमेज का इस्तेमाल करने के लिए, अब इस वर्शन की ज़रूरत होगी. ये Treble के साथ काम करते हैं और इनमें अलग-अलग vendor.img पार्टीशन होते हैं.
  • HAXM 6.2.0 का नया वर्शन अब उपलब्ध है. इसे SDK Manager में देखा जा सकता है. इसमें ये अपडेट शामिल हैं:
    • मेमोरी के इस्तेमाल में सुधार किया गया है. HAXM की ओर से पिन की गई मेमोरी का पीक वर्किंग सेट, अब एवीडी की रैम के साइज़ के बराबर नहीं है. इसके बजाय, मेमोरी को ज़रूरत के हिसाब से पेज में बांटा जाता है. इससे कम रैम वाले कंप्यूटरों पर, एम्युलेटर को ज़्यादा भरोसेमंद तरीके से चलाने में मदद मिलेगी.
    • HAXM 6.2.0 वाला एम्युलेटर, अब macOS पर तेज़ी से बूट हो सकता है. इससे, लंबे समय तक चलने वाली शुरुआती प्रोसेस को स्किप किया जा सकता है.
  • GPU कॉन्फ़िगरेशन में सुधार
    • मेहमान के तौर पर सॉफ़्टवेयर रेंडरिंग करते समय, बूट होने पर काली स्क्रीन दिखने की समस्या ठीक की गई. इसके लिए, Swiftshader की मदद से होस्ट के तौर पर सॉफ़्टवेयर रेंडरिंग की सुविधा का इस्तेमाल किया गया. एपीआई लेवल 19 से 25 के लिए, Google API वाली सिस्टम इमेज के नए वर्शन में गेस्ट-साइड रेंडरिंग काम करनी चाहिए.
    • इस समस्या को ठीक किया गया है. इसमें पुराने Intel GPU का पता चलने पर, एम्युलेटर को सॉफ़्टवेयर रेंडरर पर स्विच कर दिया जाता था. हालांकि, एम्युलेटर असल में डिसक्रीट जीपीयू पर चल रहा था. ANGLE या Swiftshader रेंडरिंग का इस्तेमाल करने के लिए, किन जीपीयू पर स्विच किया जाएगा, यह इस तरह तय किया जाता है:
      • Intel के पुराने iGPU में, OpenGL और ANGLE D3D, दोनों ड्राइवर से जुड़ी समस्याएं हैं. Intel HD Graphics 3xxx और इससे पुराने वर्शन वाले ग्राफ़िक्स कार्ड का इस्तेमाल करने वाले लोग, Swiftshader का इस्तेमाल करेंगे.
      • कुछ उपयोगकर्ताओं ने बताया कि वे एपीआई लेवल 25 की इमेज का इस्तेमाल नहीं कर पा रहे हैं. इसकी वजह यह है कि "Pixel Launcher काम नहीं कर रहा है" वाला बग मौजूद है. ऐसा लगता है कि Intel HD 4xxx के कुछ मॉडल में ड्राइवर से जुड़ी समस्या है. इसलिए, उन्हें अपने-आप ANGLE का इस्तेमाल करने के लिए स्विच कर दिया जाएगा.
    • जीपीयू इम्यूलेशन से बेहतर नतीजे पाने के लिए, हमारा सुझाव है कि आप NVIDIA या AMD का डिसक्रीट जीपीयू या Intel का नया जीपीयू (Iris, HD 5xxx, HD 5xx/6xx) इस्तेमाल करें.
    • उस समस्या को ठीक किया गया है जिसकी वजह से, अगर एवीडी को hw.gpu.mode=host के साथ कॉन्फ़िगर किया गया था और एम्युलेटर को रिमोट डेस्कटॉप क्लाइंट में लॉन्च किया गया था, तो एम्युलेटर शुरू नहीं हो पाता था (OpenGL इम्यूलेशन शुरू नहीं हो सका).
    • "OpenGL ES API लेवल (डिवाइस को रीस्टार्ट करना ज़रूरी है)" सेटिंग के बारे में ज़्यादा जानकारी दी गई है. साथ ही, अगर आपको समस्याएं आ रही हैं या आपको OpenGL ES के निचले एपीआई लेवल पर टेस्ट करना है, तो OpenGL ES 3 से OpenGL ES 2 पर डाउनग्रेड करने का विकल्प जोड़ा गया है.
    • Mesa रेंडरर अब काम नहीं करता. इसलिए, hw.gpu.mode=mesa अब होस्ट पर Swiftshader का इस्तेमाल करने के लिए अपने-आप स्विच हो जाएगा.
  • macOS के लिए किए गए सुधार:
    • इम्यूलेटर अब macOS 10.13 High Sierra के साथ पूरी तरह से काम करता है. इसके लिए, Hypervisor.Framework या HAXM 6.2.0 का इस्तेमाल किया जा सकता है.
    • macOS पर, 32-बिट x86 इमेज के लिए Hypervisor.framework अब डिफ़ॉल्ट रूप से चालू होता है. इससे परफ़ॉर्मेंस बेहतर होती है और macOS के साथ काम करने की सुविधा मिलती है. अगर आपको इसमें कोई समस्या आ रही है, तो कृपया गड़बड़ी की रिपोर्ट सबमिट करें और HVF = off को ~/.android/advancedFeatures.ini में जोड़ें. अगर यह फ़ाइल मौजूद नहीं है, तो इसे बनाएं.
    • Hypervisor.framework का इस्तेमाल करते समय, इंटरनेट न होने या डीबगर अटैच न हो पाने की समस्याओं को ठीक किया गया है.
    • वेबकैम से कैप्चर की गई इमेज की परफ़ॉर्मेंस और कंपैटिबिलिटी को बेहतर बनाने के लिए, QTKit पर आधारित कैमरा कैप्चर को AVFoundation पर आधारित बफ़र किए गए कैमरा कैप्चर से बदल दिया गया है.
  • कुछ सिस्टम इमेज में वाई-फ़ाई की सुविधा जोड़ी गई है. फ़िलहाल, यह सुविधा सिर्फ़ एपीआई लेवल 25 के लिए उपलब्ध है. "AndroidWifi" नाम का ऐक्सेस पॉइंट उपलब्ध है और Android इससे अपने-आप कनेक्ट हो जाता है. कमांड लाइन पैरामीटर -feature -Wifi का इस्तेमाल करके, एम्युलेटर को चलाने पर वाई-फ़ाई की सुविधा बंद की जा सकती है.
  • कुछ लोगों ने शिकायत की है कि तय साइज़ वाली Play Store सिस्टम इमेज में, ज़रूरत के हिसाब से स्टोरेज नहीं है. इसलिए, हमने डिफ़ॉल्ट रूप से साइज़ को 800 एमबी से बढ़ाकर 2 जीबी कर दिया है.
  • गड़बड़ी की रिपोर्ट करने वाले यूज़र इंटरफ़ेस (यूआई) पेज को सीधे सेटिंग पेज से खोलने के लिए, कीबोर्ड शॉर्टकट (Ctrl+Shift+U) जोड़ा गया है.
  • उस समस्या को ठीक किया गया है जिसमें Intel x86 EPT वाला पुराना सीपीयू इस्तेमाल करने पर, एक से ज़्यादा कोर कॉन्फ़िगर होने पर इम्यूलेटर बूट नहीं होता था. हालांकि, इस सीपीयू में UG की सुविधा नहीं होती थी.
  • उस समस्या को ठीक किया गया है जिसमें अगर इम्यूलेटर, Xen हाइपरवाइज़र में चल रहा होता था, तो HyperV का पता सही तरीके से नहीं चल पाता था.
  • इस वर्शन में, Linux के कुछ कॉन्फ़िगरेशन में एम्युलेटर के शुरू होने पर क्रैश होने की समस्या को ठीक किया गया है.

26.1.2 (जुलाई 2017)

इस रिलीज़ में नई सुविधाएं जोड़ी गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.

  • एक्सटेंडेड कंट्रोल में, कस्टम एचटीटीपी प्रॉक्सी कॉन्फ़िगरेशन तय करने की सुविधा जोड़ी गई है. इसके लिए, ज़्यादा पर क्लिक करें. इसके बाद, सेटिंग और प्रॉक्सी पर क्लिक करें. डिफ़ॉल्ट रूप से, एम्युलेटर Android Studio की एचटीटीपी प्रॉक्सी सेटिंग का इस्तेमाल करता है. हालांकि, इस स्क्रीन पर जाकर, मैन्युअल प्रॉक्सी कॉन्फ़िगरेशन तय किया जा सकता है.

  • मेहमान मोड वाले जीपीयू के लिए वीएनसी की सुविधा जोड़ी गई है, ताकि एम्युलेटर को रिमोट से देखा और कंट्रोल किया जा सके. उदाहरण के लिए, एम्युलेटर लॉन्च किया जा सकता है और वीएनसी को पोर्ट 5901 पर सुनने की अनुमति दी जा सकती है. इसके लिए, यह तरीका अपनाएं:

    1. लागू करें: emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
    2. पोर्ट 5901 से कनेक्ट करने के लिए, कोई वीएनसी व्यूअर खोलें. जैसे, टाइटवीएनसी व्यूअर.

      • Mac में पहले से मौजूद स्क्रीन शेयरिंग क्लाइंट का इस्तेमाल करने के लिए, एम्युलेटर लॉन्च करते समय वीएनसी पासवर्ड की ज़रूरत होती है. पासवर्ड सेट करने के लिए, इस कमांड का इस्तेमाल करें:

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

        इसके बाद, कंसोल में change vnc password डालें और पासवर्ड डालें.

    फ़िलहाल, Android O पर वीएनसी मोड काम नहीं करता.

  • एक्सटेंडेड कंट्रोल की सहायता स्क्रीन में, बग की शिकायत करें बटन जोड़ा गया है (ज़्यादा पर क्लिक करें. इसके बाद, सहायता और एम्युलेटर की सहायता पर क्लिक करें). गड़बड़ी की रिपोर्ट करें पर क्लिक करने से एक डायलॉग बॉक्स खुलता है. इसमें गड़बड़ी की रिपोर्ट की जानकारी देखी जा सकती है. जैसे, स्क्रीनशॉट, एवीडी कॉन्फ़िगरेशन की जानकारी, और गड़बड़ी की रिपोर्ट का लॉग. इसके बाद, रिपोर्ट को अपने लिए सेव किया जा सकता है या इमुलेटर से जुड़ी समस्याओं की शिकायत की जा सकती है.

  • एम्युलेटर और वर्चुअल सेंसर पैनल में, जाइरोस्कोप सेंसर जोड़ा गया. इसके लिए, ऐसी सिस्टम इमेज की ज़रूरत होती है जिसमें जायरोस्कोप काम करता हो. फ़िलहाल, यह सुविधा एपीआई लेवल 24 और 25 पर काम करती है.

  • Windows पर Qemu DNS की सूची में, होस्ट के लिए पसंदीदा DNS जोड़ा गया है. ऐसा तब किया जाता है, जब होस्ट पर कई वर्चुअल नेटवर्क इंटरफ़ेस, कई डीएनएस पते उपलब्ध कराते हैं. हालांकि, ये पते एम्युलेटर के लिए काम नहीं करते.

  • macOS 10.10 और इसके बाद के वर्शन पर, सर्वर फ़्लैग के ज़रिए 32-बिट x86 इमेज के लिए, macOS Hypervisor.Framework की एक्सपेरिमेंटल सुविधा जोड़ी गई है. इससे बूट होने में लगने वाला समय और परफ़ॉर्मेंस बेहतर होगी.

    • अगर आपको इसमें कोई समस्या आती है, तो HVF = off में HVF = off लाइन जोड़ें.~/.android/advancedFeatures.ini
  • OpenGL ES 3.x अब सिस्टम इमेज और होस्ट GPU के लिए डिफ़ॉल्ट रूप से चालू है. ये OpenGL ES 3 के साथ काम करते हैं. फ़िलहाल, सिर्फ़ Android O (एपीआई लेवल 26) और Windows/Linux होस्ट, OpenGL ES 3 के साथ काम करते हैं.

    • अगर आपको OpenGL ES 3 में समस्याएं आ रही हैं, तो ~/.android/advancedFeatures.ini में GLESDynamicVersion = off लाइन जोड़ें.
  • एम्युलेटर अब रेंडरिंग के लिए, ऑफ़स्क्रीन OpenGL FBO का इस्तेमाल करता है. हालांकि, फ़ाइनल डिसप्ले इमेज पोस्ट करने के लिए इसका इस्तेमाल नहीं किया जाता. इससे अलग-अलग प्लैटफ़ॉर्म पर, कलर कंसिस्टेंसी से जुड़ी समस्याओं को ठीक करने में मदद मिलेगी.

  • एम्युलेटर के अचानक धीमे हो जाने की समस्याओं से जुड़ा डेटा इकट्ठा करने के बाद, हमें पता चला है कि यह समस्या, Intel के पुराने OpenGL ड्राइवर और Windows के अपडेट के बीच किसी इंटरैक्शन की वजह से हो सकती है. इसलिए, Intel HD 4000, 3000, 2000 (और इनसे जुड़े जीपीयू) का इस्तेमाल करने वाले लोगों के लिए, रेंडरिंग की सुविधा डिफ़ॉल्ट रूप से D3D रेंडरर (ANGLE) या Swiftshader (सॉफ़्टवेयर रेंडरर) पर सेट होती है.

26.0.0 (मार्च 2017)

यह रिलीज़, एपीआई लेवल 26 के साथ काम करती है. इसमें परफ़ॉर्मेंस में कई सुधार किए गए हैं और गड़बड़ियां ठीक की गई हैं.

माइनर वर्शन 26.0.3 (मई 2017)

  • इस अपडेट में, ऑनलाइन अपडेट किए जा सकने वाले फ़ीचर फ़्लैग जोड़े गए हैं. इनकी मदद से, हार्डवेयर कॉन्फ़िगरेशन से जुड़ी समस्याओं को तुरंत ठीक किया जा सकता है. इससे Google, सर्वर-साइड फ़्लैग अपडेट करके, उपयोगकर्ता के कॉन्फ़िगरेशन पर निर्भर करने वाली सुविधाओं और गड़बड़ियों को ठीक कर सकता है. अगर आपको किसी खास हार्डवेयर से जुड़ी समस्याएं दिखती हैं, तो कृपया गड़बड़ी की शिकायत करें, ताकि हम समस्या की जांच कर सकें.
  • Android Wear API लेवल 25 सिस्टम इमेज के लिए, रोटरी इनपुट की नई सुविधा उपलब्ध है. Wear डिवाइस पर रोटरी इनपुट डायल की नकल करने के लिए, बड़ी की गई विंडो पर मौजूद रोटरी इनपुट टैब पर क्लिक करें.
  • क्रैश रिपोर्टिंग डायलॉग का साइज़ अब बदला जा सकता है. साथ ही, यह अब When to send crash reports को Ask पर रीसेट नहीं करता है.
  • अब 32-बिट वाले एम्युलेटर के लिए, एवीडी की रैम का ज़्यादा से ज़्यादा साइज़ 512 एमबी से कम या उसके बराबर होना चाहिए. इससे एम्युलेटर को 2 जीबी वर्चुअल पते की जगह में जगह खत्म होने से रोका जा सकेगा.
  • एम्युलेटर इमेज में अब ऐब्सलूट पाथ का इस्तेमाल किया जा सकता है.
  • Google Play Store की इमेज के लिए, बड़ी की गई विंडो में एक नया टैब जोड़ता है. यह Play services का वर्शन दिखाता है. साथ ही, Play services के अपडेट की जांच करने के लिए एक बटन दिखाता है.
  • यह सुविधा, Emulator Settings पेज पर OpenGL रेंडरर चुनने के लिए एक ड्रॉपडाउन जोड़ती है. अगर आपको Windows मशीन पर OpenGL ड्राइवर से जुड़ी समस्याएं आ रही हैं, तो ANGLE (D3D11) या ANGLE (D3D9) विकल्पों का इस्तेमाल करके देखें. इसके लिए, आपको मशीन को फिर से चालू करना होगा. अगर आपको Windows के अलावा किसी अन्य मशीन पर OpenGL ड्राइवर से जुड़ी समस्याएं आ रही हैं, तो Swiftshader सॉफ़्टवेयर रेंडरर का इस्तेमाल करके देखें. इसके लिए, आपको मशीन को फिर से चालू करना होगा.
  • जब एम्युलेटर को exit और minimize, दोनों कमांड मिलती हैं, तो बंद करते समय होने वाली क्रैश की समस्या को ठीक किया गया है.
  • Mac मशीन पर डिसप्ले बदलने के दौरान, स्केलिंग से जुड़ी समस्या को ठीक करता है. (समस्या 268296)
  • इस अपडेट में, उस समस्या को ठीक किया गया है जिसमें स्लीप मोड से होस्ट कंप्यूटर को फिर से चालू करने पर या एम्युलेटर के लंबे समय तक चलने पर, एम्युलेटर सीपीयू का 300% इस्तेमाल करता है और उसे रोकता है.
  • एम्युलेटर बंद होने पर क्रैश होने की समस्या को ठीक किया गया है.

HAXM v6.1.1 (मार्च 2017) के साथ अपडेट

ध्यान दें: HAXM v6.1.1, 30 मार्च से Mac उपयोगकर्ताओं के लिए SDK Manager के ज़रिए उपलब्ध है. यह Windows उपयोगकर्ताओं के लिए जल्द ही उपलब्ध होगा.

Android Emulator का 26.0.0 वर्शन, HAXM v6.1.1 के साथ काम करता है. इसमें ये अपडेट शामिल हैं:

  • यह परफ़ॉर्मेंस मॉनिटरिंग यूनिट (पीएमयू) के इम्यूलेशन को चालू करता है. (समस्या 223377)
  • Mac पर VirtualBox और Docker के साथ एक साथ काम करने से जुड़ी समस्याओं को ठीक किया गया है. (समस्या 197915)
  • इस कुकी से, इंस्टॉलर के ज़रिए Windows पर Intel VT-x का पता न चलने पर दिखने वाले गड़बड़ी के मैसेज में बदलाव किया जाता है. आम तौर पर, ऐसा Hyper-V के चालू होने की वजह से होता है.
  • Hyper-V पर आधारित Windows VM में, Android Emulator को तेज़ी से चलाने की सुविधा जोड़ी गई है. इस अपडेट के लिए, यह ज़रूरी है कि होस्ट Hyper-V इंस्टेंस (वह इंस्टेंस जो Windows VM/गेस्ट को मैनेज करता है) में, नेस्टेड वर्चुअलाइज़ेशन की सुविधा चालू हो और Hyper-V का नया वर्शन इस्तेमाल किया जा रहा हो. Hyper-V को मेहमान Hyper-V इंस्टेंस (Windows VM) में बंद किया जाना चाहिए.

डिपेंडेंसी

  • Android SDK प्लैटफ़ॉर्म-टूल का अपडेट 25.0.4 या उसके बाद का अपडेट.
  • Android SDK Tools का 26.0.0 या उसके बाद का वर्शन.

नई सुविधाएं और गड़बड़ियां ठीक की गईं

  • एपीआई लेवल 26 के साथ काम करता है.
  • यह पूरी तरह से GLES 2.0 के मुताबिक है. अगर होस्ट जीपीयू में डेस्कटॉप OpenGL ड्राइवर मौजूद हैं, तो अब एम्युलेटर, Android CTS dEQP-GLES2 mustpass सूची के 100% टेस्ट पास कर लेता है. इसे एपीआई लेवल 24 x86 इमेज (रिविज़न 11 और उसके बाद के वर्शन) के लिए रिलीज़ किया गया है. इसे जल्द ही सभी सिस्टम इमेज के लिए उपलब्ध कराया जाएगा.
  • वीडियो चलाने की बेहतर परफ़ॉर्मेंस. अब एम्युलेटर, सभी वीडियो कलर बफ़र को होस्ट/गेस्ट की शेयर की गई मेमोरी में सेव करता है. साथ ही, ज़रूरी फ़ाइनल YUV को आरजीबी में बदलने की प्रोसेस, जीपीयू में करता है. अब ज़्यादातर सिस्टम में 1080p30 की सुविधा उपलब्ध होनी चाहिए. इसे एपीआई लेवल 24 x86 इमेज (रिविज़न 11 और उसके बाद के वर्शन) के लिए रिलीज़ किया गया है. इसे जल्द ही सभी सिस्टम इमेज के लिए उपलब्ध कराया जाएगा.
  • अब एम्युलेटर, बंद होने पर adb devices सूची से खुद को सही तरीके से अनरजिस्टर करता है. साथ ही, Linux मशीनों पर खुले हुए टीसीपी पोर्ट बंद करता है.
  • adb कनेक्शन अब ज़्यादा भरोसेमंद हैं. चल रहे एम्युलेटर का पता अब तेज़ी से लगाया जा सकता है. साथ ही, अब यह “ऑफ़लाइन” या “अनुमति नहीं है” स्थिति में नहीं जाता.

25.3.0 (मार्च 2017)

इस रिलीज़ के बाद से, Android Emulator को SDK टूल से अलग रिलीज़ किया जाएगा. इस रिलीज़ में, परफ़ॉर्मेंस को बेहतर बनाया गया है. साथ ही, नई सुविधाएं जोड़ी गई हैं और गड़बड़ियां ठीक की गई हैं.

माइनर वर्शन 25.3.1 (मार्च 2017)

  • कुछ जीपीयू कॉन्फ़िगरेशन पर क्रैश होने की समस्या को ठीक किया गया है. इसके लिए, GLAsyncSwap को डिफ़ॉल्ट रूप से बंद कर दिया गया है. इस सुविधा को 25.3.0 वर्शन में जोड़ा गया था. इसका मकसद, गेम और वीडियो के लिए फ़्रेम टाइमिंग और फ़्रेम प्रति सेकंड को बेहतर बनाना था. हालांकि, इसकी वजह से कुछ अनजाने मशीन कॉन्फ़िगरेशन पर एम्युलेटर काम नहीं करता है. इसे मैन्युअल तरीके से चालू किया जा सकता है. इसके लिए, android_sdk/emulator/lib/advancedFeatures.ini फ़ाइल खोलें और GLAsyncSwap = on सेट करें.

डिपेंडेंसी

  • Android SDK प्लैटफ़ॉर्म-टूल का अपडेट 24 या उसके बाद का अपडेट.
  • Android SDK टूल का वर्शन 25.3.0.

नई सुविधाएं और गड़बड़ियां ठीक की गईं

  • इमुलेशन इंजन को QEMU 2.7 पर अपडेट किया गया है. इसमें हाल ही में ठीक की गई सभी गड़बड़ियां, बेहतर परफ़ॉर्मेंस, और नई सुविधाएं शामिल हैं.
  • IPv6 के लिए नई सुविधा.
  • अब इम्यूलेटर, होस्ट पर सॉफ़्टवेयर रेंडरर के तौर पर SwiftShader का इस्तेमाल करता है.
  • Android Pipe की परफ़ॉर्मेंस में सुधार: Android Pipe, एम्युलेटर और Android OS के बीच कम्यूनिकेशन का मुख्य चैनल है. अब यह पहले से ज़्यादा तेज़ है. इसमें कम समय लगता है और यह मल्टी-थ्रेडिंग की बेहतर परफ़ॉर्मेंस देता है. इससे एम्युलेटर की परफ़ॉर्मेंस में कई तरह के सुधार होते हैं. जैसे:
    • ADB पुश/पुल की स्पीड बेहतर हुई.
    • 3D ऐक्सलरेशन की बेहतर सुविधा.
    • एम्युलेटर की परफ़ॉर्मेंस बेहतर हुई.
    • ग्राफ़िक्स की बेहतर परफ़ॉर्मेंस.
  • अब इम्यूलेटर, मेहमान के अनुरोध करने पर, जीपीयू-साइड बफ़र (glBindBuffers / glBufferData) का इस्तेमाल करता है. इससे कुछ ऐप्लिकेशन में सीपीयू ओवरहेड कम हो जाता है.
  • ऑडियो की बेहतर सुविधा.
  • डिस्क I/O की बेहतर स्पीड: अब एम्युलेटर, डिस्क I/O को डिस्पैच करने के लिए अलग-अलग थ्रेड का इस्तेमाल करता है. इससे लेटेंसी कम होती है और थ्रूपुट बेहतर होता है (~1.5 गुना सीक्वेंशियल I/O स्पीड, ~5 गुना रैंडम ऐक्सेस I/O स्पीड). इससे डिस्क में फ़्लश होने वाले डेटा की संख्या भी कम हो जाती है. इससे डिवाइस पर लोड काफ़ी कम हो जाता है.
  • अब Windows मशीन पर डिस्क बूट के लिए, एम्युलेटर स्पार्स फ़ाइलों का इस्तेमाल करता है. इससे पहले बूट और "डेटा मिटाएं" बूट, दोनों की स्पीड बढ़ जाती है. AVD बनाते या रीसेट करते समय, अब एम्युलेटर डिस्क पर 2 जीबी या उससे ज़्यादा डेटा के बजाय, 100 से 200 एमबी डेटा लिखता है.
  • जीयूआई में कई सुधार किए गए हैं:
    • अब एम्युलेटर, Qt 5.7.0 का इस्तेमाल करता है. इसमें गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.
    • यूज़र इंटरफ़ेस (यूआई) को शुरू करने के दौरान, अब सभी एम्युलेटर एक्ज़ीक्यूटेबल को Qt प्लगिन के तौर पर लोड करने की कोशिश नहीं की जाती. इसलिए, इसमें पहले से काफ़ी कम समय लगता है. खास तौर पर, एचडीडी पर.
    • अब यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करना ज़्यादा तेज़ और आसान हो गया है. इसमें ये शामिल हैं: रोटेशन, विंडो का साइज़ बदलना, और एक्सटेंडेड कंट्रोल विंडो लोड करना और बंद करना.

OpenXR™ और OpenXR लोगो, The Khronos Group Inc. के ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.