android - एंड्रॉइड एमुलेटर इतना धीमा क्यों है? हम एंड्रॉइड एमुलेटर को कैसे बढ़ा सकते हैं?




performance android-emulator (20)

मुझे 2.67 गीगाहर्ट्ज सेलेरॉन प्रोसेसर मिला है, और एक एक्स 86 विंडोज एक्सपी पेशेवर मशीन पर 1.21 जीबी रैम है।

मेरी समझ यह है कि एंड्रॉइड एमुलेटर को ऐसी मशीन पर काफी जल्दी शुरू करना चाहिए, लेकिन मेरे लिए, यह नहीं है। मैंने आईडीई, एसडीके, जेडीके और इस तरह की स्थापना में सभी निर्देशों का पालन किया है और एम्यूलेटर को जल्दी शुरू करने में कुछ सफलता मिली है, लेकिन यह बहुत दुर्लभ है। यदि संभव हो तो मैं इस समस्या को कैसे ठीक कर सकता हूं?

यहां तक ​​कि अगर यह होम स्क्रीन शुरू होता है और लोड करता है, तो यह बहुत आलसी है। मैंने संस्करण 3.5 (गैलीलियो) और 3.4 (गैनीमेड) में एक्लिप्स आईडीई की कोशिश की है।


इंटेल x86 एमुलेटर त्वरक का प्रयोग करें

सबसे पहले, इंटेल x86 एमुलेटर त्वरक (HAXM) स्थापित करें। इसे सीधे इंटेल से या एंड्रॉइड एसडीके प्रबंधक का उपयोग करके डाउनलोड किया जा सकता है। एसडीके प्रबंधक में यह अतिरिक्त के तहत स्थित है।

एंड्रॉइड स्टूडियो I के संस्करण में (0.8.9) का उपयोग किया गया, एंड्रॉइड एसडीके प्रबंधक HAXM डाउनलोड करता है, लेकिन वास्तव में इंस्टॉलर नहीं चलाता है (मुझे लगता है कि यह बाद में रिलीज़ में तय किया जाएगा)। स्थापित करने के लिए मुझे सी: \ प्रोग्राम फ़ाइलें (x86) \ Android \ android-studio \ sdk \ extras \ intel \ Hardware_Accelerated_Execution_Manager पर जाना पड़ा और मैन्युअल रूप से intelhaxm.exe लॉन्च करना पड़ा।

एचएएक्सएम इंटेल उपकरणों के साथ काम करता है, इसलिए इंटेल सीपीयू के साथ एक नया एमुलेटर बनाया।

इंटेल एटम x86 का उपयोग कर एक नया एवीडी बनाएं

यह बेहतर चीजों में काफी सुधार हुआ, लेकिन एम्यूलेटर अभी भी थोड़ा सुस्त महसूस कर रहा था। अंतिम चरण एंड्रॉइड वर्चुअल डिवाइस मैनेजर (एवीडी) में होस्ट जीपीयू का चयन कर रहा था।

इन परिवर्तनों के बाद एंड्रॉइड एमुलेटर 5-10 सेकेंड में लॉन्च हो रहा था और बिना किसी ध्यान देने योग्य अंतराल के चल रहा था। ध्यान रखें कि ये सुविधाएं हार्डवेयर निर्भर (सीपीयू / जीपीयू) हैं और कुछ सिस्टम पर काम नहीं कर सकती हैं।


अनुकरणक धीमे हैं। वास्तव में आप इसके बारे में कुछ भी नहीं कर सकते हैं, लेकिन एम्यूलेटर के विकल्प हैं।

  1. Genymotion

  2. VirtualBox

  3. BlueStacks

  4. YouWave

  5. विंडोज एंड्रॉइड एमुलेटर

  6. बीन्स के जार

  7. Andy

अपने एमुलेटर को तेज़ी से बनाने के लिए, आप एक जीपीयू होस्ट कर सकते हैं और लाइटर एंड्रॉइड वर्जन ( एंड्रॉइड 2.3 (जिंजरब्रेड)) का उपयोग कर सकते हैं। एक मैक पर विकास बेहतर होगा। एक एमुलेटर, बीटीडब्ल्यू का उपयोग क्यों करें? एक वास्तविक फोन का उपयोग करना अधिक समझ में आता है।


आप Google I / O 2011 पर एमुलेटर समस्याओं की समीक्षा कर सकते हैं : 0:40:20 से शुरू होने वाले एंड्रॉइड डेवलपमेंट टूल्स टॉक।

