Android Studio में Android एमुलेटर शामिल होता है.
25.3.0 से पहले के Emulator के वर्शन, Android SDK टूल के हिस्से के तौर पर उपलब्ध कराए गए थे.
यह पक्का करने के लिए कि आपके पास नया वर्शन है, अपडेट के लिए SDK Manager देखें.
Android Emulator के पिछले वर्शन डाउनलोड करने के लिए, Emulator डाउनलोड संग्रह देखें.
25.3.0 से पहले के एम्युलेटर वर्शन के रिलीज़ नोट के लिए, Android SDK टूल के रिलीज़ नोट देखें.
पहले से मौजूद समस्याओं और उन्हें हल करने के बारे में जानने के लिए, कृपया एम्युलेटर से जुड़ी समस्याओं को हल करना लेख पढ़ें.
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 वर्शन को एपीआई 35 के बजाय, Android Vanilla Ice Cream के रिलीज़ होने से पहले के वर्शन के तौर पर गलत तरीके से दिखाया जा रहा था.
- [गड़बड़ी ठीक की गई] समस्या #296162661: HasSystemFeature FEATURE_SENSOR_HINGE_ANGLE, Pixel C टैबलेट एम्युलेटर पर 'सही' दिखाता है
34.2.15 (31 मई, 2024)
- स्वैगल मोड और विज्ञापन देने वाले व्यक्ति या कंपनी के क्लीनअप करने से जुड़े कई क्रैश ठीक किए गए
34.2.14 (20 मई, 2024)
Android Studio gelफ़िश स्टेबल पैच 1 के साथ टेस्ट किया गया.
- [बग ठीक किया गया] एम्बेड किए गए एम्युलेटर पर, स्नैपशॉट कभी-कभी फ़्रीज़ हो जाता है
- [बग ठीक किया गया] स्नैपशॉट पर 'नहीं' और 'रद्द करें' बटन ठीक से काम नहीं कर रहे थे
- [बग ठीक किया गया] डायरेक्शनल पैड के बटन काम नहीं कर रहे हैं
- [गड़बड़ी ठीक की गई] Windows में ANGLE के साथ जीपीयू मोड का इस्तेमाल करते समय कुछ स्थितियों में एम्युलेटर को शुरू होने से रोकने वाली समस्या को ठीक किया गया और लॉग में “जीएल एम्युलेशन शुरू नहीं किया जा सका” गड़बड़ी का मैसेज मिला. ध्यान दें कि
-gpu swangle_indirect
विकल्प के साथ कमांड लाइन से एम्युलेटर को शुरू करने पर, इस वर्शन में यह गड़बड़ी अब भी जनरेट हो सकती है. अगर आपको इस वर्शन के साथ सॉफ़्टवेयर ग्राफ़िक रेंडरिंग के साथ, Windows पर कमांड लाइन का इस्तेमाल करके एम्युलेटर को शुरू करना है, तो कृपया-gpu swiftshader_indirect
का इस्तेमाल करें - [बग ठीक किया गया] कीबोर्ड पर जगह की जानकारी का शॉर्टकट इस्तेमाल न किया जा सकने वाला मैप लोड करता है
- [गड़बड़ी ठीक की गई] जगह सेट करते समय, "रूट सेव करें" डायलॉग नहीं मिल रहा है
34.2.13 (30 अप्रैल, 2024)
Android Studio Jellyfish Stable के साथ टेस्ट किया गया.
- Qt 6.5.3 पर अपडेट करना
- मई के आखिर में, एम्युलेटर के एक्सटेंडेड कंट्रोल की 'जगह की जानकारी' सुविधा में इस्तेमाल किए जाने वाले Google Maps API के अपडेट, इसके साथ काम करते हैं.
- ऐप्लिकेशन क्रैश होने से जुड़ी समस्याओं को ठीक करना
- Pixel के एवीडी में कई सुधार किए गए
- सॉफ़्टवेयर रेंडरिंग के लिए इस्तेमाल की जाने वाली ग्राफ़िक लाइब्रेरी को अपडेट करें
- [बग ठीक किया गया]समस्या 225541819 x86_64 पर Chrome शुरू करने से एम्युलेटर क्रैश हो जाता है
- [बग ठीक करना]समस्या 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 के स्टेबल वर्शन के साथ टेस्ट किया गया.
- एम्युलेटर में ये डिवाइस जोड़े गए:
- Pixel Fold
- Pixel Tablet
- Pixel 8
- Pixel 8 Pro
- Pixel 7a
- gRPC इंटिग्रेशन टेस्ट: gRPC एंडपॉइंट अब एमुलेटर में चल रहे इंस्ट्रूमेंट किए गए टेस्ट के लिए उपलब्ध हैं. इससे, असल स्थितियों की जांच की जा सकेगी. इस सुविधा की मदद से डेवलपर, Android इंस्ट्रुमेंटेशन की जांच करके, Android Emulator के होस्ट किए गए gRPC एंडपॉइंट के साथ सुरक्षित तरीके से इंटरैक्ट कर सकते हैं.
- कई गड़बड़ियां ठीक की गईं
- गड़बड़ी ठीक करना: फ़ोल्ड किए गए डिवाइस का इस्तेमाल करने से जुड़ी सेटिंग में सुधार
- बग ठीक करना: रोटेशन के बाद, एमुलेटर की पोज़िशन में बदलाव करना
- क्रैश से जुड़ी गड़बड़ियां ठीक करना
33.1.24 (28 दिसंबर, 2023)
Android Studio के Hedgehog Stable और Iguana Beta 1 वर्शन के साथ टेस्ट किया गया.
- एम्युलेटर वेबकैम से जुड़ी समस्या को ठीक किया गया, जिसकी वजह से स्क्रीन को एमपी4 फ़ॉर्मैट में रिकॉर्ड नहीं किया जा सकता.
- स्क्रीन रिकॉर्डिंग के दौरान, Pixel Fold AVD को अनफ़ोल्ड करने पर, एमुलेटर क्रैश होने की समस्या को ठीक किया गया.
- 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 सोनोमा का इस्तेमाल करते समय एम्युलेटर वेबकैम क्रैश होने की समस्या ठीक करें
- [बग ठीक किया गया] समस्या #293503871 'माइक्रोफ़ोन' सेटिंग को रीस्टार्ट करने पर सेव न होने की समस्या को ठीक किया गया
- [बग ठीक किया गया] समस्या #270386314 ऐनिमेशन से जुड़ी गड़बड़ी को ठीक किया गया. इसमें, AVD स्क्रीन को छोटा करने के बाद भी साइडबार खुला रहता था
- [बग ठीक करना] समस्या #154896775 गड़बड़ी सबमिट करने वाले टूल को ठीक करना
32.1.15 (29 अगस्त, 2023)
Android Studio Giraffe Patch 1 और Hedgehog Canary 16 के साथ टेस्ट किया गया.
- AAE एम्युलेटर में मौजूद सेंसर के लिए, GAS HW की ज़रूरी शर्तों का पालन करें
- [बग ठीक किया गया] समस्या #266201208 एपीआई 33 पर हिब्रू एसएमएस नहीं भेजा जा रहा है
- [बग ठीक किया गया] समस्या #257097404 एपीआई 29 और 30 पर होस्ट के जागने के बाद, एमुलेटर सही समय नहीं दिखाता
- [बग ठीक किया गया] समस्या #228201899 Android एमुलेटर के एक्सटेंडेड कंट्रोल में Google Maps नहीं दिख रहा
32.1.14 (27 जून, 2023)
Android Studio के Hedgehog Canary 8, Giraffe Beta 5, और Flamingo के स्थिर वर्शन के साथ टेस्ट किया गया.
- एम्युलेटर के लिए, कैमरा ओरिएंटेशन और डिस्टॉर्शन को ठीक किया गया.
- [बग ठीक किया गया] समस्या #257097404 "होस्ट के चालू होने के बाद, एमुलेटर सही समय नहीं दिखाता". यह गड़बड़ी अब भी एपीआई 29 और एपीआई 30 के लिए फिर से जनरेट की जा सकती है.
- [बग ठीक किया गया] समस्या #243456582 "ऐपीआई 30 के बाद रिलीज़ होने वाले Android वर्शन, Mac M1 मशीनों पर एमुलेटर में ठीक से शुरू नहीं हो सकते"
32.1.13 (22 मई, 2023)
Android Studio के Hedgehog Canary 2, Giraffe Beta 1, और Flamingo Stable वर्शन के साथ टेस्ट किया गया.
- Pixel Fold और Pixel Tablet के AVD के लिए सहायता जोड़ी गई.
- gLinux के क्रैश होने की समस्या को ठीक करना.
- [बग ठीक किया गया] समस्या #215231636 "Intel के 12वें जनरेशन के प्रोसेसर में, एपीआई 30 से ज़्यादा वाले एपीआई वाला एमुलेटर काम नहीं कर रहा है".
- [बग ठीक किया गया] समस्या #275397905 Android Emulator M1 पर, कर्सर को बार-बार एमुलेटर में और उससे बाहर ले जाने पर, ऐप्लिकेशन क्रैश होने की समस्या.
- AVD लॉन्च से जुड़ी समस्या समस्या #281725854. ज़्यादा जानकारी के लिए, कृपया एमुलेटर की समस्या हल करना देखें.
32.1.12 (21 मार्च, 2023)
Android Studio जिराफ़ कैनरी 10, फ़्लैमिंगो आरसी, और इलेक्ट्रिक ईल पैच 2 की मदद से टेस्ट किया गया.
- [बग ठीक किया गया] समस्या #267647323 Android Studio से शुरू किए गए एम्युलेटर पर नेटवर्क काम नहीं करता
- [बग ठीक किया गया] समस्या #268498686 एमुलेटर की स्क्रीन फ़्लिकर कर रही है
- [बग ठीक किया गया] समस्या #270034824 वर्शन 33.1.1 पर अपडेट करने के बाद, एमुलेटर की परफ़ॉर्मेंस खराब हो गई
- [बग ठीक किया गया] समस्या #225541819 Chrome शुरू करने पर, x86_64 पर एम्युलेटर क्रैश हो जाता है
- [बग ठीक किया गया] समस्या #257097404 होस्ट के चालू होने के बाद, एमुलेटर सही समय नहीं दिखाता
- Apple M1 डिवाइसों के लिए क्रैश रिपोर्टिंग जोड़ना
32.1.11 (8 फ़रवरी, 2023)
Android Studio Giraffe Canary 2, Flamingo Beta 1, और Electric Eel Patch 1 के साथ टेस्ट किया गया.
- नेटवर्क स्पीड ऑप्टिमाइज़ेशन
- एम्बेड किए गए एम्युलेटर में माउस की सुविधा
- Virtio-snd सुधार
- इंस्टॉलेशन के दौरान Android Emulator को अनज़िप करते समय सिमलिंक के इस्तेमाल को बंद करें
- एम्युलेटर की जांच के दौरान, क्रैश की समस्या को ठीक करें
31.3.14 (13 दिसंबर, 2022)
Android Studio डॉल्फ़िन, Electric Eel RC1, और Flamingo Canary 9 के साथ टेस्ट किया गया.
- [बग ठीक करना] Play Store में लॉग इन करते समय, AVD के क्रैश होने की समस्या को ठीक करना.
31.3.13 (27 अक्टूबर, 2022)
Android Studio Dolphin, Electric Eel Beta 2, और Flamingo Canary 5 के साथ टेस्ट किया गया.
- [बग ठीक किया गया] समस्या #249948338: टाइम ज़ोन पैरामीटर काम नहीं कर रहा
- [बग ठीक किया गया] समस्या #249366543: एपीआई 31 के बाद, एमुलेटर -dns-server विकल्प काम नहीं करता
31.3.12 (10 अक्टूबर, 2022)
Android Studio के Dolphin और Electric Eel बीटा 1 वर्शन के साथ टेस्ट किया गया.
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- [बग ठीक किया गया] समस्या #247843000: AVD के रिलेटिव पाथ को मैनेज करने से जुड़ी गड़बड़ी
- एपीआई 24 और उसके बाद के वर्शन के लिए, डिस्क का साइज़ बढ़ाएं
31.3.11 (23 सितंबर, 2022)
Android Studio डॉल्फ़िन और इलेक्ट्रिक ईल कैनरी 10 के साथ टेस्ट किया गया.
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- [बग ठीक किया गया] एक्सटेंडेड कंट्रोल विंडो पर, एम्बेड किए गए एम्युलेटर AVD क्रैश हो जाता है
- [बग ठीक किया गया] समस्या #183139207: एमुलेटर के माइक्रोफ़ोन को चालू करने से जुड़ी ऑडियो से जुड़ी समस्याएं
- [गड़बड़ी ठीक की गई] समस्या #229764024: एवीडी स्टिकी टच गड़बड़ी, जिसकी वजह से यूज़र इंटरफ़ेस (यूआई) के काम करने से जुड़ी समस्याएं होती हैं
- [बग ठीक किया गया] Mac M1 पर एपीआई 33 AVD को लॉन्च करने में गड़बड़ी.
- [बग ठीक किया गया] समस्या #243053479: एमुलेटर को अपडेट करने के बाद, नेटवर्क की स्पीड धीमी हो जाती है
- [बग ठीक किया गया] समस्या #244617627: Windows और Linux पर Maps की जगह की जानकारी की सुविधा काम नहीं कर रही थी
- [बग ठीक किया गया] समस्या #232971796: बेहतर कंट्रोल > फ़ोन पेज पर, “डिवाइस पर कॉल करें” बटन काम नहीं कर रहा था
- Android Emulator को Minigbm पर अपडेट करें
- बिल्ड स्क्रिप्ट को Python3 में माइग्रेट करना
31.3.10 (18 अगस्त, 2022)
Android Studio के Dolphin Beta 5 और Electric Eel Canary 9 वर्शन के साथ टेस्ट किया गया.
अब एमुलेटर को अलग से डाउनलोड किया जा सकता है. अगर आपको इस नए वर्शन में कोई समस्या आ रही है या यह क्रैश हो रहा है, तो कृपया बग की शिकायत करें और एम्युलेटर के डाउनलोड किए गए पुराने वर्शन के संग्रह से, पहले इस्तेमाल किया जा चुका वर्शन डाउनलोड करें.
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- Windows पर यूनिकोड पाथ की बेहतर सुविधा
- एम्युलेटर के बंद होने को बेहतर तरीके से मैनेज किया गया, ताकि उसी AVD को फिर से लॉन्च किया जा सके.
- फ़ोल्ड किए जा सकने वाले एवीडी का डिज़ाइन और डिफ़ॉल्ट सेटिंग अपडेट की गई
- Wear एम्युलेटर के बटन अपडेट किए गए
- gRPC ऑडियो स्ट्रीमिंग में सुधार
- रीसाइज़ किए जा सकने वाले एमुलेटर कंसोल कमांड को जोड़ा गया
- Chrome में API 31 के लिए सुधार
- [गड़बड़ी ठीक की गई] GmsCore v21.42.18 की मदद से, Google खाते की पुष्टि नहीं हो सकी
31.2.10 (20 अप्रैल, 2022)
Android Studio डॉल्फ़िन कैनरी 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: "vcpu को बंद करने का अनुरोध" करने पर, Intel प्लैटफ़ॉर्म पर "adb रीबूट" होने की स्थिति में क्रैश हो जाएगा
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 बटन जोड़े गए.
- VHAL टैब में, वाहन की सभी प्रॉपर्टी में बदलाव करने की सुविधा जोड़ी गई है.
- [बग ठीक किया गया] GmsCore v21.42.18 के साथ, Google खाते की पुष्टि नहीं हो पा रही थी.
- [बग ठीक किया गया] Netshaper, VirtioWifi के साथ ठीक से काम नहीं कर रहा था.
- [बग ठीक किया गया] इवेंट माउस कंसोल कमांड काम नहीं कर रहा था.
- स्थानीय AVD बनाने के लिए, KVM की जांच करने की सुविधा जोड़ी गई.
31.1.3 (18 जनवरी, 2022)
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- Fuchsia के लिए कंसोल पोर्ट चालू किए गए हैं.
- एक से ज़्यादा डिसप्ले वाली विंडो का साइज़ बदलते समय, ओरिएंटेशन को अनदेखा कर दिया जाता है.
- वाई-फ़ाई: MAT मैक पते के आधार पर यूनीकास्ट पैकेट को फ़िल्टर करने की सुविधा जोड़ी गई.
- वाई-फ़ाई: vmnet के इस्तेमाल के दौरान क्रैश होने की समस्या को ठीक किया गया.
30.9.5 (15 दिसंबर, 2021)
इस अपडेट में ये सुधार और सुधार शामिल हैं:
- डेस्कटॉप या टैबलेट के साइज़ वाली विंडो में आसानी से साइज़ बदलने की सुविधा जोड़ी गई है.
- इसके साथ काम करने वाले होस्ट डिवाइसों से, मल्टी-टच इनपुट की सुविधा जोड़ी गई.
- VirtioWifi: टैप नेटवर्क के लिए सहायता जोड़ी गई.
- Wear की सिस्टम इमेज के लिए, रोटरी इनपुट की सुविधा चालू की गई है.
- gRPC ऑडियो कॉन्फ़िगरेशन की समस्या ठीक की गई.
- स्टैंडर्ड Android सेंसर के साथ काम करने के लिए, SensorReplay एमुलेटर प्लेबैक को अपडेट किया गया.
- यूएसबी पास-थ्रू की सुविधा का इस्तेमाल करके, यूएसबी की मदद से एमुलेटर को सहायक डिवाइसों और डिवाइसों से कनेक्ट किया गया हो.
30.4.5 (23 फ़रवरी, 2021)
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- macOS: ऑडियो इनपुट में गड़बड़ी से जुड़ी समस्याएं ठीक की गईं.
- उपयोगकर्ता स्पेस में virtio-vsock के लिए सहायता जोड़ी गई.
- आने वाले समय में अपलोड की जाने वाली सिस्टम इमेज में, लॉगकैट और कर्नेल मैसेज के लिए virtio-console का इस्तेमाल किया जाएगा.
- Vulkan रेंडरिंग की स्पीड बढ़ाएं.
- टेस्ट फ़ेल होने पर, स्नैपशॉट डीबग करने की सुविधा जोड़ी गई.
- virtio-gpu: ब्लॉब संसाधन की नई सूचियों के साथ काम करने के लिए, परिभाषाओं को अपडेट किया गया.
- 'asg' टाइप के ग्राफ़िक्स ट्रांसपोर्ट के लिए स्नैपशॉट की सुविधा जोड़ी गई.
- macOS: macOS SDK 11.1 और इसके बाद के वर्शन के लिए, ऐप्लिकेशन बनाने की सुविधा जोड़ी गई.
- सिस्टम की नई इमेज पर, केवीएमक्लॉक की सुविधा डिफ़ॉल्ट रूप से चालू रहती है.
- 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 एम्युलेटर सोर्स कोड अब x86_64 से आर्म64 होस्ट तक क्रॉस कंपाइलेशन के साथ काम करता है. इससे, केवीएम वर्चुअलाइज़ेशन की मदद से आर्म64 सिस्टम इमेज चलाने की सुविधा चालू हो जाती है. फ़िलहाल, सिर्फ़
-gpu swiftshader_indirect
(Swiftshader arm64 होस्ट रेंडरिंग) का इस्तेमाल किया जा सकता है. हालांकि, होस्ट GPU libEGL/libGLESv2 लाइब्रेरी के साथ काम करने वाले सेट का इस्तेमाल भी किया जा सकता है. इसके लिए, lib64/gles_swiftshader को उनसे बदलें और फिर-gpu swiftshader_indirect
के साथ फिर से लॉन्च करें. हो सकता है कि स्नैपशॉट भी काम न कर रहे हों. इसके लिए, कमांड लाइन में-no-snapshot
जोड़ें. निर्देश:mkdir emu cd emu repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev --depth=1 repo sync -qcj 12 cd external/qemu pip install absl-py pip install urlfetch sudo apt-get install crossbuild-essential-arm64 python android/build/python/cmake.py --noqtwebengine --noshowprefixforinfo --target linux_aarch64
Apple Silicon के लिए सहायता उपलब्ध कराने की प्रोसेस जारी है.
virtio-gpu की सुविधा
- आने वाले समय में virtio-gpu होस्ट के लिए, कोहर्टेड ब्लॉब के संसाधनों के इस्तेमाल की सुविधा जोड़ी गई है.
- एमुलेटर रेंडरिंग के काम करने के तरीके की वजह से, अब हम vcpu थ्रेड में virtio-gpu virtqueue को प्रोसेस करते हैं. ऐसा इसलिए है, क्योंकि रेंडरिंग को अन्य थ्रेड पर ऑफ़लोड किया जाता है. आने वाले समय में, सिस्टम इमेज और एमुलेटर के वर्शन में virtio-gpu रेंडरिंग की सुविधा चालू की जाएगी.
- आने वाले समय में, सिस्टम इमेज में एमुलेटर, वर्चुअल जीपीयू पर आधारित स्टैक की मदद से सभी ग्राफ़िक चला पाएगा.
अन्य नई सुविधाएं और सुधार
-qemu -usb -device usb-host,vendorid=<usb-vendor-id>,productid=<usb-product-id>
का इस्तेमाल करके, Windows पर अब यूएसबी पासथ्रू की सुविधा उपलब्ध है. (यह सुविधा, Linux और macOS पर पहले से ही काम कर रही होनी चाहिए)- WebRTC लाइब्रेरी को M83 पर अपडेट किया गया.
- अब एमुलेटर, WebRTC के ज़रिए कंटेनर में ऑडियो स्ट्रीमिंग की सुविधा देता है.
- डार्विन पाइप एंडपॉइंट को हटा दिया गया है.
- अगर हार्डवेयर में एनवायरमेंट वैरिएबल
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
की मदद से, CUDA VPx डिकोड किया गया है, तो अब वीडियो के लिए CUDA VPx डिकोड किया जा सकता है. - macOS पर, SSE 4.1 और 4.2 अब Android गेस्ट के अंदर उपलब्ध हैं.
- 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>
वर्टिकल स्क्रीन पर जगह बचाने के लिए, हमने एक्सटेंडेड कंट्रोल > सेटिंग में जाकर, मौजूदा एवीडी के लिए डिवाइस फ़्रेम को छिपाने का विकल्प जोड़ा है. हमने सभी AVD के लिए, डिवाइस फ़्रेम को दुनिया भर में छिपाने के लिए,
NoDeviceFrame
सुविधा फ़्लैग उपलब्ध कराया है. इसे चालू करने के लिए,-feature NoDevice
फ़्रेम के साथ कमांड लाइन से एमुलेटर लॉन्च करें. इसके अलावा, इसे लॉक करने के लिए,~/.android/advancedFeatures.ini
मेंNoDeviceFrame = on
जोड़ें. अगर यह फ़ाइल पहले से मौजूद नहीं है, तो इसे बनाएं.मीटर की सुविधा को चालू और बंद करने के लिए मोबाइल पेज में एक ड्रॉप-डाउन आइटम जोड़ा गया. यह सुविधा, सिस्टम की पुरानी इमेज के लिए नो-ऑप है, जो 5G मीटरनेस के टॉगल के साथ काम नहीं करती.
- इसी काम के लिए कंसोल कमांड भी जोड़ा गया:
gsm meter on|off
- इसी काम के लिए कंसोल कमांड भी जोड़ा गया:
टूलचेन / बिल्ड को C++17 पर अपग्रेड किया गया.
ठीक किए गए गड़बड़ियां: एम्बेड किया गया एम्युलेटर
- अब क्लिपबोर्ड काम करेगा.
- एमुलेटर में अपरकेस वर्णों को लोअरकेस वर्णों के तौर पर डिलीवर करने से जुड़ी समस्या को ठीक किया गया.
- विंडो में यूनिकोड पाथ से कंसोल टोकन लोड करने की समस्या को ठीक किया गया.
- 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 एमुलेटर अब Vanguard के धोखाधड़ी रोकने वाले सिस्टम का पता लगाता है. साथ ही, 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
को भेजी गई बड़ी इमेज को बेहतर तरीके से इस्तेमाल करने के लिए, pc-bios को अपडेट किया गया है. इसमें गड़बड़ियों को ठीक किया गया है. इससे पहले के BIOS में, बहुत ही खराब तरीके का इस्तेमाल किया जाता था.-wifi-server-port
विकल्प का इस्तेमाल करने पर, बंद होने के दौरान क्रैश होने की समस्या को ठीक किया गया.- अगर
-prop
(सिर्फ़ qemu.* प्रॉपर्टी काम करती हैं) में काम न करने वाले विकल्प पास किए जाते हैं, तो सिम्युलेटर अब चेतावनी दिखाता है. - Windows पर एमुलेटर बनाते समय, फ़ाइलों में डेटा लिखने में आने वाली समस्याओं की संभावना कम हो जाती है. ज़्यादा जानकारी के लिए, Windows बिल्ड निर्देश देखें.
- फ़ोल्ड किए जा सकने वाले AVD के लिए, ज़ूम बटन बंद कर दिया गया है. इसकी वजह से समस्याएं आ रही थीं.
- एम्युलेटर, अब डिवाइस के फिर से चालू होने के बाद, बूट होने में लगने वाले समय की सही तरीके से रिपोर्ट करता है.
- Linux: अगर KVM की अनुमतियां काफ़ी नहीं हैं, तो अब एमुलेटर, डिबग करने के निर्देशों को तुरंत प्रिंट करता है.
- एम्युलेटर की हाल की सिस्टम इमेज को बिना तेज़ी से चालू न कर पाने की समस्या का समाधान कर दिया गया है.
- बूट-पूरे किए गए डिटेक्टर से, मेमोरी के खराब होने या क्रैश होने की समस्या को ठीक किया गया है.
- लंबे समय तक स्क्रीन रिकॉर्डिंग करने पर, मेमोरी लीक होने की समस्या को ठीक किया गया.
- Studio 4.1 की ब्रैंडिंग दिखाने के लिए, एमुलेटर के आइकॉन अपडेट किए गए हैं.
- Windows पर रिमोट सेशन का पता लगाने के लिए बेहतर सहायता जोड़ी गई.
ठीक किए गए गड़बड़ियां: ग्राफ़िक और वीडियो डिकोड
- समस्या को ठीक किया गया है, जहां Asphalt 9 के गेम को ब्लैक स्क्रीन में रेंडर किया गया था.
NULL
की मदद से मैप किए गए बफ़र को फ़्लश करने के बारे में स्पैम हटाया गया.- मेहमान Vulkan ऐप्लिकेशन के बंद होने पर, Vulkan स्टेटस को हटाते समय होने वाली रेस कंडीशन को ठीक किया गया.
- Vulkan ASTC/ETC2 इम्यूलेशन शेडर अब libOpenglRender लाइब्रेरी में शामिल हैं. फ़ाइल सिस्टम से पढ़ने के मुकाबले, यह तरीका ज़्यादा भरोसेमंद होगा.
- Vulkan में एक समस्या को ठीक किया गया है. होस्ट पर Vulkan 1.0 इंस्टेंस के साथ चलाने पर,
vkGetImageMemoryRequirements2KHR
, रिटर्न किए गएVkMemoryRequirements2
स्ट्रक्चर केpNext
फ़ील्ड को गलत तरीके से मिटा देता था. - Vulkan रेंडरर में मेमोरी लीक की समस्या को ठीक किया गया.
- हाल ही में हुई एक समस्या को ठीक किया गया है. इसमें,
isampler2D
जैसे वैरिएबल नाम वाले GLSL ES 1.00 शेडर को कंपाइल नहीं किया जा सका. - ANGLE शेडर ट्रांसलेटर को अपडेट किया गया है. इसमें कई गड़बड़ियां ठीक की गई हैं, ताकि Linux पर शेडर को कंपाइल करने में आने वाली समस्याओं को हल किया जा सके.
- अगर बेसिक फ़्रेमबफ़र ब्लिट शेडर, कंपाइल नहीं हो पाता है, तो हम अब एम्युलेटर को क्रैश कर देते हैं. इससे, घटना का ट्रैक रखा जा सकता है.
- अपस्ट्रीम ANGLE के साथ बने रहने के लिए ANGLE शेडर ट्रांसलेटर अपडेट किया गया. इससे, स्क्वेयर मैट्रिक्स का इस्तेमाल करने वाले OpenGL ES शेडर का अनुवाद करते समय और उन्हें कॉन्स्टेंट-फ़ोल्ड करते समय, मेमोरी में गड़बड़ी से जुड़ी समस्या ठीक हो गई है. शेडर ट्रांसलेटर अब एक अलग शेयर की गई लाइब्रेरी,
libshadertranslator.dll
है. - कुछ जीपीयू ड्राइवर पर, Vulkan को शुरू करने से जुड़ी समस्या को ठीक किया गया है. इस समस्या की वजह से, 1.1 डिवाइस फ़ंक्शन नहीं मिल रहे थे.
- Vulkan: हमने पहले से बने लोडर का इस्तेमाल फिर से शुरू कर दिया है. ऐसा इसलिए किया गया है, क्योंकि सिस्टम के Vulkan लोडर का इस्तेमाल करने से कुछ सेटअप में समस्याएं आ रही थीं. हम इस समस्या का बेहतर समाधान ढूंढ रहे हैं.
- Vulkan की बाहरी मेमोरी का इस्तेमाल करते समय आ रही समस्या को ठीक किया गया. इस समस्या की वजह से, होस्ट पर मेमोरी टाइप के इंडेक्स मेल नहीं खाते थे.
GL_ALIASED_POINT_SIZE_RANGE
के एमुलेटर में उस समस्या को ठीक किया गया है जहां होस्ट पर, सूची के तौर पर दिए गए वैल्यू का इस्तेमाल नहीं किया जा सकता था.GL_EXT_shader_framebuffer_fetch
से जुड़ी गड़बड़ियों की वजह से, कुछ होस्ट जीपीयू पर Skia शेडर को कॉम्पाइल नहीं किया जा सका. इस समस्या को ठीक कर दिया गया है.- D3D9 ANGLE रेंडरर की हमारी कॉपी कुछ वर्शन पहले हटा दी गई थी, इसलिए अब हम उस रेंडरर पर मौजूद उपयोगकर्ताओं को d3d11 ANGLE पर अपने-आप स्विच कर देंगे. ऐसा तब होगा, जब उसे यूज़र इंटरफ़ेस (यूआई) प्राथमिकताओं में चुना गया हो.
- गड़बड़ियों को ट्रेस करने के लिए Windows पर WGL को शुरू करने की प्रक्रिया में ज़्यादा डीबग जानकारी जोड़ी गई है.
hw.gltransport=virtio-gpu-pipe
होने पर, होस्ट से मेहमान को ट्रांसफ़र करने के दौरान, होस्ट के लिए स्पिन न करने पर परफ़ॉर्मेंस बेहतर होती है.- OpenGLES इम्यूलेशन शुरू न होने पर, डीबग लॉगिंग की सुविधा जोड़ी गई है.
- YouTube वीडियो के फ़्लिकर करने या स्नैपशॉट लोड होने पर न दिखने से जुड़ी समस्या को ठीक किया गया.
- फ़िलहाल, libvpx के लिए सॉफ़्टवेयर डिकोड पर वापस स्विच कर दिया गया है. ऐसा इसलिए किया गया है, क्योंकि हमें libvpx के CUDA हार्डवेयर डिकोड में समस्याएं मिली हैं. अगर आपके पास होस्ट साइड पर काम करने वाला सीयूडीए हार्डवेयर डिकोड करने की सुविधा है, तो libvpx के हार्डवेयर डिकोड को एनवायरमेंट वैरिएबल
ANDROID_EMU_MEDIA_DECODER_CUDA_VPX=1
की मदद से फिर से चालू किया जा सकता है.
30.0.10 (30 अप्रैल, 2020)
इस अपडेट में, Android Studio में सीधे तौर पर एमुलेटर चलाने की सुविधा शामिल है. साथ ही, इसमें डिफ़ॉल्ट रूप से चालू फ़्रीफ़ॉर्म विंडो मोड वाले वर्चुअल डिवाइसों को चलाने की सुविधा भी शामिल है.
Android Studio में एम्युलेटर चलाएं
Android Emulator को अब सीधे Android Studio में चलाया जा सकता है. इस सुविधा का इस्तेमाल करके, स्क्रीन रीयल एस्टेट को बचाएं. साथ ही, हॉटकी का इस्तेमाल करके, एमुलेटर और एडिटर विंडो के बीच तुरंत नेविगेट करें. इसके अलावा, एक ही ऐप्लिकेशन विंडो में अपने IDE और एमुलेटर वर्कफ़्लो को व्यवस्थित करें.
फ़्रीफ़ॉर्म विंडो मोड
अब Android Studio में वर्चुअल डिवाइस बनाते समय, 13.5” फ़्रीफ़ॉर्म टैबलेट हार्डवेयर प्रोफ़ाइल चुनकर, ऐसा 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 एमुलेटर का इस्तेमाल नहीं किया जा सकता था, तो अब अपने ऐप्लिकेशन को चलाने के लिए, Android 9 x86 सिस्टम इमेज या Android 11 की किसी भी सिस्टम इमेज का इस्तेमाल किया जा सकता है. अब ARM बाइनरी चलाने के लिए, किसी खास सिस्टम इमेज को डाउनलोड करने की ज़रूरत नहीं है. Android 9 और Android 11 की ये सिस्टम इमेज, डिफ़ॉल्ट रूप से ARM पर काम करती हैं. साथ ही, पूरी तरह से ARM इम्यूलेशन की सुविधा वाले सिस्टम की तुलना में, इनकी परफ़ॉर्मेंस काफ़ी बेहतर होती है.
पहले से मालूम समस्याएं
- कुछ ARMv7 बाइनरी, Android 11 x86 और x86_64 सिस्टम इमेज पर नहीं चलती हैं. Android 11 को टारगेट करते समय, ARM64 के लिए ऐप्लिकेशन बनाएं.
29.0.11 (29 मई, 2019)
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- Windows: एमुलेटर अब
libgcc
DLL पर निर्भर करता है, जिसे हमlibgcc
के साथ स्टैटिक तौर पर कॉम्पाइल करने के बजाय शिप करते हैं. - Linux: gRPC API में लॉगकैट की सुविधा जोड़ी गई. gRPC के बारे में ज़्यादा जानकारी के लिए, gRPC स्ट्रीमिंग एमुलेटर (Linux) देखें.
- एमुलेटर में अब 32-बिट x86 मेहमान (
qemu-system-i386
) के लिए हेडलेस बिल्ड शामिल है. इस सुविधा की मदद से, एपीआई लेवल 26 और उससे पहले के लेवल के लिए, हेडलेस बिल्ड के साथ x86 32-बिट इमेज चलाई जा सकती हैं. ध्यान दें कि एपीआई 27 और उसके बाद के वर्शन वाले 32-बिट x86 मेहमान के लिए, एमुलेटर 64-बिट इंजन (qemu-system-x86_64
) का इस्तेमाल करता है. ऐसा इसलिए है, क्योंकि इन सिस्टम इमेज में यूज़रस्पेस 32-बिट है, जबकि कर्नेल 64-बिट है. Android Studio, इम्यूलेशन इंजन चुनने के लिए कर्नेल का इस्तेमाल करता है. - अब
ANDROID_QT_LIB_PATH
एनवायरमेंट वैरिएबल का इस्तेमाल करके, कस्टम Qt लाइब्रेरी पाथ तय किए जा सकते हैं. - अगर QEMU1 के रन करने वाले (
emulator[64]-[x86|arm|etc]
) को एमुलेटर डायरेक्ट्री में रखा गया है, तो अब एमुलेटर को QEMU1 का इस्तेमाल करने वाली पिछली बाइनरी के साथ चलाया जा सकता है. - Windows: एक समस्या को ठीक किया गया है. इसकी वजह से, कभी-कभी "vCPU बंद करने का अनुरोध" मैसेज के साथ, एमुलेटर शुरू नहीं हो पाता था.
- Vulkan में एम्युलेट किए गए कंप्रेस किए गए टेक्सचर में पाइपलाइन की ग़ैर-ज़रूरी रुकावट की समस्या को ठीक किया गया.
- अलग-अलग ट्रांसफ़र के लिए कोड में बदलने के दौरान एचटीटीपी प्रॉक्सी अनुरोधों में होने वाली गड़बड़ी को ठीक किया गया है. ज़्यादा जानकारी के लिए, कमिट की जानकारी देखें.
29.0.9 (7 मई, 2019)
इस अपडेट में यह गड़बड़ी ठीक की गई है:
- Windows: एम्युलेटर पर वर्चुअल सीन कैमरा और वेबकैम काम न करने की समस्या को ठीक किया गया है.
29.0.8 (6 मई, 2019)
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- एक से ज़्यादा वर्चुअल हार्डवेयर डिसप्ले के लिए सहायता जोड़ी गई है. ऐसा तब किया जाता है, जब हर डिसप्ले की गिनती करने और उसे सेट करने के लिए कोई मेहमान सेवा उपलब्ध हो. आने वाले समय में, इम्यूलेटर सिस्टम की इमेज के अपडेट में कई वर्चुअल हार्डवेयर डिसप्ले शामिल किए जाएंगे.
- कमांड-लाइन का एक नया विकल्प जोड़ा गया:
-delay-adb
. यह विकल्प, एडीबी पैकेट की प्रोसेसिंग को तब तक रोकता है, जब तक कि मेहमान डिवाइस को पूरी तरह से बूट नहीं कर लेता. इस विकल्प की मदद से, उन समस्याओं को हल किया जा सकता है जो किसी ऐसे सीआई (कंट्रोल इंटिग्रेशन) एनवायरमेंट में एमुलेटर का इस्तेमाल करने पर हो सकती हैं जो एमुलेटर को रीबूट करता है और एक ही समय पर डीडीएमएस का इस्तेमाल करता है. - स्नैपशॉट लोड करते समय होने वाली उस गड़बड़ी को ठीक किया गया है जहां
glIsRenderbuffer
गलत वैल्यू दिखाता था. - Android डिवाइस के रीबूट होने पर, पुरानी स्थिति से जुड़ी कुछ समस्याओं को ठीक किया गया.
- Windows: Windows उपयोगकर्ता नाम में ASCII के बाहर के वर्ण या स्पेस होने पर, इम्यूलेटर के शुरू न होने से जुड़ी समस्याओं को ठीक किया गया.
पहले से मालूम समस्याएं
- वाहन के सिस्टम की इमेज के लिए, स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) बंद है. इसकी वजह यह है कि फ़िलहाल, इन सिस्टम इमेज के लिए स्नैपशॉट की सुविधा काम नहीं करती.
29.0.6 (1 मई, 2019)
इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.
QEMU1 और 32-बिट Windows के लिए सहायता हटाना
एमुलेटर को बेहतर तरीके से मैनेज करने के लिए, हम अब QEMU1 और 32-बिट Windows के बाइनरी शिप नहीं करते. अगर Windows 32-बिट का इस्तेमाल किया जा रहा है, तो 29.0.6 वर्शन पर अपग्रेड नहीं किया जा सकता.
Android Q की सिस्टम इमेज के लिए ज़रूरी शर्तें
अगर आपको Android Q सिस्टम इमेज का इस्तेमाल करने वाला AVD चलाना है, तो अब आपको 29.0.6 (इस रिलीज़ का वर्शन) या इसके बाद के वर्शन का इस्तेमाल करना होगा.
Project Marble में किए गए सुधार
इस अपडेट के साथ, हम Project Marble प्रोग्राम पर काम करना जारी रखेंगे. इस प्रोग्राम का एलान नवंबर 2018 में Android डेवलपर समिट में किया गया था. पिछले रिलीज़ में, Project Marble में किए गए अन्य सुधारों के बारे में ज़्यादा जानने के लिए, Android एमुलेटर: 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 UI लाइब्रेरी को 5.12 LTS में अपग्रेड किया गया
इस अपडेट में, Qt 5.12 LTS रिलीज़ से जुड़े ये सुधार शामिल हैं:
- सिस्टम की कुछ इमेज शुरू करते समय, Qt के
libpng
को डिकोड करने में होने वाली क्रैश से बचने के लिए, एम्युलेटर अबlibpng
की अपनी कॉपी का इस्तेमाल करता है, ताकि PNG इमेज को डिकोड किया जा सके. - Qt पर काम करने वाली कुछ लाइब्रेरी के काम न करने वाले वर्शन वाले कुछ Linux इंस्टॉल से जुड़ी समस्याओं को हल करने के लिए, अब हम एमुलेटर के साथ
libfreetype
,libsoftokn
,libsqlite3
, औरlibxkbcommon
को पैकेज करते हैं. - एम्युलेटर, मॉनिटर के डाइमेंशन पाने के लिए, अब प्लैटफ़ॉर्म की नेटिव विंडो लाइब्रेरी का इस्तेमाल करता है. इसके लिए, वह 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
- यह एनवायरमेंट वैरिएबल, सीपीयू और रैम, दोनों के इस्तेमाल को ट्रैक करने की सुविधा देता है. रैम के इस्तेमाल को ट्रैक करने से, ग्राफ़िक्स के इस्तेमाल और कुल मेमोरी के बीच का अंतर पता चलता है.
ANDROID_EMU_TRACING=1
- यह एनवायरमेंट वैरिएबल, हर बार प्रिंट करने की सुविधा चालू करता है, जब किसी इनपुट या ग्राफ़िक्स ऑपरेशन में ज़्यादा समय (1 मिलीसेकंड से ज़्यादा) लगता है.
- हम इस एनवायरमेंट वैरिएबल का इस्तेमाल, उन समस्याओं का पता लगाने के लिए भी कर रहे हैं जो Windows के उपयोगकर्ताओं को macOS या Linux के उपयोगकर्ताओं की तुलना में ज़्यादा झटके (फ़्रेम गिरना) के साथ आती हैं.
Project Marble में किए गए सामान्य सुधार
इस अपडेट में, 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 चलाते समय, अचानक ईओएफ़ (फ़ाइल का आखिरी हिस्सा) मिलने से जुड़ी समस्याओं को हल किया जा सके.
- अब एमुलेटर,
LC_ALL=C
एनवायरमेंट वैरिएबल को डिफ़ॉल्ट रूप से एक्सपोर्ट करता है. इस बदलाव से, अलग-अलग भाषाओं में इम्यूलेटर चलाने से जुड़ी क्रैश और काम न करने की समस्याएं हल हो जाती हैं. - अब आप एक्सटेंडेड कंट्रोल > सेटिंग > बेहतर > परफ़ॉर्मेंस के आंकड़े पर जाकर, परफ़ॉर्मेंस के आंकड़ों का इस्तेमाल करके एम्युलेटर के सीपीयू और रैम के इस्तेमाल को ट्रैक कर सकते हैं. अगर एमुलेटर काफ़ी सीपीयू या रैम का इस्तेमाल कर रहा है, तो इन आंकड़ों का इस्तेमाल करके समस्याओं का तुरंत पता लगाएं.
glReadPixels GL_IMPLEMENTATION_COLOR_READ_TYPE
अब एमुलेट किए गए GPU के बजाय, होस्ट GPU के नतीजे का इस्तेमाल करता है. इस बदलाव से, उन समस्याओं को ठीक करने में मदद मिलती है जिनमें इमेज और ऐसेट, रीडबैक के लिए गलत फ़ॉर्मैट की वजह से नहीं दिखतीं.- अगर होस्ट पर OpenGL ES एक्सटेंशन
GL_EXT_texture_format_BGRA8888
औरGL_APPLE_texture_format_BGRA8888
काम करते हैं, तो इन एक्सटेंशन के लिए सहायता जोड़ी गई है. - गड़बड़ी की शिकायत करने वाले यूज़र इंटरफ़ेस (यूआई) में, गड़बड़ी की जानकारी से जुड़ी ज़्यादा जानकारी जोड़ी गई है. इसके अलावा, नीचे दिए गए निर्देशों का इस्तेमाल करके कंसोल से गड़बड़ी की रिपोर्ट ऐक्सेस की जा सकती हैं:
telnet localhost 5554
avd bugreport
- Android Q सिस्टम इमेज पर, एम्युलेटर रैम का कम से कम साइज़ 2 जीबी तक बढ़ा देता है.
- जब OpenGL या Hypervisor शुरू नहीं हो पाता, तब ज़्यादा लॉगिंग और प्रिंटिंग जोड़ी गई.
- अगर एमुलेटर, किसी AVD के एक साथ कई
-read-only
इंस्टेंस शुरू नहीं कर पाता है, तो एमुलेटर अब तीन सेकंड में-read-only
AVD को तीन बार फिर से लॉन्च करने की कोशिश करता है. इस बदलाव से इस बात की संभावना बढ़ जाती है कि एम्युलेटर, एवीडी के एक साथ-read-only
इंस्टेंस लॉन्च कर पाएगा. ऐसा तब होगा, जब एवीडी के अन्य लिखित इंस्टेंस हटाए नहीं गए हों. - आने वाले समय में रिलीज़ होने वाली सिस्टम इमेज के लिए, एम्युलेटर अब Hardware Composer 2.0 के साथ काम करता है. इस बदलाव से ज़्यादातर ऐनिमेशन चलाते समय, ड्राइवर का ओवरहेड कम हो जाएगा.
- एम्युलेटर का बिल्ड अब CMake/Ninja पर आधारित है.
- एमुलेटर के एक्सटेंडेड कंट्रोल यूज़र इंटरफ़ेस (यूआई) में, कीबोर्ड शॉर्टकट टेबल में डिवाइडर लाइनें वापस लाई गई हैं.
- उपयोगकर्ता अब 10 सेकंड के इंटरवल में, सीपीयू और रैम के इस्तेमाल की मेट्रिक देने के लिए ऑप्ट-इन कर सकते हैं. हम इन मेट्रिक का इस्तेमाल, एम्युलेटर के संसाधनों के इस्तेमाल से जुड़े अपने डेटा को बेहतर बनाने के लिए करते हैं. इसके लिए, हम उपयोगकर्ताओं के इस्तेमाल के अलग-अलग उदाहरणों का भी इस्तेमाल करते हैं. इससे हमें एम्युलेटर को ज़्यादा बेहतर और रिस्पॉन्सिव बनाने में मदद मिलती है.
Project Marble से जुड़ी सामान्य समस्याओं को ठीक करना
इस अपडेट में, यहां दिए गए ऐसे सामान्य सुधार भी शामिल हैं जो Project Marble पहल का हिस्सा हैं:
- Android Q सिस्टम इमेज का इस्तेमाल करते समय, Intel जीपीयू वाले सिस्टम पर दिखने वाली फ़्रेम की झिलमिलाहट और गलत फ़्रेम से जुड़ी समस्याएं ठीक की गई हैं.
- Pixel 2 XL की स्किन (या किसी भी ऐसी स्किन जिसमें नॉच या गोल कोने हों) के साथ Android Q की सिस्टम इमेज इस्तेमाल करने पर, काली स्क्रीन दिखने की समस्याएं ठीक की गई हैं.
-partition-size
कमांड-लाइन विकल्प से, डेटा पार्टीशन का साइज़ सेट न हो पाने की समस्या को ठीक किया गया है.- एक समस्या को ठीक किया गया है. इस समस्या की वजह से, Linx एमुलेटर पर pulseaudio कुछ मामलों में, पूरे सीपीयू कोर को इस्तेमाल करता था.
- संपीड़ित टेक्सचर को प्रोसेस करते समय, मेमोरी के ऐक्सेस से जुड़ी समस्याएं ठीक की गईं.
glTexSubImage2D
में होस्ट पर हुई GL गड़बड़ियों को ठीक किया गया. ये गड़बड़ियां, कुछ खास gralloc बफ़र (RGB 565, RGB10A2, RGB(A)16F फ़ॉर्मैट के साथ) को अपडेट करते समय हुई थीं.- Android Q सिस्टम इमेज में स्नैपशॉट की डिसप्ले से जुड़ी समस्या को ठीक किया गया है. इसमें सूचना शेड की ज्यामिति को गलत इंस्टेंस डिवाइडर सेटिंग के साथ रेंडर किया गया था.
- लॉन्च के दौरान क्रैश और फ़्रीज़ होने से जुड़ी कुछ समस्याओं को ठीक किया गया है. ये समस्याएं, Qt के सिग्नल बंद होने या स्टार्टअप के दौरान अनियमित और गड़बड़ियों वाली स्थितियों की वजह से होती हैं.
- एक साथ कई टास्क करने से जुड़ी कई समस्याएं ठीक की गईं. अब हम ThreadSanitizer (TSAN) की मदद से, Linux एमुलेटर बना सकते हैं. इससे उन गड़बड़ियों का आसानी से पता चल सकता है जिन्हें आम तौर पर दोहराना मुश्किल होता है.
- Linux उपयोगकर्ताओं के लिए: हमने पाया है कि कुछ होस्ट कर्नेल पर, मेहमान Android
कर्नेल गड़बड़ी कर सकते हैं और सामान्य हार्डवेयर गड़बड़ी के साथ KVM में बाहर निकल सकते हैं. डीबग करने की सुविधा को बेहतर बनाने के लिए, अब ऐसा होने पर एम्युलेटर
abort()
करेगा. इससे पहले, एम्युलेटर सिर्फ़ हंग हो जाता था. - Linux का इस्तेमाल करने वालों के लिए: सीआई सेटअप की सुविधा के लिए,
-stdouterr-file <file-name>
कमांड लाइन के नए विकल्प का इस्तेमाल करके,stdout
औरstderr
, दोनों को किसी फ़ाइल पर रीडायरेक्ट किया जा सकता है. - उस समस्या को ठीक कर दिया गया है जिसकी वजह से
SO_REUSEADDR
का गलत तरीके से इस्तेमाल किया गया था. ज़्यादा जानकारी के लिए, समीक्षा करना तय करने से जुड़ी जानकारी देखें. - Windows एमुलेटर से जुड़ी एक पुरानी समस्या को ठीक किया गया है. इस समस्या की वजह से, उपयोगकर्ता नाम में स्पेस होने पर, ADB कमांड जैसी सब-प्रोसेस शुरू नहीं हो पाती थीं.
- HAXM vCPU थ्रेड में RCU शुरू करने की समस्या ठीक की गई. इस सुधार से, कुछ क्रैश और रेस की स्थितियों को ठीक किया जा सकता है.
- Android Q की हाल ही की सिस्टम इमेज का इस्तेमाल करके, स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) से स्नैपशॉट सेव और लोड करने के कुछ पैटर्न की वजह से होने वाली क्रैश की समस्या को ठीक किया गया.
- एक समस्या को ठीक किया गया है. इसमें, स्नैपशॉट से एमुलेटर को शुरू करने पर, वर्चुअल सीन कैमरा खाली दिखता था. ऐसा तब होता था, जब स्नैपशॉट सेव करते समय कोई एआर मैक्रो चल रहा हो.
- Linux पर एम्युलेटर लॉन्च करते समय, रिमोट डेस्कटॉप सेटअप वाले कुछ उपयोगकर्ताओं को काली स्क्रीन दिखने वाली समस्या ठीक कर दी गई थी. इससे बचने के लिए, एम्युलेटर अब
MESA_RGB_VISUAL
को साफ़ तौर पर कॉन्फ़िगर करता है. ज़्यादा जानकारी के लिए, कमिट की जानकारी देखें. - उस समस्या को ठीक कर दिया गया है जिसमें टीवी एवीडी पर घुमाएं बटन दिखते हैं.
- एक समस्या को ठीक किया गया. इसमें, अगर एमुलेटर को हमेशा सबसे ऊपर सेट किया जाता था, तो हर बार एमुलेटर को घुमाने पर, एक्सटेंडेड कंट्रोल विंडो दिखती थी.
फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए हार्डवेयर प्रोफ़ाइलें
अब एमुलेटर में फ़ोल्ड किए जा सकने वाले डिवाइसों के लिए हार्डवेयर प्रोफ़ाइलें शामिल हैं. इन नई हार्डवेयर प्रोफ़ाइलों का इस्तेमाल करने के लिए, आपको Android Studio 3.5 कैनरी 10 या इसके बाद वाला वर्शन इस्तेमाल करना होगा.
फ़ोल्ड किए जा सकने वाले हार्डवेयर की दो प्रोफ़ाइलें हैं. एवीडी बनाने के लिए, इनका इस्तेमाल किया जा सकता है:
- 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 1.1 तक के ऐप्लिकेशन की जांच कर सकते हैं. ऐसा करने के लिए, किसी सिस्टम इमेज (Vulkan 1.1 के लिए Android Q बीटा 3 या उसके बाद वाले वर्शन, Vulkan 1.1 के लिए Android Q Beta 2) और इसके साथ काम करने वाले होस्ट जीपीयू (इसमें 2014 और उसके बाद के ज़्यादातर Intel, NVIDIA और AMD जीपीयू शामिल हैं) का इस्तेमाल किया जा सकता है.
Vulkan सहायता चालू करने के लिए, आपको अपनी ~/.android/advancedFeatures.ini
फ़ाइल में इन फ़ीचर फ़्लैग जोड़ने होंगे (अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं):
Vulkan = on
GLDirectMem = on
आरओएम डेवलपर के लिए शुरुआती सहायता
ऐसे ROM डेवलपर जो AOSP master
ब्रांच पर sdk_phone_x86
या sdk_phone_x86_64
(userdebug
, eng
वैरिएंट) टारगेट बना रहे हैं वे अब Vulkan की सुविधा वाला एम्युलेटर चला सकते हैं.
यह सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. यह मुख्य रूप से उन डेवलपर के लिए है जो सिस्टम इमेज, ड्राइवर, और गेम इंजन पर काम करते हैं. कई एक्सटेंशन अब भी मौजूद नहीं हैं.
हालांकि, HOST_COHERENT
मेमोरी का इस्तेमाल किया जा सकता है. साथ ही, अब आपके पास Vulkan API ट्यूटोरियल सैंपल को चलाने का विकल्प है.
अगर Linux का इस्तेमाल किया जा रहा है, तो नीचे दिए गए निर्देशों का इस्तेमाल करके इसे आज़माएं:
mkdir aosp-master
cd aosp-master
repo init -u https://android.googlesource.com/platform/manifest -b master --depth=1
repo sync -c -j12
. build/envsetup.sh
lunch sdk_phone_x86_64-userdebug
make -j12
emulator -no-snapshot -feature Vulkan,GLDirectMem
Vulkan की मदद से Skia रेंडरिंग
Vulkan के साथ काम करने वाले NVIDIA और AMD जीपीयू भी, GL_EXT_memory_objects
एक्सटेंशन के ज़रिए OpenGL के साथ ज़ीरो-कॉपी इंटरऑप की सुविधा देते हैं. एमुलेटर इस सुविधा का फ़ायदा उठाकर, Skia Vulkan API का इस्तेमाल करके Android यूज़र इंटरफ़ेस (यूआई) को रेंडर करने का पूरा तरीका उपलब्ध कराता है.
अगर आपके पास Vulkan के साथ काम करने वाला NVIDIA या AMD जीपीयू है, तो काम करने वाली सिस्टम इमेज (Android Q बीटा 3 और उसके बाद के वर्शन) के साथ Skia रेंडरिंग की जांच करने के लिए, नीचे दिए गए कमांड का इस्तेमाल करें:
adb shell
su
setprop debug.hwui.renderer skiavk
stop
start
macOS पर Vulkan की सुविधा
macOS के साथ काम करने की सुविधा अब भी एक्सपेरिमेंट के तौर पर उपलब्ध है. हालांकि, एम्युलेटर में पहले से ही Swiftshader, MoltenVK, और libportability (gfx-rs) एपीआई शामिल हैं. इन एपीआई के साथ एक्सपेरिमेंट करने के लिए, नीचे दिए गए एनवायरमेंट वैरिएबल सेट करें:
- Swiftshader:
ANDROID_EMU_VK_ICD=swiftshader
- MoltenVK:
ANDROID_EMU_VK_ICD=moltenvk
- libportability:
ANDROID_EMU_VK_ICD=portability
पहले से मालूम समस्याएं
HAXM कभी-कभी, मेहमान के लिए Vulkan कोऑर्डिनेटेड मेमोरी को मैप नहीं कर पाता और एमुलेटर को बंद कर देता है. इस समस्या को HAXM के आने वाले अपडेट में ठीक कर दिया जाएगा.
gRPC स्ट्रीमिंग एम्युलेटर (Linux)
हम हमेशा एमुलेटर को ज़्यादा से ज़्यादा काम का बनाने की कोशिश करते हैं. इसके लिए, हम होस्ट जीपीयू रेंडरिंग और इंटरैक्टिविटी की सुविधा देते हैं, ताकि एमुलेटर में कई तरह के काम किए जा सकें. हमारे सीआई और रिमोट डेस्कटॉप के उपयोगकर्ताओं को ये समस्याएं लंबे समय से आ रही हैं:
- प्रोग्राम के ज़रिए एमुलेटर को इनपुट निर्देश भेजने के लिए, adb शेल निर्देश चलाए जाते हैं. इन निर्देशों को चलाने में ज़्यादा समय लग सकता है. इसके अलावा, telnet कंसोल का इस्तेमाल भी किया जा सकता है. यह तेज़ है, लेकिन हो सकता है कि यह कुछ नेटवर्क कॉन्फ़िगरेशन के साथ काम न करे.
- सीआई के उपयोगकर्ता अक्सर बिना ग्राफ़िक यूज़र इंटरफ़ेस वाले एम्युलेटर चलाते हैं. इस वजह से, ऐसी समस्याओं का पता लगाना मुश्किल हो सकता है जिनकी स्क्रीन देखने या इंटरैक्टिव होने की ज़रूरत होती है.
- रिमोट डेस्कटॉप के उपयोगकर्ता, होस्ट के जीपीयू रेंडरिंग का इस्तेमाल करते समय, अक्सर एमुलेटर के साथ इंटरैक्ट नहीं कर पाते. इसकी वजह यह है कि जीपीयू रेंडरिंग, अक्सर होस्ट के नॉन-वर्चुअल डिसप्ले से जुड़ी होती है.
इस समस्या को हल करने के लिए, एम्युलेटर अब Linux मशीन पर चलने के दौरान, gRPC सेवा उपलब्ध कराता है. gRPC , आरपीसी के लिए एक सामान्य फ़्रेमवर्क है, जो एचटीटीपी पर काम करता है.
डिफ़ॉल्ट रूप से, एम्युलेटर gRPC सेवा बंद रहती है. हालांकि, इस कमांड लाइन विकल्प का इस्तेमाल करके सेवा को चालू किया जा सकता है. इसमें <port>
वह पोर्ट है जो एम्युलेटर को gRPC अनुरोध (आम तौर पर 5556
) देना चाहिए:
-grpc <port>
सेवा शुरू होने के बाद, क्लाइंट से gRPC निर्देश जारी किए जा सकते हैं. कमांड के मौजूदा सेट की मदद से, इनपुट इवेंट भेजे और स्क्रीनशॉट भी पाए जा सकते हैं. इन निर्देशों से इन समस्याओं को हल करने में मदद मिलती है:
- एचटीटीपी के ज़रिए, कम ओवरहेड के साथ एमुलेटर को इनपुट निर्देश भेजे जा सकते हैं. एचटीटीपी की मदद से, अन्य नेटवर्क कॉन्फ़िगरेशन में भी निर्देश भेजे जा सकते हैं.
- मौजूदा स्क्रीन की जानकारी पाने के लिए, स्क्रीनशॉट के निर्देश भेजे जा सकते हैं. भले ही, एमुलेटर हेडलेस मोड में चल रहा हो. इंटरैक्टिविटी के लिए, इनपुट इवेंट को एम्युलेटर पर वापस भी भेजा जा सकता है.
- रिमोट डेस्कटॉप के उपयोगकर्ता, मुख्य डिसप्ले पर जीपीयू की मदद से तेज़ी से रेंडर करने की सुविधा के साथ हेडलेस एमुलेटर चला सकते हैं. साथ ही, स्क्रीनशॉट पाने और एमुलेटर के साथ इंटरैक्ट करने के लिए, gRPC का इस्तेमाल करके इनपुट इवेंट भेज सकते हैं.
उपलब्ध निर्देशों की पूरी सूची के लिए, यह प्रोटोबफ़ देखें.
gRPC का इस्तेमाल शुरू करने में आपकी मदद करने के लिए, हमने कुछ सैंपल क्लाइंट दिए हैं.
फ़िलहाल, इसमें ये सैंपल शामिल हैं:
- Go पर आधारित सेवा, जिसका इस्तेमाल एमुलेटर की स्थितियों के बारे में क्वेरी करने के लिए किया जा सकता है.
- React ऐप्लिकेशन, जो स्क्रीनशॉट और इनपुट रिमोट प्रोसेस कॉल (आरपीसी) की मदद से रिमोट इंटरैक्टिविटी दिखाता है. इस सैंपल के लिए, protobuf का 3.7.0 या उसके बाद का वर्शन ज़रूरी है.
- Python सैंपल, जो एम्युलेटर के वीएम कॉन्फ़िगरेशन के बारे में क्वेरी करता है और फिर कई कमांड भेजता है.
28.0.25 (29 मार्च, 2019)
इस अपडेट में ये सुधार और सुधार शामिल हैं:
बिना ग्राफ़िक यूज़र इंटरफ़ेस वाला एम्युलेटर बिल्ड
Docker और अन्य सीआई (कंटिन्यूअस इंटिग्रेशन) वर्कफ़्लो के साथ एमुलेटर को सेट अप करना मुश्किल था. इसकी वजह यह है कि सिस्टम को Qt और उसकी शेयर की गई लाइब्रेरी डिपेंडेंसी के साथ काम करना चाहिए.
इसे ठीक करने के पहले चरण के तौर पर, हमने एम्युलेटर लॉन्चर का एक वैरिएंट लॉन्च किया है. इसमें QEMU के एक्ज़ीक्यूटेबल के साथ-साथ यह भी उपलब्ध है कि यह Qt पर निर्भर नहीं करता. Linux पर, अब भी libX11
का एक लिंक मौजूद है. हालांकि, हमें उम्मीद है कि हम उसे भी जल्द ही हटा देंगे.
हेडलेस एमुलेटर का इस्तेमाल करने के लिए, एमुलेटर को हमेशा की तरह कमांड लाइन से चलाएं. हालांकि, एमुलेटर बाइनरी को emulator-headless
से बदलें. ज़्यादा जानकारी के लिए, 28.1.8 Canary रिलीज़ अपडेट देखें.
- Android Q सिस्टम इमेज चलाते समय, Intel जीपीयू पर फ़्रेम के झटके और गलत डिसप्ले की समस्या को ठीक किया गया.
- Pixel 2 XL की स्किन के साथ Android Q की सिस्टम इमेज इस्तेमाल करने पर, काली स्क्रीन दिखने की समस्याएं ठीक की गई हैं.
- अब एम्युलेटर को शुरू करने के लिए, सबसे नई बीआईओएस बाइनरी का इस्तेमाल किया जाता है. इस बदलाव से, "vCPU बंद करने का अनुरोध" वाली गड़बड़ियों को कम करने में मदद मिल सकती है. ये गड़बड़ियां, कभी-कभी Windows पर एमुलेटर लॉन्च करने के दौरान होती हैं.
- "Android Q सिस्टम इमेज को स्नैपशॉट से फिर से शुरू करते समय गलत डिसप्ले" समस्या को ठीक करने के लिए, बैकपोर्ट किया गया.
- प्लैटफ़ॉर्म-टूल 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)
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- एक पुरानी समस्या को ठीक किया गया है. इसमें कुछ सेटिंग में, क्विकबूट सेव करने पर Mac एमुलेटर रीबूट हो जाता था या कर्नेल पैनिक हो जाता था. (समस्या 120951634)
- रैम स्नैपशॉट के तौर पर मैप की गई फ़ाइल का इस्तेमाल करने पर, एमुलेटर अब बाहर निकलने पर फ़ाइल मैपिंग को साफ़ तौर पर अनमैप कर देता है.
28.0.20 (11 दिसंबर, 2018)
इस अपडेट में ये सुधार और गड़बड़ियां ठीक की गई हैं:
- Windows पर एक समस्या को ठीक किया गया है. इसकी वजह से, Intel जीपीयू के कुछ मॉडल के साथ स्नैपशॉट लोड होने पर, एमुलेटर फ़्रीज़ हो जाता था.
- उस समस्या को ठीक किया गया है जिसकी वजह से
unauthorized
डिवाइस के लिए, स्टैंडर्डANDROID_SDK_HOME
जगह का इस्तेमाल न करने पर, ADB डिवाइस की स्थिति गलत दिखती थी. - Windows पर एक समस्या को ठीक किया गया है. इसकी वजह से, सीपीयू एक्सेलरेशन की सुविधा बंद होने पर, सिस्टम इमेज को बूट करते समय, एमुलेटर क्रैश हो जाता था.
- पिक्सलेटेड एम्युलेटर डिसप्ले की समस्या ठीक की गई. अब डाउनसैंपलिंग की सुविधा काम करनी चाहिए.
- macOS 10.14 और इसके बाद के वर्शन पर, एक समस्या को ठीक किया गया है. इस वर्शन में, सुलभता से जुड़ी नई सुरक्षा सेटिंग के साथ इंटरैक्ट करने की वजह से, वर्चुअल सीन कैमरे के माउसलूक कंट्रोल की सेटिंग बहुत संवेदनशील हो सकती थी.
- टाइमज़ोन की गिनती में होने वाली उस गड़बड़ी को ठीक किया गया है जिसकी वजह से एम्युलेटर घड़ी में कभी-कभी बदलाव हो सकते हैं.
- cocos2d और Unreal इंजन के कई ऐप्लिकेशन में रेंडरिंग से जुड़ी गड़बड़ियां ठीक की गईं.
- वाई-फ़ाई पीयर-टू-पीयर के लिए, एमुलेटर में सहायता जोड़ी गई.
अगर आप पाई Play Store की सबसे नई इमेज
का इस्तेमाल कर रहे हैं, तो दो एम्युलेटर अब वाई-फ़ाई के ज़रिए सीधे एक-दूसरे से बात कर सकते हैं. वाई-फ़ाई पीयर-टू-पीयर का इस्तेमाल करने के लिए, एक ही
-wifi-server-port
और-wifi-client-port
आर्ग्युमेंट के साथ दो AVD शुरू करें:emulator @<server-avd-name> -wifi-server-port 9999
emulator @<client-avd-name>-wifi-client-port 9999
- कोई भी असंगत फ़्रेम साइज़ लेकर और Android मेहमान में कैमरा सेटिंग के हिसाब से डाइनैमिक तौर पर साइज़ बदलकर, Windows पर ज़्यादा वेबकैम के लिए सहायता जोड़ी गई है.
28.0.16 (नवंबर 2018)
इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.
संसाधन का उपयोग
अब एमुलेटर कम रैम का इस्तेमाल करता है. खास तौर पर, एपीआई लेवल 28 या उससे ज़्यादा वाले सिस्टम इमेज का इस्तेमाल करते समय. इन सिस्टम इमेज में, मेहमान-साइड के ग्राफ़िक ड्राइवर के लिए, मेमोरी के इस्तेमाल को बेहतर बनाया गया है.
इसके अलावा, हमने इन क्षेत्रों में भी संसाधनों के इस्तेमाल को बेहतर बनाया है:
- लंबे समय तक चलने वाली जांचों के दौरान, एम्युलेटर की मेमोरी का इस्तेमाल कम किया गया. अगर आपको लंबे समय तक चलने वाले टेस्ट के दौरान भी मेमोरी के इस्तेमाल से जुड़ी समस्याएं आ रही हैं, तो कृपया समस्या ट्रैकर में अपने इस्तेमाल के उदाहरण की समस्या बनाएं.
- ऐनिमेशन वाले ऐप्लिकेशन चलाते समय, सीपीयू का इस्तेमाल कम होता है.
- Windows पर QEMU AIO कॉन्टेक्स्ट लीक होने की समस्या को ठीक किया गया है.
एक ही AVD के कई इंस्टेंस एक साथ चलाना
अब एक ही एवीडी के कई इंस्टेंस लॉन्च किए जा सकते हैं और उन्हें एक साथ चलाया जा सकता है. पहले इंस्टेंस के बाद लॉन्च किए गए इंस्टेंस, रीड-ओनली मोड में होते हैं. साथ ही, मेहमान वर्चुअल डिस्क में किए गए बदलाव, बाहर निकलने पर खारिज कर दिए जाते हैं.
एक ही समय में एक ही एवीडी के कई इंस्टेंस चलाने के लिए, -read-only
फ़्लैग का इस्तेमाल करके कमांड लाइन से पहले इंस्टेंस के बाद किसी भी इंस्टेंस को लॉन्च करें.
यह सुविधा, Android इमेज के लिखने लायक हिस्सों से जुड़ी QCOW2 फ़ाइलों को कॉपी करके बनाई गई है. डिस्क का स्टोरेज मैनेज करने में आपकी मदद करने के लिए, हमने qemu-img
कमांड-लाइन टूल को भी बंडल किया है. इससे, एक से ज़्यादा इंस्टेंस लॉन्च करने से पहले, QCOW2 फ़ाइलों को पहले से कमिट किया जा सकता है.
इसके अलावा, फ़ाइल से बैक अप लिए गए मेहमान रैम स्नैपशॉट सुविधा के साथ इस्तेमाल करने पर, कई AVD इंस्टेंस, लिखते समय कॉपी होने वाले मेहमान रैम के सामान्य सोर्स के तौर पर, मुख्य AVD क्विकबूट स्नैपशॉट शेयर करते हैं. इस प्रॉपर्टी का मतलब है कि इंस्टेंस, अपनी ज़्यादातर रैम को एक साथ शेयर करते हैं. इस सुविधा का इस्तेमाल करके, ऐसे टेस्ट चलाएं जिनके लिए एक साथ कई डिवाइसों की ज़रूरत होती है.
सामान्य इंटरैक्टिव या सीआई वर्कफ़्लो के हिस्से के तौर पर इस्तेमाल किए जा सकने वाले उदाहरणों के बारे में आपके सुझाव, शिकायत या राय देने के लिए धन्यवाद. कृपया समस्या ट्रैकर में समस्याएं बनाएं या उन पर वोट करें.
फ़ाइल से बैक अप लिए गए गेस्ट रैम के स्नैपशॉट
मेहमान के रैम को फ़ाइल के तौर पर पहले से तय करके और मैप करके, अब एमुलेटर रनटाइम के दौरान Quickboot स्नैपशॉट सेव कर सकता है. ऐसा करने से, एमुलेटर को एप्लिकेशन बंद होने पर पूरा काम करने की ज़रूरत नहीं पड़ती. अगर आपको एमुलेटर बंद करते समय, फ़ाइलें सेव होने में ज़्यादा समय लग रहा है, तो क्विकबूट की परफ़ॉर्मेंस को बेहतर बनाने के लिए, यह सुविधा चालू करें. डिफ़ॉल्ट रूप से, बाहर निकलने पर क्विकबूट स्नैपशॉट को सेव किया जाता है और हर बार फिर से लोड किया जाता है, जैसे कि असली डिवाइस को निलंबित करना और उसे चालू करना.
Android मेहमान रैम अब डिफ़ॉल्ट रूप से अपने-आप सेव हो जाती है. इसलिए, अगर आपको डिवाइस की स्थिति तय करनी है और उस स्थिति से बार-बार लोड करना है, तो आपको हर सेशन के बाद बदलावों को खारिज करने के लिए, एमुलेटर को बताना होगा. ऐसा करने के लिए, ये तरीके अपनाए जा सकते हैं:
- कमांड लाइन से एमुलेटर को लॉन्च करते समय,
-no-snapshot-save
या-read-only
फ़्लैग का इस्तेमाल करें. - बेहतर कंट्रोल > स्नैपशॉट > सेटिंग पर जाएं और क्या मौजूदा स्थिति को क्विकबूट में अपने-आप सेव करना है? को नहीं पर स्विच करें.
- यह विकल्प चुनने के बाद, आपको एमुलेटर को रीस्टार्ट करना होगा. अगर एम्युलेटर को अपने-आप सेव करने के लिए सेट किया गया है, तो चेकपॉइंट सेट करने के लिए, नीचे दिया गया कमांड चलाया जा सकता है:
adb emu avd snapshot remap 0
इस निर्देश को चलाने के बाद, एम्युलेटर का स्नैपशॉट उस चेकपॉइंट पर ही रहेगा. अपने चेकपॉइंट से एमुलेटर को लोड करने के लिए, वही कमांड फिर से चलाएं.
ऐसे स्नैपशॉट जिन्हें स्नैपशॉट यूज़र इंटरफ़ेस (यूआई) फ़ंक्शन की मदद से लिया और लोड किया जाता है. ये स्नैपशॉट, पहले की तरह ही काम करते हैं और इनमें फ़ाइल मैपिंग नहीं होती.
यह Quickboot के काम करने के तरीके में एक बड़ा बदलाव है. इसलिए, हमें इस बारे में आपका सुझाव या राय चाहिए कि क्या इससे Quickboot की परफ़ॉर्मेंस बेहतर हुई है और इसका इस्तेमाल करते समय आपको किस तरह की समस्याएं आ रही हैं. अगर आपको समस्याएं आ रही हैं, तो अपनी ~/.android/advancedFeatures.ini
फ़ाइल में यह लाइन जोड़कर, इस सुविधा को बंद किया जा सकता है:
QuickbootFileBacked = off
-snapshot
कमांड-लाइन विकल्प का इस्तेमाल करके या AVD मैनेजर में स्नैपशॉट से लॉन्च करके, जब एमुलेटर को स्नैपशॉट से शुरू किया जाता है, तो एमुलेटर, क्विकबूट स्नैपशॉट के लिए अपने-आप सेव होने की सुविधा और एमुलेटर से बाहर निकलने पर क्विकबूट स्नैपशॉट सेव होने की सुविधा, दोनों को बंद कर देता है. इससे, क्विकबूट स्नैपशॉट के अनजाने में बदले जाने की संभावना कम हो जाती है. साथ ही, फ़ाइल के तौर पर बैक अप लिए गए क्विकबूट स्नैपशॉट का इस्तेमाल न करने वाले, धीमे फ़ॉलबैक पाथ से भी बचा जा सकता है.
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 एमुलेटर पर असर डालने वाले कुछ अहम बदलावों के बारे में यहां बताया गया है:
- x86:
gdbstub
अब SSE रजिस्टर का ऐक्सेस देता है. - डिस्क इमेज: इमेज लॉक करने की सुविधा जोड़ी गई है और यह डिफ़ॉल्ट रूप से चालू रहती है. जब तक होस्ट में OFD या posix लॉकिंग की सुविधा काम करती है, तब तक एक से ज़्यादा QEMU प्रोसेस एक ही इमेज में डेटा नहीं लिख सकतीं. ऐसा तब तक नहीं होगा, जब तक विकल्पों के बारे में अलग से नहीं बताया जाता.
qemu-img: qemu-img resize
इमेज के नए हिस्सों को पहले ही तय करने की सुविधा देता है.- QCOW2 के हटने की सुविधा अब
qemu
औरqemu-img
में काम करती है.
सुलभता
- स्क्रीन रीडर से जुड़ी समस्याओं को ठीक किया गया. साथ ही, स्क्रीन रिकॉर्ड और स्नैपशॉट के यूज़र इंटरफ़ेस (यूआई) में, इन टूल के लिए बेहतर सहायता जोड़ी गई है.
- क्विक बूट की सूचना के आइकॉन को, रंगों में अंतर न कर पाने वाले उपयोगकर्ताओं के लिए ज़्यादा सुलभ बनाया गया है.
ग्राफ़िक्स
- मेमोरी एक्सेस करने पर कोई रोक नहीं लगाई जाती है, तो सुरक्षा का जोखिम हो सकता है. साथ ही, कोडिंग से छेड़छाड़ की जा सकती है.
- कुछ पुराने जीपीयू, OpenGL 2.1 या इसके बाद के वर्शन (जो ज़रूरी है) के साथ काम नहीं करते थे या उनमें भरोसे से जुड़ी अन्य समस्याएं थीं. इन समस्याओं की वजह से एम्युलेटर शुरू होने पर क्रैश हो सकता है, फ़्रीज़ हो सकता है या डिफ़ॉल्ट जीपीयू सेटिंग पर काम नहीं कर सकता. अगर एम्युलेटर को पता चलता है कि इन जीपीयू का इस्तेमाल किया जा रहा है, तो यह अपने-आप Swiftshader रेंडरर पर स्विच हो जाएगा.
- एक समस्या को ठीक किया गया है. इसकी वजह से,
eglSwapBuffers
के समयFBO != 0
बाउंड होने पर, एमुलेटर सही फ़्रेमबफ़र पोस्ट नहीं करता था. - उस समस्या को ठीक किया गया है जिसकी वजह से वर्चुअल Android डिसप्ले सिर्फ़ सबसे ऊपर बाएं कोने में दिखता था. हमें लगता है कि ऐसा Qt एनवायरमेंट वैरिएबल के गलत तरीके से कॉन्फ़िगर होने की वजह से हुआ था. अब एमुलेटर, Qt स्केलिंग से जुड़े सभी एनवायरमेंट वैरिएबल को बदल देता है.
- स्नैपशॉट से GLES1 ऐप्लिकेशन लोड करते समय, कुछ मामलों में एमुलेटर क्रैश होने की समस्या को ठीक किया गया है.
- OpenGL में एक साथ कई काम करने से जुड़ी समस्याओं को ठीक किया गया. साथ ही, रेंडर थ्रेड लॉन्च करने से जुड़ी समस्याओं को भी ठीक किया गया. इन समस्याओं की वजह से, डेटा दो बार फ़्री हो सकता है या डेटा खराब हो सकता है.
- Android Emulator अब एपीआई लेवल 28 या उसके बाद के वर्शन का इस्तेमाल करने वाली सिस्टम इमेज के लिए, एएसटीसी एलडीआर कंप्रेस की गई टेक्चर के साथ काम करता है (
GL_KHR_texture_compression_astc_ldr
). - ज़्यादातर आधुनिक जीपीयू अब
GLESDynamicVersion
सुविधा फ़्लैग का इस्तेमाल किए बिना, डिफ़ॉल्ट रूप से चालू OpenGL ES 3.x के साथ एमुलेटर लॉन्च कर सकते हैं. -gpu guest
(मेहमान के डिवाइस पर सॉफ़्टवेयर रेंडरिंग) अब काम नहीं करता. एपीआई लेवल 28 या उसके बाद के वर्शन के लिए, सिस्टम इमेज अब Swiftshader का इस्तेमाल करने के लिए अपने-आप स्विच हो जाती हैं (-gpu swiftshader_indirect
).- अगर एमुलेटर को
-no-window
फ़्लैग का इस्तेमाल करके कमांड लाइन से लॉन्च किया जाता है, तो डिफ़ॉल्ट रेंडरर अब Swiftshader है.
जगह की जानकारी
- अब एमुलेटर, अक्षांश और देशांतर के साथ-साथ, दिशा की जानकारी भी अपडेट कर सकता है. मैग्नेटोमीटर वर्चुअल सेंसर, GPX या KML फ़ाइल चलाते समय, गति का अनुमान लगाकर, अपने-आप डाइनैमिक तरीके से मैग्नेटिक नॉर्थ के हिसाब से अडजस्ट हो जाता है.
- डिवाइस की स्पीड को अब जगह की जानकारी वाले पेज पर सेट किया जा सकता है.
- किसी GPX या KML फ़ाइल को प्ले करते समय, स्पीड अपने-आप सेट हो जाती है. साथ ही, प्लेबैक खत्म होने पर शून्य पर सेट हो जाता है.
- ऊंचाई अब -1,000 और +10,000 मीटर के बीच तक सीमित नहीं है.
- वर्चुअल जीपीएस लोकेशन को समय-समय पर अपडेट न करने की समस्या को ठीक कर दिया गया है. ऐसा तब तक होगा, जब तक एक्सटेंडेड कंट्रोल विंडो को कम से कम एक बार न खोला जाए.
कैमरा
Windows पर, अब ज़्यादा वेबकैम इस्तेमाल किए जा सकते हैं. इसकी वजह यह है कि एम्युलेटर, वेबकैम से डिलीवर किए गए कैमरा फ़्रेम का साइज़ डाइनैमिक तौर पर बदलता है. यह सुविधा फ़्रेम डिलीवरी में होने वाली गड़बड़ियों को भी रोकती है, ताकि एम्युलेटर हैंग न हो.
Play Store
Play Store की इमेज पर डिस्क स्टोरेज खत्म होने से जुड़ी समस्याओं को हल करने के लिए, एमुलेटर अब नए Play Store AVD के साथ चलने पर, उपयोगकर्ता डेटा वाले पार्टीशन का साइज़ अपने-आप 6 जीबी कर देता है.
क्वालिटी को बेहतर बनाने और गड़बड़ियों को ठीक करने से जुड़े सामान्य अपडेट
- कुछ उपयोगकर्ताओं ने बताया कि एमुलेटर धीरे चल रहा है. हमने इस समस्या की एक संभावित वजह का पता लगाया है. इसमें, एमुलेटर की टेंप्लेट डायरेक्ट्री में बहुत सारी पुरानी फ़ाइलें मौजूद होती हैं. इस समस्या को हल करने के लिए, एमुलेटर अब उस डायरेक्ट्री में ADB की लाइवनेस जांच करने वाली फ़ाइलें सेव नहीं करता. हालांकि, इससे उस फ़ोल्डर का कॉन्टेंट भी मिटाया जा सकता है. आपके ऑपरेटिंग सिस्टम के हिसाब से, फ़ोल्डर इनमें से किसी एक जगह पर होगा:
- Windows:
C:\Users\<username>\AppData\Local\Temp\AndroidEmulator\*
- macOS या Linux:
/tmp/android-<username>/*
- Windows:
- अगर रैम में जगह न होने की वजह से एमुलेटर शुरू नहीं हो पा रहा है, तो अब गड़बड़ी का मैसेज दिखेगा. अगर आप Windows पर हैं और आपने देखा है कि रैम मौजूद नहीं है, लेकिन फिर भी एम्युलेटर को चालू नहीं किया जा सका, तो हो सकता है कि तय किया गया शुल्क सीमा से ज़्यादा हो गया हो. इस समस्या को हल करने के लिए, एमुलेटर से जुड़ी समस्या हल करने वाला पेज देखें.
-sysdir
कमांड लाइन का विकल्प, अब अनुमानित सिस्टम की इमेज डायरेक्ट्री को सही तरीके से बदल देता है.- वर्चुअल मॉडेम अब मॉडल की गतिविधि की जानकारी
+MAI
क्वेरी के साथ काम करता है. - मेमोरी लीक, मेमोरी खराब होने, और सीपीयू के इस्तेमाल से जुड़ी कई समस्याओं को ठीक किया गया है. अगर आपको क्रैश होने, मेमोरी लीक होने या दूसरी चीज़ों का ज़्यादा इस्तेमाल होने की समस्या आ रही है, तो कृपया समस्या को ट्रैक करने वाले टूल में समस्या की जानकारी दें.
- macOS 10.14 पर फिर से आने वाली एक समस्या को ठीक किया गया है. इस समस्या की वजह से, एमुलेटर के साथ ब्लूटूथ हेडफ़ोन का इस्तेमाल करने पर, ऑडियो की क्वालिटी खराब हो जाती थी. इस समस्या से बचने के लिए, एमुलेटर अब macOS पर चलने के दौरान ब्लूटूथ ऑडियो का इस्तेमाल नहीं करता. (समस्या 37070892)
- Windows पर आने वाली, एम्युलेटर घड़ी के सही टाइमज़ोन में होने वाली समस्या को ठीक किया गया है.
- एम्युलेटर के धीमे चलने की समस्या को ठीक किया गया है और स्पिनिंग हार्डड्राइव (एचडीडी) वाले Linux सिस्टम पर हैंग हो जाता है.
- कंपाइल करने से जुड़ी कुछ चेतावनियों को ठीक किया गया है. इनकी वजह से macOS पर स्टैक खराब हो सकता था.
- ऐसी समस्याओं को ठीक किया गया है जिनकी वजह से, ऐप्लिकेशन के हैंग होने की गलत रिपोर्ट मिल सकती थीं.
- थ्रेड पूल को नष्ट करने से जुड़ी समस्या को ठीक किया गया. अगर कोई थ्रेड ठीक से नहीं बन पाता है, तो क्रैश हो सकता है.
- macOS पर एक समस्या को ठीक किया गया है. इस समस्या की वजह से टाइमर काम नहीं करते थे और ऐप्लिकेशन hang हो जाता था. अगर macOS पर एम्युलेटर रुक गया है, तो कृपया समस्या को ट्रैक करने वाले टूल में समस्या की जानकारी दें.
- एम्युलेटर को बंद करने पर, यूज़र इंटरफ़ेस (यूआई) बंद हो जाता था, लेकिन एम्युलेटर बंद नहीं होता था. इस समस्या को ठीक कर दिया गया है.
- कभी-कभी क्रैश होने की समस्याएं ठीक की गई हैं. इनमें,
/dev/urandom
के कई इंस्टेंस खोलने की वजह से प्रोसेस को बीच में रोकना भी शामिल है. - उस समस्या को ठीक कर दिया गया है जिसकी वजह से ADB को हर हाल में खत्म किए जाने पर एम्युलेटर पहली बार शुरू नहीं हो सका.
- MIPS बिल्ड को हटा दिया गया है. अगर आपको अब भी एमआईपीएस की ज़रूरत है, तो कृपया समस्या ट्रैकर में समस्या दर्ज करें.
- समस्या को ठीक किया गया है जहां स्नैपशॉट लोड करने पर ADB कनेक्शन खराब हो सकते हैं.
- किसी ऐसे स्नैपशॉट को फिर से शुरू करते समय, एमुलेटर विंडो में आफ़्टरइमेज या स्क्रीन से बाहर जाने की समस्या को ठीक किया गया है जिसमें डिवाइस का ओरिएंटेशन, AVD के डिफ़ॉल्ट ओरिएंटेशन से अलग था.
- स्नैपशॉट सेव करते समय क्रैश होने से जुड़ी समस्याएं ठीक की गई हैं.
- Linux पर, btrfs फ़ाइल सिस्टम की वजह से, ऐप्लिकेशन का बहुत धीमा होना शुरू हो सकता है. ऐसा इसलिए होता है, क्योंकि एमुलेटर अपने-आप स्नैपशॉट सेव करता है और अपने वर्चुअल डिस्क डिवाइसों के लिए, लिखते समय कॉपी करने की सुविधा का इस्तेमाल करता है. हमारा सुझाव है कि आप
~/.android/avd
डायरेक्ट्री को खाली करें और खाली~/.android/avd
डायरेक्ट्री पर यह कमांड चलाएं:chattr +C
इससे उस फ़ोल्डर में नए स्नैपशॉट बनते हैं जहां लिखते समय कॉपी करने की सुविधा बंद होती है.
एचएएक्सएम 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 एमुलेटर के 32-बिट वर्शन को हटाने और उसे बंद करने से पहले, ट्रांज़िशन प्लान रोल आउट करेंगे. हालांकि, हम आने वाले समय में होने वाले इस बदलाव के बारे में आपके सुझाव, राय या शिकायतों का इंतज़ार कर रहे हैं.
अगर फ़िलहाल, Windows पर चलने वाले Android एमुलेटर के 32-बिट वर्शन का इस्तेमाल किया जा रहा है, तो कृपया समस्या ट्रैकर पर हमें बताएं. साथ ही, हमें बताएं कि आने वाले समय में हम आपके साथ कैसे बेहतर तरीके से काम कर सकते हैं.
27.3.10 (अगस्त 2018)
इस अपडेट में गड़बड़ी ठीक करने की यह सुविधा शामिल है:
रैम साइज़ के कॉन्फ़िगरेशन से जुड़ी समस्या ठीक करना
कुछ उपयोगकर्ताओं ने बताया कि एमुलेटर धीरे चल रहा है. हमने इस समस्या की एक संभावित वजह का पता लगाया है. इसमें AVD की config.ini
फ़ाइल में AVD रैम का साइज़ गलत तरीके से सेट किया जा रहा था.
इसे कम करने के लिए, एम्युलेटर उन इमेज के लिए कम से कम रैम का लेवल बढ़ा देता है जो एपीआई लेवल 26 या उससे बाद के वर्शन का इस्तेमाल करती हैं. इन्हें Android Studio के डिफ़ॉल्ट लेवल 1536 एमबी तक कर दिया जाता है. अगर आपके AVD की config.ini
फ़ाइल, hw.ramSize
को मेगाबाइट में नहीं दिखा रही है, तो कृपया समस्या ट्रैकर में समस्या दर्ज करें.
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)
इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.
स्नैपशॉट
अब किसी डिवाइस कॉन्फ़िगरेशन के लिए, एक से ज़्यादा AVD स्नैपशॉट सेव किए जा सकते हैं. साथ ही, एम्युलेटर शुरू करते समय यह चुना जा सकता है कि सेव किए गए कौनसे स्नैपशॉट लोड करने हैं.
Android Studio 3.2 Canary 13 से, हर डिवाइस कॉन्फ़िगरेशन में वर्चुअल डिवाइस कॉन्फ़िगरेशन डायलॉग बॉक्स की बेहतर सेटिंग में एक कंट्रोल शामिल होता है. इसकी मदद से, यह तय किया जा सकता है कि AVD शुरू करते समय कौनसा AVD स्नैपशॉट लोड किया जाए.
स्नैपशॉट की सुविधाओं को बेहतर बनाने के लिए, हमने ज़्यादा कंट्रोल डायलॉग में स्नैपशॉट कैटगरी जोड़ी है. इस नए पैनल में, AVD स्नैपशॉट को सेव और लोड करने के कंट्रोल होते हैं. इनमें, क्विक-बूट स्नैपशॉट को सेव और लोड करने के कंट्रोल भी शामिल होते हैं. ये कंट्रोल पहले सेटिंग पैनल में होते थे.
सेव किए गए हर स्नैपशॉट के नाम और ब्यौरे में बदलाव किया जा सकता है.
ज़्यादा जानकारी के लिए, स्नैपशॉट देखें.
एचएएक्सएम 7.2.0
HAXM 7.2.0 अब सभी चैनलों पर उपलब्ध है.
इस अपडेट में गड़बड़ियां ठीक की गई हैं. साथ ही, ज़्यादा रैम के लिए बेहतर सहायता जोड़ी गई है. साथ ही, इस HAXM अपडेट और एम्युलेटर 27.3 और इसके बाद के वर्शन के लिए, वर्चुअल डिवाइस के चालू होने पर पूरा स्नैपशॉट लोड करने के बजाय, स्नैपशॉट अपने कॉन्टेंट को ज़रूरत के हिसाब से रैम में लोड करते हैं. इस बदलाव से, स्नैपशॉट लोड होने में लगने वाला समय काफ़ी कम हो जाएगा.
ज़्यादा जानकारी के लिए, वीएम एक्सेलेरेशन कॉन्फ़िगर करना देखें.
27.2.9 (मई 2018)
इस अपडेट में कई नई सुविधाएं जोड़ी गई हैं. साथ ही, मौजूदा सुविधाओं को बेहतर बनाया गया है और गड़बड़ियां ठीक की गई हैं.
स्क्रीन रिकॉर्डिंग
अब Android एमुलेटर से वीडियो और ऑडियो रिकॉर्ड किया जा सकता है. साथ ही, रिकॉर्डिंग को 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 एमुलेटर में एआर ऐप्लिकेशन चलाना लेख पढ़ें.
Pixel डिवाइस की इमेज पर Google Play Store
Pixel और Pixel 2 डिवाइस की इमेज के लिए, Google Play Store की सुविधा अब चालू हो गई है. इसकी जानकारी, Android Studio के 3.2 और उसके बाद के वर्शन में AVD मैनेजर में दी गई है. यह जानकारी, Play Store कॉलम में Google Play के लोगो के साथ दिखती है. जिन AVD में Google Play Store चालू है उनके बड़े किए गए कंट्रोल डायलॉग में Google Play टैब होता है. इस टैब में, डिवाइस पर Google Play services को अपडेट करने के लिए एक आसान बटन होता है.
स्नैपशॉट
अब एमुलेटर को रीस्टार्ट किए बिना, क्विक बूट स्नैपशॉट लोड किया जा सकता है. स्नैपशॉट लोड करने के लिए, सेटिंग पेज पर बेहतर कंट्रोल विंडो खोलें और अभी लोड करें बटन पर क्लिक करें.
हमने स्नैपशॉट लोड करने और सेव करने की सुविधा में कई सुधार किए हैं. इससे संसाधनों के इस्तेमाल की क्षमता बेहतर होगी और हर कार्रवाई में लगने वाला समय कम होगा. अगर आपको अब भी असामान्य तरीके से सेव करने की समस्या आती है, तो कृपया समस्या दर्ज करें. साथ ही, अपने सीपीयू, रैम, और चल रहे किसी भी एंटीवायरस / फ़ायरवॉल / सुरक्षा सॉफ़्टवेयर की सेटिंग की जानकारी दें.
Skia की मदद से रेंडर करना
एपीआई 27 या उसके बाद के वर्शन के लिए इमेज का इस्तेमाल करने पर, एमुलेटर Skia की मदद से Android यूज़र इंटरफ़ेस (यूआई) को रेंडर कर सकता है. इससे, यूआई को ज़्यादा आसानी से और बेहतर तरीके से रेंडर किया जा सकता है.
फ़िलहाल, Skia का इस्तेमाल करने के लिए, आपको इसे साफ़ तौर पर चालू करना होगा.
Skia रेंडरिंग चालू करने के लिए, adb शेल में इन निर्देशों का इस्तेमाल करें:
su setprop debug.hwui.renderer skiagl stop start
कैमरा
Windows पर, Android Emulator अब वेबकैम बैक एंड के तौर पर Media Foundation का इस्तेमाल करता है. इससे वेबकैम से कैप्चर करने की सुविधा की परफ़ॉर्मेंस और फ़्रेम रेट काफ़ी बेहतर हो जाता है. यह 720 पिक्सल 30 FPS (फ़्रेम प्रति सेकंड) तक हो सकता है.
Mac पर, अब webcam0 और webcam1 का एक साथ इस्तेमाल किया जा सकता है.
अन्य चीज़ें
-phone-number-prefix
कमांड-लाइन विकल्प को -phone-number [number]
में बदल दिया गया है. इससे, फ़ोन नंबर को पूरा सेट किया जा सकता है.
अब अक्षरों और अंकों वाले एसएमएस पतों का इस्तेमाल किया जा सकता है.
समाधान
- Android Emulator का Linux वर्शन अब आधुनिक Clang C++ टूलचेन का इस्तेमाल करके बनाया गया है. इस बदलाव से, libGL और libstdc++ की गड़बड़ियों की वजह से, एमुलेटर के शुरू न होने की समस्या ठीक हो जाती है.
- ऐप्लिकेशन के क्रैश होने और फ़्रीज़ होने की कई वजहों को ठीक किया गया.
- डिस्क में ज़रूरत के मुताबिक जगह न होने की वजह से क्रैश और हैंग होने से बचने के लिए, अब एमुलेटर शुरू होने पर डिस्क में खाली जगह की जांच करता है. यह तब तक शुरू नहीं होगा, जब तक कम से कम 2 जीबी खाली जगह न हो.
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से कुछ Unity गेम रेंडर नहीं हो पा रहे थे.
- डीएनएस से जुड़ी समस्या को ठीक किया गया है. इसकी वजह से, एमुलेटर नेटवर्क से कनेक्ट नहीं हो पा रहा था.
- वर्चुअल डिवाइस कॉन्फ़िगरेशन डायलॉग बॉक्स की मदद से, किसी एवीडी के लिए तय किए गए इंटरनल स्टोरेज में बदलाव न हो पाने की समस्या को ठीक किया गया है.
- कई adb प्रोसेस बनने और ठीक से बंद न होने की समस्या को ठीक किया गया.
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से ज़्यादा कंट्रोल वाली विंडो खुली होने तक, यूज़र इंटरफ़ेस (यूआई) के अन्य हिस्सों और घुमाने के बटन काम नहीं करते थे.
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से होस्ट से कॉपी और चिपकाने की सुविधा तब तक काम नहीं करती, जब तक कि ज़्यादा कंट्रोल वाला डायलॉग कम से कम एक बार न खोला गया हो.
- फ़्रेमलेस एमुलेटर के साइज़ में बदलाव करने वाले रेक्टैंगल को अपडेट किया गया है, ताकि एमुलेटर की विज़ुअल थीम को बेहतर तरीके से फ़ॉलो किया जा सके.
- हवाई जहाज़ मोड चालू होने पर, टेलीफ़ोन और एसएमएस की सुविधा अब सही तरीके से बंद हो जाती है.
- स्नैपशॉट लोड करने के बाद, एसएमएस और मोबाइल इंटरनेट की सुविधा बंद होने की समस्या को ठीक किया गया है.
- अब आपको झूठी चेतावनी वाले मैसेज नहीं मिलेंगे, जिनमें कहा गया हो कि
“Unable to open... \pstore.bin. Permission denied.”
- उस समस्या को ठीक किया गया है जिसकी वजह से कुछ Mac स्क्रीन पर, AVD की जगह बदलने में समस्या आ रही थी.
- Pixel 2 XL की स्किन के साथ AVD चलाते समय, नए MacBook Pro कंप्यूटर पर स्क्रीन के फ़्लिकर करने और खाली होने की समस्याएं ठीक की गईं.
- फ़्रेमलेस एमुलेटर चालू होने पर, ज़ूम मोड में स्विच करने पर खाली स्क्रीन दिखने की समस्याएं ठीक की गई हैं.
- ज़ूम इन करने पर, डिवाइस की स्किन और एमुलेटर कॉन्टेंट के सिंक होने की समस्या को ठीक किया गया है.
अगर आपको अब भी फ़ोन हैंग होने या अन्य समस्याएं आ रही हैं, तो कृपया समस्या की शिकायत करें.
27.1.12 (मार्च 2018)
इस अपडेट में इन समस्याओं को ठीक किया गया है:
- एमुलेटर शुरू करने के बाद, ब्लूटूथ ऑडियो की क्वालिटी खराब हो जाती है. (समस्या 37095756)
- एक एमुलेटर को भेजी गई जगह की जानकारी, सभी एमुलेटर को भेज दी गई. (समस्या 73450633)
- कंसोल का इस्तेमाल करके सेट की गई जीपीएस लोकेशन, ग्राफ़िकल यूज़र इंटरफ़ेस में बेहतर कंट्रोल > जगह का इस्तेमाल करके सेट की गई वैल्यू से बदल गई. (समस्या 73471760)
अगर आपको अब भी हैंग होने या अन्य परेशानियों का सामना करना पड़ रहा है, तो कृपया समस्या दर्ज करें.
इस अपडेट, मौजूदा सिस्टम इमेज, और Android Studio के झलक वाले वर्शन की मदद से, ARCore की मदद से बनाए गए ऑगमेंटेड रिएलिटी ऐप्लिकेशन चलाने के लिए, Android एमुलेटर का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी और निर्देशों के लिए, Android एमुलेटर में एआर ऐप्लिकेशन चलाना लेख पढ़ें.
27.1.10 (फ़रवरी 2018)
कैमरे से कैप्चर करने का रिज़ॉल्यूशन
अब अटैच किए गए वेबकैम से 720 पिक्सल वाले फ़्रेम कैप्चर किए जा सकते हैं.
Android 8.1 (एपीआई लेवल 27) और उसके बाद के वर्शन वाले सिस्टम इमेज के साथ काम करने के लिए, अटैच किए गए वेबकैम में 720 पिक्सल फ़्रेम कैप्चर करने की सुविधा होनी चाहिए.
समाधान
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से कभी-कभी वेबकैम से कैप्चर की गई इमेज, खराब या पूरी तरह से हरी दिखती थी.
- उस समस्या को ठीक कर दिया गया है जिसकी वजह से नीचे बताए गए मैसेज को तब भी देखा जा सकता था, जब असल में हैंग न हुआ हो: "एम्युलेटर: गड़बड़ी: एक हैंगिंग थ्रेड 'Qt इवेंट लूप' का पता चला. 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 रेंडरर के बारे में ज़्यादा जानने के लिए, बेहतर कंट्रोल के सेटिंग > बेहतर सेक्शन पर जाएं.
समाधान
- उस समस्या को ठीक किया गया है जिसकी वजह से क्लिपबोर्ड शेयर करने की सुविधा चालू करें विकल्प को बंद और चालू करने के बाद ही, क्लिपबोर्ड शेयर करने की सुविधा काम कर रही थी.
- कम रिज़ॉल्यूशन वाले AVD के साथ, Swiftshader रेंडरिंग बैक-एंड का इस्तेमाल करते समय, फ़्रीज़ होने की समस्या को ठीक किया गया.
27.0.5 (जनवरी 2018)
Windows पर रेंडरिंग के लिए ANGLE, अब डिफ़ॉल्ट रूप से बंद है.
अगर आपके लिए ANGLE बेहतर काम करता है, तो कमांड लाइन के
-gpu angle_indirect
फ़्लैग की मदद से, इसे फिर से चालू किया जा सकता है. इसके अलावा, एक्सटेंडेड कंट्रोल विंडो खोलें और सेटिंग > बेहतर पर जाएं. इसके बाद, OpenGL ES रेंडरर सेटिंग के लिए ANGLE D3D11 चुनें.Shift+B दबाने पर, कैपिटल B वर्ण न टाइप होने की समस्या को ठीक किया गया है.
27.0.2 (दिसंबर 2017)
क्विक बूट की नई सुविधा, आपके एवीडी इंस्टेंस के स्नैपशॉट के आधार पर, एम्युलेटर के शुरू होने का समय ज़्यादा तेज़ बनाती है.
क्विक बूट की सुविधा, सभी AVD के लिए डिफ़ॉल्ट रूप से चालू होती है. पहली बार किसी AVD को शुरू करने पर, उसे डिवाइस को चालू करने की तरह ही कोल्ड बूट करना होगा. हालांकि, इसके बाद उसे तेज़ी से शुरू किया जा सकता है. साथ ही, सिस्टम उसी स्थिति में वापस आ जाता है जिस स्थिति में आपने एमुलेटर को बंद किया था. यह डिवाइस को चालू करने की तरह ही होता है.
अगर आपको यह कंट्रोल करना है कि एमुलेटर कब स्नैपशॉट सेव करे, तो एमुलेटर की बड़े किए गए कंट्रोल वाली विंडो खोलें और सेटिंग पर क्लिक करें. यहां, बाहर निकलने पर क्विक बूट स्टेटस सेव करें के लिए, इनमें से कोई एक सेटिंग चुनी जा सकती है:
- हां: एम्युलेटर को बंद करने पर, क्विक बूट स्नैपशॉट को हमेशा सेव करें. यह डिफ़ॉल्ट विकल्प है.
- नहीं: क्विक बूट स्नैपशॉट कभी सेव न करें. हमेशा कोल्ड बूट करें.
- पूछें: एम्युलेटर बंद करने पर, क्विक बूट स्नैपशॉट सेव करने के लिए कहा जाए या नहीं.
आपका चुना गया विकल्प, सिर्फ़ उस AVD पर लागू होता है जो फ़िलहाल खुला है.
ज़्यादा जानकारी के लिए, क्विक बूट से जुड़ा दस्तावेज़ देखें.
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 के नए सिस्टम इमेज का इस्तेमाल करने के लिए, अब यह वर्शन ज़रूरी है.
ये ट्रेबल का पालन करने वाले होते हैं. इनमें
अलग-अलग
vendor.img
पार्टीशन होते हैं. - SDK Manager का नया HAXM 6.2.0 वर्शन अब उपलब्ध है. इसमें ये अपडेट शामिल किए गए हैं:
- बेहतर मेमोरी का इस्तेमाल. HAXM की मदद से पिन की गई मेमोरी का पीक वर्किंग सेट, अब AVD की रैम के साइज़ के बराबर नहीं है. इसके बजाय, मेमोरी को मांग के हिसाब से पेज किया जाता है. इससे एम्युलेटर को कम रैम वाली मशीनों पर भरोसेमंद तरीके से काम करने में मदद मिलेगी.
- HAXM 6.2.0 वाले एमुलेटर को macOS पर अब तेज़ी से बूट किया जा सकता है. इसके लिए, एमुलेटर को शुरू करने में लगने वाला लंबा समय नहीं लगता.
- जीपीयू कॉन्फ़िगरेशन में सुधार
- मेहमान-साइड सॉफ़्टवेयर रेंडरिंग के दौरान, बूट होने पर काली स्क्रीन दिखने की समस्याएं ठीक की गई हैं. इसके लिए, Swiftshader की मदद से होस्ट-साइड सॉफ़्टवेयर रेंडरिंग का इस्तेमाल किया गया है. Google के एपीआई के साथ एपीआई लेवल 19 से 25 के लिए, सिस्टम इमेज के नए वर्शन में, मेहमान के डिवाइस पर रेंडरिंग की सुविधा काम करनी चाहिए.
- एक समस्या को ठीक किया गया है. इसमें, पुराने Intel जीपीयू का पता चलने पर, एमुलेटर को सॉफ़्टवेयर रेंडरर पर स्विच कर दिया जाता था. हालांकि, एमुलेटर असल में डिस्क्रेट जीपीयू पर चल रहा था. ANGLE या Swiftshader रेंडरिंग का इस्तेमाल करने के लिए, किन जीपीयू को स्विच किया जाएगा, यह इस तरह तय किया जाता है:
- पुराने Intel iGPU में, OpenGL और ANGLE D3D ड्राइवर, दोनों में ड्राइवर से जुड़ी समस्याएं होती हैं. Intel HD Graphics 3xxx और उससे पहले के वर्शन वाले उपयोगकर्ता, Swiftshader का इस्तेमाल करेंगे.
- कुछ उपयोगकर्ताओं ने बताया कि एपीआई लेवल 25 वाली इमेज का इस्तेमाल नहीं किया जा सकता. ऐसा एक गड़बड़ी की वजह से हुआ है जिसमें "Pixel लॉन्चर रुक-रुककर चल रहा था." ऐसा लगता है कि यह कुछ Intel HD 4xxx मॉडल में ड्राइवर से जुड़ी समस्या है. इसलिए, वे अपने-आप ANGLE का इस्तेमाल करने पर स्विच हो जाएंगे.
- जीपीयू इम्यूलेशन के सबसे अच्छे नतीजे पाने के लिए, हमारा सुझाव है कि आप डिस्क्रेट NVIDIA या AMD जीपीयू या नए Intel जीपीयू (Iris, HD 5xxx, HD 5xx/6xx) का इस्तेमाल करें.
- अगर एवीडी को
hw.gpu.mode=host
के साथ कॉन्फ़िगर किया गया था और एम्युलेटर को रिमोट डेस्कटॉप क्लाइंट पर लॉन्च किया गया था, तो एम्युलेटर के चालू नहीं हो पाने (OpenGL एम्युलेशन शुरू नहीं हो सका) की समस्या को ठीक किया गया है. - "OpenGL ES एपीआई लेवल (डिवाइस को रीस्टार्ट करना ज़रूरी है)" सेटिंग के बारे में साफ़ तौर पर बताया गया है. साथ ही, अगर आपको कोई समस्या आ रही है या आपको OpenGL ES के कम एपीआई लेवल पर टेस्ट करना है, तो OpenGL ES 3 से OpenGL ES 2 पर डाउनग्रेड करने का विकल्प जोड़ा गया है.
- Mesa रेंडरर बंद कर दिया गया है; अब
hw.gpu.mode=mesa
को होस्ट पर Swiftshader का इस्तेमाल करने के लिए अपने-आप स्विच कर दिया जाएगा.
- macOS के लिए सुधार:
- एम्युलेटर, अब Hypervisor.Framework या HAXM 6.2.0 की मदद से, macOS 10.13 High Sierra के साथ पूरी तरह से काम करता है.
- Hypervisor.framework अब macOS पर 32-बिट x86 इमेज के लिए डिफ़ॉल्ट रूप से चालू है. इससे परफ़ॉर्मेंस बेहतर होगी और macOS के साथ काम करने की सुविधा भी बेहतर होगी. अगर आपको इस फ़ाइल में खास तौर पर समस्याएं आ रही हैं, तो कृपया गड़बड़ी की रिपोर्ट फ़ाइल करें और
HVF = off
को~/.android/advancedFeatures.ini
में जोड़ें (अगर यह फ़ाइल मौजूद नहीं है, तो यह फ़ाइल बनाएं). - Hypervisor.framework का इस्तेमाल करते समय, इंटरनेट न होने या डीबगर को अटैच न कर पाने से जुड़ी समस्याओं को ठीक किया गया है.
- वेबकैम से कैप्चर करने की सुविधा के साथ काम करने और परफ़ॉर्मेंस को बेहतर बनाने के लिए, AVFoundation के आधार पर QTKit-आधारित कैमरे से कैप्चर की गई कैमरे की जगह को बफ़र किया गया.
- कुछ सिस्टम इमेज में वाई-फ़ाई की सुविधा जोड़ी गई है. फ़िलहाल, यह सुविधा सिर्फ़ एपीआई लेवल 25 के लिए उपलब्ध है.
"AndroidWifi" नाम का ऐक्सेस पॉइंट उपलब्ध है और Android अपने-आप उससे कनेक्ट हो जाता है. वाई-फ़ाई की सुविधा को बंद करने के लिए, कमांड लाइन पैरामीटर
-feature -Wifi
के साथ इम्यूलेटर चलाएं. - कुछ उपयोगकर्ताओं ने इस बात की शिकायत की थी कि तय साइज़ वाली Play Store की सिस्टम इमेज के लिए, स्टोरेज की ज़रूरत के मुताबिक जगह नहीं है. इसलिए, हमने डिफ़ॉल्ट रूप से साइज़ को 800 एमबी से बढ़ाकर 2 जीबी कर दिया है.
- कीबोर्ड शॉर्टकट (Ctrl+Shift+U) जोड़ा गया है, ताकि सेटिंग पेज से सीधे गड़बड़ी की शिकायत करने वाले यूज़र इंटरफ़ेस (यूआई) पेज को खोला जा सके.
- एक समस्या को ठीक किया गया है. इसमें, Intel x86 EPT वाले पुराने सीपीयू का इस्तेमाल करने पर, एक से ज़्यादा कोर कॉन्फ़िगर होने पर, एमुलेटर बूट नहीं होता था.
- एक समस्या को ठीक किया गया है. इसमें, एम्युलेटर के Xen हाइपरवाइजर में चलने पर, HyperV का गलत तरीके से पता चलता था.
- कुछ Linux कॉन्फ़िगरेशन में एम्युलेटर के शुरू होने पर क्रैश होने की समस्या को ठीक किया गया है.
26.1.2 (जुलाई 2017)
इस रिलीज़ में नई सुविधाएं जोड़ी गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.
एक्सटेंडेड कंट्रोल में कस्टम एचटीटीपी प्रॉक्सी कॉन्फ़िगरेशन तय करने की सुविधा जोड़ी गई. ज़्यादा पर क्लिक करने के बाद सेटिंग और प्रॉक्सी पर क्लिक करें. डिफ़ॉल्ट रूप से, एमुलेटर, Android Studio की एचटीटीपी प्रॉक्सी सेटिंग का इस्तेमाल करता है. हालांकि, इस स्क्रीन की मदद से मैन्युअल प्रॉक्सी कॉन्फ़िगरेशन तय किया जा सकता है.
मेहमान मोड के GPU के लिए VNC की सुविधा जोड़ी गई है, ताकि एमुलेटर को किसी दूसरे डिवाइस से देखा और कंट्रोल किया जा सके. उदाहरण के लिए, एमुलेटर लॉन्च करके, VNC को पोर्ट 5901 पर सुनने की अनुमति इस तरह दी जा सकती है:
- लागू करें:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1
पोर्ट 5901 से कनेक्ट करने के लिए, tightvnc viewer जैसा कोई VNC व्यूअर खोलें.
Mac में पहले से मौजूद स्क्रीन शेयरिंग क्लाइंट का इस्तेमाल करने के लिए, एमुलेटर को लॉन्च करते समय VNC पासवर्ड डालना ज़रूरी है. पासवर्ड सेट करने के लिए, इस कमांड का इस्तेमाल करें:
emulator -gpu guest -avd avd_name -no-window -qemu -vnc :1,password -monitor stdio
इसके बाद, कंसोल में
change vnc password
डालकर पासवर्ड डालें.
फ़िलहाल, Android O पर VNC मोड काम नहीं करता.
- लागू करें:
एक्सटेंड किए गए कंट्रोल की सहायता स्क्रीन में, बग की शिकायत करें बटन जोड़ा गया है. इसके लिए, ज़्यादा पर क्लिक करें. इसके बाद, सहायता और एम्युलेटर से जुड़ी सहायता पर क्लिक करें. गड़बड़ी की शिकायत करें पर क्लिक करने से एक डायलॉग बॉक्स खुलता है, जहां आपको गड़बड़ी की रिपोर्ट की जानकारी दिखती है. जैसे, स्क्रीनशॉट, एवीडी कॉन्फ़िगरेशन की जानकारी, और गड़बड़ी की रिपोर्ट का लॉग. इसके बाद, रिपोर्ट को अपने लिए सेव किया जा सकता है या एमुलेटर से जुड़ी समस्याओं की शिकायत की जा सकती है.
एमुलेटर और वर्चुअल सेंसर पैनल में, जायरोस्कोप सेंसर जोड़ा गया. इसके लिए, 'डिवाइस के गति की जानकारी' सुविधा के साथ काम करने वाली सिस्टम इमेज की ज़रूरत होती है. फ़िलहाल, यह सुविधा एपीआई लेवल 24 और 25 पर काम करती है.
Windows पर Qemu की डीएनएस सूची में, होस्ट के लिए पसंदीदा डीएनएस जोड़ा गया है. ऐसा तब किया जाता है, जब होस्ट पर कई वर्चुअल नेटवर्क इंटरफ़ेस, कई ऐसे डीएनएस पते जोड़ते हैं जो एमुलेटर के लिए काम नहीं करते.
macOS 10.10 और उसके बाद के वर्शन पर, 32-बिट x86 इमेज के लिए, macOS Hypervisor.Framework की सुविधा को प्रयोग के तौर पर जोड़ा गया है. इसके लिए, सर्वर फ़्लैग का इस्तेमाल किया गया है. इससे, बूट होने में लगने वाला समय और परफ़ॉर्मेंस बेहतर हो जाएगी.
- अगर आपको इसमें समस्याएं आ रही हैं, तो
HVF = off
को~/.android/advancedFeatures.ini
में जोड़ें.
- अगर आपको इसमें समस्याएं आ रही हैं, तो
OpenGL ES 3.x अब सिस्टम इमेज और होस्ट जीपीयू के लिए डिफ़ॉल्ट रूप से चालू है. हालांकि, इसके लिए ज़रूरी है कि वे 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-बिट एमुलेटर के लिए, अब AVD की रैम का ज़्यादा से ज़्यादा साइज़ 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, Mac का इस्तेमाल करने वालों के लिए SDK Manager के ज़रिए 30 मार्च से उपलब्ध है. यह वर्शन, 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 एमुलेटर को तेज़ करने की सुविधा जोड़ी गई है. इस अपडेट के लिए ज़रूरी है कि होस्ट Hyper-V इंस्टेंस (वह इंस्टेंस जो Windows VM/गेस्ट को मैनेज करता है), नेस्ट किए गए वर्चुअलाइज़ेशन की सुविधा चालू होने के साथ Hyper-V के नए वर्शन का इस्तेमाल करे. मेहमान Hyper-V इंस्टेंस (Windows वीएम) में Hyper-V बंद होना चाहिए.
डिपेंडेंसी
- Android SDK Platform-Tools का 25.0.4 या उसके बाद का वर्शन.
- Android SDK टूल का 26.0.0 या उसके बाद का वर्शन.
नई सुविधाएं और गड़बड़ियां ठीक करना
- यह एपीआई लेवल 26 के साथ काम करता है.
- GLES 2.0 के पूरी तरह से अनुपालन करने वाला. अगर होस्ट जीपीयू में, डिवाइस के हिसाब से काम करने वाले डेस्कटॉप
OpenGL ड्राइवर हैं, तो अब एमुलेटर, Android CTS dEQP-GLES2 के लिए बनी
mustpass
सूची में शामिल सभी टेस्ट पास कर लेता है. इसे एपीआई लेवल 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 Platform-Tools का 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 को डिस्पैच करने के लिए अलग-अलग थ्रेड का इस्तेमाल करता है. इससे, इंतज़ार का समय कम होता है और बेहतर थ्रूपुट मिलता है. जैसे, सीक्वेंशियल I/O स्पीड 1.5 गुना और रैंडम ऐक्सेस I/O स्पीड 5 गुना. इससे डिस्क पर फ़्लश की संख्या भी कम होती है, जिससे डिवाइस पर बहुत कम लोड पड़ता है.
- एम्युलेटर, अब Windows डिवाइसों पर डिस्क बूट के लिए स्पार्स फ़ाइलों का इस्तेमाल करता है. इससे, पहले बूट और "वाइप-डेटा" बूट, दोनों की स्पीड तेज़ हो जाती है. AVD बनाते या रीसेट करते समय, अब एमुलेटर डिस्क में 2 जीबी या उससे ज़्यादा के बजाय, 100 से 200 एमबी डेटा लिखता है.
- जीयूआई को बेहतर बनाने के लिए कई तरह की सुविधाएं:
- अब एमुलेटर, Qt 5.7.0 का इस्तेमाल करता है. इसमें गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है.
- यूज़र इंटरफ़ेस (यूआई) को शुरू करने की प्रोसेस में, अब सभी एमुलेटर को Qt प्लग इन के तौर पर लोड करने की कोशिश नहीं की जाती. इसलिए, यह प्रोसेस काफ़ी कम समय में पूरी हो जाती है. खास तौर पर, एचडीडी पर.
- यूज़र इंटरफ़ेस (यूआई) के इंटरैक्शन अब ज़्यादा तेज़ और आसान हो गए हैं. इनमें, स्क्रीन को घुमाना, विंडो का साइज़ बदलना, और एक्सटेंडेड कंट्रोल विंडो को लोड करना और बंद करना शामिल है.