Android Emulator, Android Studio में शामिल होता है.
एम्युलेटर के 25.3.0 से पहले के वर्शन, Android SDK टूल के हिस्से के तौर पर डिस्ट्रिब्यूट किए गए थे.
पक्का करें कि आपके पास नया वर्शन हो. इसके लिए, एसडीके मैनेजर में जाकर अपडेट देखें.
Android Emulator के पिछले वर्शन डाउनलोड करने के लिए, Emulator का डाउनलोड संग्रह देखें.
25.3.0 से पहले के Emulator वर्शन के रिलीज़ नोट देखने के लिए, Android SDK Tools के रिलीज़ नोट देखें.
Android Emulator के सबसे नए वर्शन में ठीक की गई समस्याओं के बारे में जानने के लिए, बंद की गई समस्याएं देखें.
पहले से मालूम समस्याओं और उन्हें हल करने के तरीके जानने के लिए, कृपया एम्युलेटर से जुड़ी समस्याएं हल करना लेख पढ़ें.
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 को 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 Car Service API का इस्तेमाल करके, Android Auto OS में 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 मॉडल का असल साइज़, स्केल की कम से कम और ज़्यादा से ज़्यादा सीमा से कम या ज़्यादा है, तो 1:1 के असल साइज़ वाली सुविधा ठीक से काम नहीं करेगी. फ़िलहाल, यह सीमा 20 सेमी और 70 मीटर पर सेट है
- लोड होने के बाद, 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: Pixel C टैबलेट के एम्युलेटर पर HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE की वैल्यू सही है
34.2.15 (31 मई, 2024)
- स्वैंगल मोड और विज्ञापन देने वाले व्यक्ति या कंपनी के खाते को बंद करने से जुड़ी क्रैश की कई समस्याओं को ठीक किया गया
34.2.14 (20 मई, 2024)
इसकी जांच Android Studio Jellyfish Stable Patch 1 के साथ की गई है.
- [बग ठीक किया गया] कभी-कभी, एम्बेड किए गए एम्युलेटर पर स्नैपशॉट रुक जाता है
- [बग ठीक किया गया] स्नैपशॉट पर 'नहीं' और 'रद्द करें' बटन ठीक से काम नहीं कर रहे हैं
- [बग ठीक किया गया] डायरेक्शनल पैड के बटन काम नहीं कर रहे हैं
- [गड़बड़ी ठीक की गई] Windows पर दिखने वाली उस समस्या को ठीक किया गया है जिसकी वजह से, कुछ मामलों में एमुलेटर शुरू नहीं हो पाता था. ऐसा तब होता था, जब ANGLE के साथ जीपीयू मोड का इस्तेमाल किया जा रहा हो. साथ ही, लॉग में गड़बड़ी का मैसेज “Failed to initialize GL emulation” दिखता था. ध्यान दें कि इस वर्शन में, कमांड लाइन से
-gpu swangle_indirect
विकल्प के साथ एम्युलेटर शुरू करने पर अब भी यह गड़बड़ी दिख सकती है. अगर आपको इस वर्शन के साथ, सॉफ़्टवेयर ग्राफ़िक्स रेंडरिंग का इस्तेमाल करके Windows पर कमांड लाइन से एम्युलेटर शुरू करना है, तो कृपया-gpu swiftshader_indirect
का इस्तेमाल करें - [गड़बड़ी ठीक की गई] कीबोर्ड पर मौजूद जगह की जानकारी वाले शॉर्टकट से, इस्तेमाल न किया जा सकने वाला मैप लोड होता है
- [बग ठीक किया गया] जगह की जानकारी सेट करते समय, "रास्ता सेव करें" डायलॉग मौजूद नहीं है
34.2.13 (30 अप्रैल, 2024)
इसे Android Studio Jellyfish Stable के साथ टेस्ट किया गया है.
- Qt 6.5.3 पर अपडेट करें
- इमुलेटर के Extended Controls में जगह की जानकारी की सुविधाओं के लिए, 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 ऐनिमेशन से जुड़ी गड़बड़ी को ठीक किया गया है. इसमें AVD स्क्रीन को छोटा करने के बाद भी साइडबार खुला रहता था
- [बग ठीक किया गया] समस्या #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 के Extended Controls में 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 के एवीडी के लिए सहायता जोड़ी गई.
- 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: Emulator -dns-server विकल्प, API 31 के बाद काम नहीं करता
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 के साथ ठीक से काम नहीं कर रहा था.
- [बग ठीक किया गया] इवेंट माउस कंसोल कमांड काम नहीं कर रही थी.
- स्थानीय एवीडी बनाने के लिए, केवीएम की जांच करने की सुविधा जोड़ी गई.
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: नई परिभाषाएं जोड़ी गई हैं, ताकि नई blob रिसॉर्स इनम का इस्तेमाल किया जा सके.
- 'asg' टाइप के ग्राफ़िक ट्रांसपोर्ट के लिए स्नैपशॉट की सुविधा जोड़ी गई.
- macOS: macOS SDK 11.1 और इसके बाद के वर्शन के साथ काम करने की सुविधा जोड़ी गई.
- KVMclock, नई सिस्टम इमेज पर डिफ़ॉल्ट रूप से चालू होता है.
- Wear के एम्युलेटर में, धड़कन की दर मापने वाले सेंसर के लिए सहायता जोड़ी गई.
- libportability Vulkan बैकएंड को हटा दिया गया है.
- मोडम सिम्युलेटर में ज़्यादा सुविधाओं के लिए सहायता जोड़ी गई.
30.0.26 (16 अगस्त, 2020)
इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.
फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, वर्चुअल हिंज सेंसर और 3D व्यू की सुविधा
फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए, हिंज सेंसर की सुविधा जोड़ी गई है. इसके लिए, Android 11 की सिस्टम इमेज और एवीडी कॉन्फ़िगरेशन की ज़रूरत होगी. 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 Emulator के सोर्स कोड में अब x86_64 से arm64 होस्ट तक क्रॉस कंपाइलेशन की सुविधा काम करती है. इससे KVM वर्चुअलाइज़ेशन के साथ arm64 सिस्टम इमेज को चलाया जा सकता है. फ़िलहाल, सिर्फ़
-gpu swiftshader_indirect
(Swiftshader arm64 होस्ट रेंडरिंग) काम करता है. हालांकि, होस्ट जीपीयू libEGL/libGLESv2 लाइब्रेरी के साथ काम करने वाले सेट का इस्तेमाल भी किया जा सकता है. इसके लिए, lib64/gles_swiftshader को इन लाइब्रेरी से बदलें. इसके बाद,-gpu swiftshader_indirect
की मदद से फिर से लॉन्च करें. ऐसा हो सकता है कि स्नैपशॉट की सुविधा भी काम न कर रही हो. इसके लिए, कमांड लाइन में-no-snapshot
जोड़ें. निर्देश:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Apple Silicon के लिए सहायता उपलब्ध कराने पर काम चल रहा है.
virtio-gpu की सुविधा
- आने वाले virtio-gpu होस्ट कोहेरेंट blob रिसॉर्स के लिए, होस्ट साइड पर सपोर्ट जोड़ा गया.
- एम्युलेटर रेंडरिंग के काम करने के तरीके की वजह से, अब हम vcpu थ्रेड में virtio-gpu virtqueue को प्रोसेस करते हैं. ऐसा इसलिए, क्योंकि रेंडरिंग को किसी भी तरह से अन्य थ्रेड पर ऑफ़लोड किया जाता है. 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/<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 हार्डवेयर डिकोड करने की सुविधा काम करती है, तो
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
एनवायरमेंट वैरिएबल के ज़रिए libvpx के हार्डवेयर डिकोड करने की सुविधा को फिर से चालू किया जा सकता है.
30.0.10 (30 अप्रैल, 2020)
इस अपडेट में, Android Studio में सीधे तौर पर एम्युलेटर चलाने की सुविधा शामिल है. साथ ही, इसमें वर्चुअल डिवाइसों के लिए फ़्रीफ़ॉर्म विंडो मोड की सुविधा डिफ़ॉल्ट रूप से चालू होती है.
Android Studio में Emulator चलाना
अब Android Emulator को सीधे Android Studio में चलाया जा सकता है. इस सुविधा का इस्तेमाल करके, स्क्रीन की जगह बचाई जा सकती है. साथ ही, हॉटकी का इस्तेमाल करके, एम्युलेटर और एडिटर विंडो के बीच तेज़ी से नेविगेट किया जा सकता है. इसके अलावा, अपने आईडीई और एम्युलेटर के वर्कफ़्लो को एक ही ऐप्लिकेशन विंडो में व्यवस्थित किया जा सकता है.
फ़्रीफ़ॉर्म विंडो मोड
अब Android Studio में वर्चुअल डिवाइस बनाते समय, 13.5” Freeform टैबलेट की हार्डवेयर प्रोफ़ाइल चुनकर, ऐसा AVD बनाया जा सकता है जिसमें फ़्रीफ़ॉर्म विंडो मोड चालू हो. इस हार्डवेयर प्रोफ़ाइल के लिए, 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 बाइनरी के लिए सहायता
अगर आपका ऐप्लिकेशन 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
). इस सुविधा की मदद से, API लेवल 26 और इससे कम लेवल वाली x86 32-बिट इमेज को हेडलेस बिल्ड के साथ चलाया जा सकता है. ध्यान दें कि API 27 और इसके बाद के वर्शन वाले 32-बिट x86 गेस्ट के लिए, एम्युलेटर 64-बिट इंजन (qemu-system-x86_64
) का इस्तेमाल करता है. ऐसा इसलिए, क्योंकि इन सिस्टम इमेज में, userspace 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 Developer Summit में किया गया था. पिछली रिलीज़ में, 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
- इस कमांड से, स्क्रीन बंद होने का टाइमआउट बढ़ जाता है. इससे, बैटरी मोड में बिना चार्ज किए ही एम्युलेटर का इस्तेमाल किया जा सकता है. बैटरी मोड में, बैकग्राउंड में सीपीयू का इस्तेमाल काफ़ी कम हो जाता है.
- AC चार्जिंग मोड में, 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
पर आधारित मुख्य लूप से बदल दिया गया है. - Logcat बफ़र का साइज़ बढ़ाकर 2 एमबी कर दिया गया है. ऐसा इसलिए किया गया है, ताकि एम्युलेटर के साथ logcat चलाने पर, अचानक EOF (फ़ाइल के आखिर में पहुंचने का सिग्नल) मिलने की समस्या को ठीक किया जा सके.
- एम्युलेटर अब डिफ़ॉल्ट रूप से
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 के सिग्नल खोने या स्टार्टअप के दौरान अस्थिर और अलग-अलग स्थितियों की वजह से होती थीं.
- एक साथ कई अनुरोध मिलने पर होने वाली कई समस्याएं ठीक की गईं. अब हम Linux एम्युलेटर को ThreadSanitizer (TSAN) के साथ बना सकते हैं. इससे ऐसे बग का पता आसानी से लगाया जा सकता है जिन्हें ठीक करना मुश्किल होता है.
- Linux का इस्तेमाल करने वाले लोगों के लिए: हमें पता चला है कि कुछ होस्ट कर्नल पर, मेहमान के तौर पर इस्तेमाल किए जा रहे Android कर्नल में गड़बड़ी हो सकती है. साथ ही, यह सामान्य हार्डवेयर की गड़बड़ी के साथ KVM से बाहर निकल सकता है. अब ऐसा होने पर, एम्युलेटर
abort()
हो जाएगा, ताकि डीबग करने में आसानी हो. इससे पहले, एम्युलेटर सिर्फ़ हैंग हो जाता था. - Linux का इस्तेमाल करने वाले लोगों के लिए: CI सेटअप को आसानी से इस्तेमाल करने के लिए,
-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 के लिए Android Q Beta 3 या इसके बाद के वर्शन और Vulkan 1.0 के लिए Android Q Beta 2 जैसे सिस्टम इमेज का इस्तेमाल कर रहे हों. साथ ही, उन्हें होस्ट जीपीयू का इस्तेमाल करना होगा. इसमें 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 कंसोल का इस्तेमाल करने पर, ज़्यादा ओवरहेड हो सकता है. telnet कंसोल, adb शेल कमांड की तुलना में ज़्यादा तेज़ी से काम करता है, लेकिन हो सकता है कि यह कुछ नेटवर्क कॉन्फ़िगरेशन के साथ काम न करे.
- सीआई उपयोगकर्ता अक्सर इम्यूलेटर को हेडलेस मोड में चलाते हैं. इससे ऐसी समस्याओं का पता लगाना मुश्किल हो सकता है जिनके लिए स्क्रीन का दिखना या इंटरैक्टिव होना ज़रूरी है.
- रिमोट डेस्कटॉप का इस्तेमाल करने वाले लोग, होस्ट जीपीयू रेंडरिंग का इस्तेमाल करते समय अक्सर एम्युलेटर के साथ इंटरैक्ट नहीं कर पाते. ऐसा इसलिए होता है, क्योंकि जीपीयू रेंडरिंग अक्सर होस्ट के नॉन-वर्चुअल डिसप्ले से जुड़ी होती है.
इस समस्या को हल करने के लिए, 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 के साथ काम न करने वाले बदलाव की वजह से हुआ. अब एमुलेटर के साथ, platform-tools 28.0.2 से ADB का सुरक्षित तरीके से इस्तेमाल किया जा सकता है. अगर आपको "बिना अनुमति वाले" एम्युलेटर से जुड़ी समस्याएं आ रही हैं, तो उन्हें हल करने के लिए यह तरीका अपनाएं:
- सभी इम्यूलेटर बंद करें.
~/.android/adbkey
और~/.android/adbkey.pub
, दोनों फ़ाइलें मिटाएं.- यह कमांड चलाएं:
adb kill-server
- यह कमांड चलाएं:
adb devices
- AVD का डेटा वाइप करें.
- एम्युलेटर को फिर से लॉन्च करें.
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 में हुए ये बदलाव शामिल हैं:
- https://wiki.qemu.org/ChangeLog/2.10
- https://wiki.qemu.org/ChangeLog/2.11
- https://wiki.qemu.org/ChangeLog/2.12
यहां कुछ अहम बदलावों के बारे में बताया गया है, जिनका असर Android Emulator पर पड़ता है:
- x86:
gdbstub
अब SSE रजिस्टर का ऐक्सेस देता है. - डिस्क इमेज: इमेज लॉक करने की सुविधा जोड़ी गई है और यह डिफ़ॉल्ट रूप से चालू रहती है. जब तक होस्ट ओएफ़डी या पॉज़िक्स लॉकिंग की सुविधा के साथ काम करता है, तब तक एक से ज़्यादा 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 वाले नए एवीडी के साथ चलाने पर, userdata पार्टीशन का साइज़ अपने-आप बदलकर 6 जीबी कर देता है.
क्वालिटी में सामान्य सुधार और गड़बड़ियां ठीक की गई हैं
- कुछ उपयोगकर्ताओं ने बताया है कि एम्युलेटर धीरे चल रहा है. हमें एक ऐसी वजह का पता चला है जिसकी वजह से, एम्युलेटर की टेंप डायरेक्ट्री में बहुत सारी पुरानी फ़ाइलें मौजूद होती हैं. इस समस्या को हल करने के लिए, एम्युलेटर अब उस डायरेक्ट्री में ADB liveness
check फ़ाइलें सेव नहीं करता है. हालांकि, उस फ़ोल्डर का कॉन्टेंट मिटाने से भी समस्या हल हो सकती है. आपके ऑपरेटिंग सिस्टम के हिसाब से, फ़ोल्डर इनमें से किसी एक जगह पर मौजूद होता है:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS या Linux:
/tmp/android-<username>/*
- Windows:
- अगर रैम कम होने की वजह से एम्युलेटर चालू नहीं हो पाता है, तो अब गड़बड़ी का मैसेज दिखता है. अगर 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
फ़ाइल में एवीडी के रैम का साइज़ गलत तरीके से सेट किया जा रहा था.
इस समस्या को कम करने के लिए, एम्युलेटर उन इमेज के लिए रैम का कम से कम लेवल बढ़ा देता है जो Android Studio के डिफ़ॉल्ट लेवल 1536 MB के लिए, एपीआई लेवल 26 या उसके बाद के लेवल का इस्तेमाल करती हैं. अगर आपके एवीडी की 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 का लोगो दिखता है. Google Play Store की सुविधा वाले AVD में, ज़्यादा कंट्रोल डायलॉग में Google Play टैब होता है. इसमें डिवाइस पर Google Play services को अपडेट करने के लिए, एक बटन दिया गया होता है.
स्नैपशॉट
अब एम्युलेटर को रीस्टार्ट किए बिना, क्विक बूट स्नैपशॉट लोड किया जा सकता है. स्नैपशॉट लोड करने के लिए, ज़्यादा कंट्रोल विंडो में सेटिंग पेज खोलें. इसके बाद, अभी लोड करें बटन पर क्लिक करें.
हमने स्नैपशॉट को लोड करने और सेव करने की प्रोसेस में कई सुधार किए हैं. इससे संसाधनों का बेहतर तरीके से इस्तेमाल किया जा सकेगा और हर ऑपरेशन में लगने वाला समय कम हो जाएगा. अगर आपको अब भी सेव करने में ज़्यादा समय लगता है, तो कृपया समस्या की शिकायत करें. इसमें अपने सीपीयू, रैम, और चल रहे किसी भी एंटीवायरस / फ़ायरवॉल / सुरक्षा सॉफ़्टवेयर की सेटिंग के बारे में जानकारी दें.
Skia की मदद से रेंडर करना
API 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 स्किन के साथ एवीडी चलाने पर, नए MacBook Pro कंप्यूटरों पर स्क्रीन के फ़्लिकर होने और खाली होने की समस्याएं ठीक की गईं.
- फ़्रेमलेस एम्युलेटर चालू होने पर, ज़ूम किए गए मोड में स्विच करते समय खाली स्क्रीन की समस्याओं को ठीक किया गया.
- ज़ूम इन करने पर, डिवाइस की स्किन और एम्युलेटर के कॉन्टेंट के स्क्रोल होने में अंतर आने की समस्या को ठीक किया गया है.
अगर आपको अब भी हैंग होने या अन्य समस्याओं का सामना करना पड़ रहा है, तो कृपया समस्या की शिकायत करें.
27.1.12 (मार्च 2018)
इस अपडेट में, इन समस्याओं को ठीक किया गया है:
- एम्युलेटर शुरू करने के बाद, ब्लूटूथ ऑडियो की क्वालिटी खराब हो जाती है. (समस्या 37095756)
- एक एम्युलेटर को भेजी गई जगह की जानकारी, सभी एम्युलेटर को भेजी गई. (समस्या 73450633)
- कंसोल का इस्तेमाल करके सेट की गई जीपीएस लोकेशन को, ग्राफ़िकल यूज़र इंटरफ़ेस में Extended Controls > Location का इस्तेमाल करके सेट की गई वैल्यू से बदल दिया गया था. (समस्या 73471760)
अगर आपको अब भी हैंग होने या अन्य समस्याओं का सामना करना पड़ रहा है, तो कृपया समस्या की शिकायत करें.
इस अपडेट के साथ-साथ मौजूदा सिस्टम इमेज और Android Studio के प्रीव्यू वर्शन की मदद से, ARCore का इस्तेमाल करके बनाए गए ऑगमेंटेड रिएलिटी ऐप्लिकेशन चलाने के लिए, Android Emulator का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी और निर्देशों के लिए, 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 की ओर से पिन की गई मेमोरी का पीक वर्किंग सेट, अब AVD की रैम के साइज़ के बराबर नहीं है. इसके बजाय, मेमोरी को मांग पर पेज किया जाता है. इससे कम रैम वाले कंप्यूटरों पर, एम्युलेटर को ज़्यादा भरोसेमंद तरीके से चलाने में मदद मिलेगी.
- HAXM 6.2.0 वाला एम्युलेटर, अब macOS पर तेज़ी से बूट हो सकता है. इससे, लंबे समय तक चलने वाले इनिशियलाइज़ेशन फ़ेज़ को स्किप किया जा सकता है.
- जीपीयू कॉन्फ़िगरेशन में सुधार
- बूट करते समय काली स्क्रीन की समस्या ठीक की गई. ऐसा तब होता था, जब मेहमान के तौर पर सॉफ़्टवेयर रेंडरिंग की जाती थी. इस समस्या को ठीक करने के लिए, Swiftshader की मदद से होस्ट के तौर पर सॉफ़्टवेयर रेंडरिंग की सुविधा को वापस लाया गया है. एपीआई लेवल 19 से 25 के लिए, Google API वाली सिस्टम इमेज के नए वर्शन में गेस्ट-साइड रेंडरिंग की सुविधा काम करनी चाहिए.
- इस समस्या को ठीक किया गया है. इसमें पुराने Intel GPU का पता चलने पर, एम्युलेटर को सॉफ़्टवेयर रेंडरर पर स्विच कर दिया जाता था. हालांकि, एम्युलेटर असल में डिसक्रीट जीपीयू पर चल रहा था. ANGLE या Swiftshader रेंडरिंग का इस्तेमाल करने के लिए, किन जीपीयू पर स्विच किया जाएगा, यह इस तरह तय किया जाता है:
- पुराने Intel iGPU में, OpenGL और ANGLE D3D, दोनों ड्राइवर में समस्याएं होती हैं. Intel HD Graphics 3xxx और इससे पुराने वर्शन वाले ग्राफ़िक्स कार्ड का इस्तेमाल करने वाले लोग, Swiftshader का इस्तेमाल करेंगे.
- कुछ उपयोगकर्ताओं ने बताया कि वे एपीआई लेवल 25 की इमेज का इस्तेमाल नहीं कर पा रहे हैं. इसकी वजह यह है कि "Pixel Launcher keeps stopping" वाला बग मौजूद है. ऐसा लगता है कि Intel HD 4xxx के कुछ मॉडल में ड्राइवर से जुड़ी समस्या है. इसलिए, उन्हें अपने-आप ANGLE का इस्तेमाल करने के लिए स्विच कर दिया जाएगा.
- जीपीयू इम्यूलेशन से बेहतर नतीजे पाने के लिए, हमारा सुझाव है कि आप NVIDIA या AMD का डिसक्रीट जीपीयू या Intel का नया जीपीयू (Iris, HD 5xxx, HD 5xx/6xx) इस्तेमाल करें.
- उस समस्या को ठीक किया गया है जिसकी वजह से,
hw.gpu.mode=host
के साथ कॉन्फ़िगर किए गए एवीटी और रिमोट डेस्कटॉप क्लाइंट में लॉन्च किए गए एम्युलेटर को शुरू नहीं किया जा सका. (OpenGL emulation failed to initialize) - "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 की एचटीटीपी प्रॉक्सी सेटिंग का इस्तेमाल करता है. हालांकि, इस स्क्रीन पर मैन्युअल प्रॉक्सी कॉन्फ़िगरेशन तय किया जा सकता है.
मेहमान मोड वाले GPU के लिए वीएनसी की सुविधा जोड़ी गई है, ताकि एम्युलेटर को रिमोट से देखा और कंट्रोल किया जा सके. उदाहरण के लिए, एम्युलेटर लॉन्च किया जा सकता है और वीएनसी को पोर्ट 5901 पर सुनने की अनुमति दी जा सकती है. इसके लिए, यह तरीका अपनाएं:
- लागू करें:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
पोर्ट 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 ES 3 में समस्याएं आ रही हैं, तो
एम्युलेटर अब फ़ाइनल डिसप्ले इमेज पोस्ट करने के अलावा, सभी रेंडरिंग के लिए ऑफ़स्क्रीन 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 के एपीआई लेवल 25 वाले सिस्टम इमेज के लिए, रोटरी इनपुट की नई सुविधा उपलब्ध है. Wear डिवाइस पर रोटरी इनपुट डायल की नकल करने के लिए, बड़ी की गई विंडो पर मौजूद रोटरी इनपुट टैब पर क्लिक करें.
- क्रैश रिपोर्टिंग डायलॉग बॉक्स का साइज़ अब बदला जा सकता है. साथ ही, यह अब बिना किसी इनपुट के क्रैश रिपोर्ट कब भेजनी है को पूछें पर रीसेट नहीं होता है.
- अब 32-बिट वाले एम्युलेटर के लिए, एवीडी की रैम का ज़्यादा से ज़्यादा साइज़ 512 एमबी से कम या उसके बराबर होना चाहिए. इससे एम्युलेटर को 2 जीबी वर्चुअल पते की जगह में जगह खत्म होने से रोका जा सकेगा.
- एम्युलेटर इमेज में सही पाथ इस्तेमाल करने की सुविधा जोड़ी गई है.
- Google Play Store की इमेज के लिए, बड़ी की गई विंडो में एक नया टैब जोड़ता है. यह Play Services का वर्शन दिखाता है. साथ ही, Play Services के अपडेट की जांच करने के लिए एक बटन दिखाता है.
- यह इम्यूलेटर सेटिंग पेज पर, 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 टूल का 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 ऐक्सलरेशन की बेहतर सुविधा.
- एम्युलेटर की परफ़ॉर्मेंस बेहतर हुई.
- ग्राफ़िक्स की बेहतर परफ़ॉर्मेंस.
- अब इम्यूलेटर, मेहमान के अनुरोध करने पर, GPU-साइड बफ़र (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. के ट्रेडमार्क हैं. इन्हें चीन, यूरोपियन यूनियन, जापान, और यूनाइटेड किंगडम में ट्रेडमार्क के तौर पर रजिस्टर किया गया है.