एमुलेटर धीरे-धीरे चलता है क्योंकि पूर्ण एंड्रॉइड वातावरण नकली हार्डवेयर पर चल रहा है और निर्देशों को एक नकली एआरएम प्रोसेसर पर भी निष्पादित किया जाता है।

मुख्य चोकिंग पॉइंट प्रतिपादन कर रहा है, क्योंकि यह किसी भी समर्पित हार्डवेयर पर नहीं चल रहा है लेकिन यह वास्तव में सॉफ्टवेयर प्रतिपादन के माध्यम से किया जा रहा है। स्क्रीन आकार को कम करने से एमुलेटर प्रदर्शन में काफी सुधार होगा। अधिक / तेज स्मृति प्राप्त करने में मदद नहीं मिल रही है।

उन्होंने उस समय उल्लेख किया है कि वे एक इंटरफ़ेस विकसित कर रहे हैं जो एमुलेटर को होस्ट हार्डवेयर के माध्यम से कुछ निर्देशों को पाइप करने की अनुमति देगा, इसलिए अंततः आप डेस्कटॉप हार्डवेयर की कच्ची शक्ति के साथ एमुलेटर प्रदर्शन का लाभ उठाने में सक्षम होंगे।


आप एमुलेटर शुरू करने के लिए निम्नलिखित कमांड के साथ emulator.bat बना सकते हैं। यह तेजी से शुरू हो जाएगा।

emulator.exe -cpu-delay 0 -no-boot-anim @<avd name>

या यूनिक्स (मैक या लिनक्स स्वाद) पर:

emulator -cpu-delay 0 -no-boot-anim @<avd name>

इस पर और जानकारी जोड़ने के लिए।

मैंने हाल ही में अपनी उबंटू स्थापना को Ubuntu 10.04 एलटीएस (ल्यूसिड लिंक्स) में अपग्रेड कर दिया है, जिसने बदले में मेरे जावा संस्करण को अपडेट किया:

Java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01, mixed mode)

और अब एमुलेटर (हालांकि शुरू करने में कुछ समय लगता है) पहले से तेज चल रहा है।

यह उनके जेवीएम को अपग्रेड करने वाले लोगों के लायक हो सकता है।


एंड्रॉइड एमुलेटर रिलीज 9 में एक नया "स्नैपशॉट" सुविधा है। आप एमुलेटर की स्थिति को बचा सकते हैं ( एमुलेटर की एक छवि बनाएं) और जब आप एमुलेटर शुरू करते हैं तो बूटिंग से बचें।


एंड्रॉइड एसडीके टूल्स के संशोधन 17 के रूप में, एमुलेटर बेहतर दक्षता के लिए ग्राफिक त्वरण और सीपीयू-प्रदत्त एक्सटेंशन का उपयोग कर सकता है। पूर्वापेक्षाएँ और पूर्ण कॉन्फ़िगरेशन और उपयोगकर्ता नोट्स यहां हैं:

http://developer.android.com/guide/developing/devices/emulator.html#acceleration

GPU त्वरण को सक्षम करने के लिए, एएमडी कॉन्फ़िगरेशन में अतिरिक्त एमुलेटर कमांड लाइन विकल्पों में कमांड लाइन से एमुलेटर चलाएं या "-gpu चालू करें" जोड़ें।

emulator -avd <avd_name> -gpu on

सीपीयू मशीन एक्सटेंशन का उपयोग करने के लिए, आपको ड्राइवर को स्थापित करना होगा (सावधानी क्योंकि यह मौजूदा VirtualBox या VMware ड्राइवरों के साथ संघर्ष कर सकता है)। एक बार यह इंस्टॉल हो जाने पर यह स्वचालित रूप से उपयोग किया जाएगा जब भी आप x86- आधारित AVD का उपयोग करते हैं।



एम्यूलेटर की स्टार्टअप बहुत धीमी है। अच्छी बात यह है कि आपको केवल एक बार एमुलेटर शुरू करने की आवश्यकता है। यदि एमुलेटर पहले से चल रहा है और आप अपना ऐप फिर से चलाते हैं, तो एमुलेटर ऐप को अपेक्षाकृत तेज़ी से बहाल करता है। बेशक, अगर आप जानना चाहते हैं कि यह फोन पर कितनी तेजी से चलेंगे, तो यह वास्तविक फोन पर परीक्षण करना सबसे अच्छा है।


ग्रहण के आपके (पुराने) संस्करण में शामिल एमुलेटर बहुत धीमा है।

हालिया अनुकरणकर्ता 2010 में होने के मुकाबले तेज़ हैं। अपना एसडीके / आईडीई अपडेट करें।

निजी तौर पर, मैं अपने परीक्षण करने के लिए एक असली फोन का उपयोग करता हूं। यह तेज़ है और परीक्षण अधिक यथार्थवादी हैं। लेकिन यदि आप अपने एप्लिकेशन को कई अलग-अलग एंड्रॉइड संस्करणों पर जांचना चाहते हैं और कई फोन नहीं खरीदना चाहते हैं, तो आपको समय-समय पर एमुलेटर का उपयोग करना होगा।


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

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


यहां मैंने देखा है कि किसी ने इसका उल्लेख नहीं किया है।

सभी उपलब्ध प्रोसेसर को एमुलेटर को सौंपें

यहां आप क्या कोशिश कर सकते हैं। यह मेरे लिए एमुलेटर तेज करता है, खासकर समय लोड करने के दौरान। मैंने देखा कि एमुलेटर केवल उपलब्ध सीपीयू के एक कोर का उपयोग कर रहा है। मैंने इसे सभी उपलब्ध प्रोसेसर का उपयोग करने के लिए सेट किया है।

मैं विंडोज 7 का उपयोग कर रहा हूँ।

जब एंड्रॉइड एमुलेटर शुरू हो रहा है, तो टास्क मैनेजर खोलें, प्रक्रिया टैब के नीचे देखें, "emulator-arm.exe" या "emulator-arm.exe * 32" देखें ... राइट क्लिक करें, प्रोसेसर एफ़िनिटी का चयन करें और आप एमुलेटर के रूप में ज्यादा प्रोसेसर असाइन करें।



अद्यतन करें

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

एमुलेटर संपादन बटन पर क्लिक करें, फिर उन्नत सेटिंग दिखाएं पर क्लिक करें। फिर स्क्रीनशॉट के नीचे Quick Boot सक्षम करें।

एंड्रॉइड डेवलपमेंट टूल्स (एडीटी) 9.0.0 (या बाद में) में एक सुविधा है जो आपको एवीडी (एमुलेटर) की स्थिति को बचाने की अनुमति देती है, और आप तुरंत अपना एमुलेटर शुरू कर सकते हैं। एक नया एवीडी बनाते समय आपको इस सुविधा को सक्षम करना होगा या आप इसे बाद में एवीडी संपादित करके बना सकते हैं।

इसके अलावा मैंने Device RAM Size को 1024 तक बढ़ा दिया है जिसके परिणामस्वरूप बहुत तेज एमुलेटर होता है।

अधिक जानकारी के लिए नीचे दिए गए स्क्रीनशॉट देखें।

सहेजें स्नैपशॉट सुविधा के साथ एक नया एवीडी बनाना।

स्नैपशॉट से एमुलेटर लॉन्च करना।

और अपने एमुलेटर को तेज़ करने के लिए आप अपने एंड्रॉइड एमुलेटर को स्पीड कर सकते हैं ! :


महत्वपूर्ण नोट : कृपया सुनिश्चित करें कि आपका सीपीयू इंटेल वीटी का समर्थन करता है, कृपया पहले VT के बारे में इंटेल सूची देखें।

HAXM धीमे एंड्रॉइड एमुलेटर को गति देता है

HAXM का अर्थ है - "इंटेल हार्डवेयर त्वरित निष्पादन प्रबंधक"

वर्तमान में यह केवल इंटेल® वीटी (इंटेल वर्चुअलाइजेशन टेक्नोलॉजी) का समर्थन करता है।

एंड्रॉइड एमुलेटर QEMU पर आधारित है। होस्ट सिस्टम पर QEMU और HAXM ड्राइवर के बीच इंटरफ़ेस विक्रेता-अज्ञेयवादी बनने के लिए डिज़ाइन किया गया है।

HAXM के लिए अपने एंड्रॉइड डेवलपमेंट एनवायरनमेंट को कॉन्फ़िगर करने के लिए चरण

  1. ग्रहण अद्यतन करें: सुनिश्चित करें कि आपकी ग्रहण स्थापना और एडीटी प्लग-इन पूरी तरह से अद्यतित हैं।

  2. अपने एंड्रॉइड टूल्स अपडेट करें: प्रत्येक ग्रहण प्लग-इन अपडेट के बाद, अपने एंड्रॉइड एसडीके टूल्स को अपडेट करना महत्वपूर्ण है। ऐसा करने के लिए, एंड्रॉइड एसडीके प्रबंधक लॉन्च करें और सभी एंड्रॉइड एसडीके घटकों को अपडेट करें। HAXM का लाभ उठाने के लिए, आपको कम से कम रिलीज़ संस्करण 17 पर होना चाहिए।

  • X86 एटम सिस्टम छवियां और इंटेल हार्डवेयर त्वरित निष्पादन प्रबंधक ड्राइवर डाउनलोड करें । नीचे दी गई छवि का पालन करें:

  • "IntelHaxm.exe" चलाकर HAXM ड्राइवर स्थापित करें। यह निम्नलिखित स्थानों में से एक में स्थित होगा:

    • C:\Program Files\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    • C:\Users\<user>\adt-bundle-windows-x86_64\sdk\extras\intel\Hardware_Accelerated_Execution_Manager

    यदि इंस्टॉलर उस संदेश के साथ विफल रहता है जो इंटेल वीटी चालू होना चाहिए, तो आपको इसे BIOS में सक्षम करने की आवश्यकता है। इंटेल वीटी (वर्चुअलाइजेशन टेक्नोलॉजी) को सक्षम करने में इसे कैसे करें इसके विवरण देखें।

  • एक नया x86 एवीडी बनाएं: नीचे दी गई छवि का पालन करें:

  • या नए एसडीके के लिए,

अपने एमुलेटर स्टार्ट-अप समय को कम करने के लिए आपको एमुलेटर शुरू करने से पहले "बूट एनीमेशन अक्षम करें" की जांच करने की आवश्यकता है। एंड्रॉइड दस्तावेज का संदर्भ लें ।

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

एंड्रॉइड एमुलेटर को गति देने के लिए यहां कुछ युक्तियां दी गई हैं: एंड्रॉइड एमुलेटर को 400% तक कैसे बढ़ाएं


एंड्रॉइड स्टूडियो के लिए genymotion.com आज़माएं । तेजी से धधकता! बस एक बार स्थापना की जरूरत है। कोई और एवीडी दर्द नहीं।


खैर, चूंकि किसी ने एंड्रॉइड x86 को एक वैकल्पिक परीक्षण एमुलेटर के रूप में सुझाव दिया है, इसलिए मैं अपना पसंदीदा भी प्रस्तुत करूंगा। यह हर किसी के लिए एक विकल्प नहीं हो सकता है, लेकिन मेरे लिए यह सही है!

Bluestacks प्लेयर का प्रयोग करें । यह एंड्रॉइड 2.3.4 चलाता है और बहुत तरल और तेज़ है। कभी-कभी यह एक सामान्य डिवाइस से भी तेज है। एकमात्र नकारात्मकता यह है कि आप केवल एपीआई लेवल 10 पर ऐप्स का परीक्षण कर सकते हैं और केवल एक स्क्रीन आकार पर, लेकिन यह काम करने के लिए सिर्फ सही है या नहीं। बस के साथ प्लेयर कनेक्ट adbचलाकर

adb connect 127.0.0.1 

संकलन के बाद, यह तुरंत स्थापित करता है। यह बहुत प्रभावशाली है, क्योंकि मेरे पास औसत कंप्यूटर हार्डवेयर (4 जीबी रैम के साथ दोहरी कोर) है।


पुराने एंड्रॉइड संस्करण बहुत तेजी से चलते हैं। जब मैं अपनी नेटबुक पर हूं, तो मैं एंड्रॉइड 1.5 (एपीआई लेवल 3) का उपयोग करता हूं। कुछ कमियां हैं, हालांकि - आपके ऐप्स को पुराने प्लेटफ़ॉर्म (स्पष्ट रूप से) का समर्थन करने की आवश्यकता है, और ndk-gdb को Android 2.2 (API स्तर 8) या उच्चतम चलाने की आवश्यकता है। लेकिन नियमित रूप से पुराने प्लेटफॉर्म के खिलाफ ऐप्स का परीक्षण करना एक अच्छा विचार है।


मेरे पास इंटरबिटेंट धीमी एमुलेटर (एसडीके v8.0) भार समय था, इंटेल कोर i7 920 2.67 गीगाहर्ट्ज सीपीयू पर तीन मिनट तक Xubuntu 10.04 VirtualBox 3.2.12 अतिथि पर ग्रहण (3.6.1) लोड किया गया था। मैंने वर्चुअलबॉक्स अतिथि मेमोरी को 1024 एमबी से 2048 एमबी तक बदल दिया और उस बिंदु से, मैंने फिर कभी धीमेपन का अनुभव नहीं किया (33 सेकंड में लोड लोड समय, सीपीयू लोड 20% पर संगत)। ग्रहण और एमुलेटर दोनों स्मृति हॉग हैं।





qemu