एंड्रॉइड एमुलेटर वर्चुअल डिवाइस का उपयोग करना

आप एंड्रॉइड डिवाइसों के इम्यूलेशन बनाने के लिए एंड्रॉइड एमुलेटर का उपयोग कर सकते हैं जो आपकी अपनी कस्टम एंड्रॉइड सिस्टम छवियां चलाते हैं। आप अपने कस्टम एंड्रॉइड सिस्टम चित्र भी साझा कर सकते हैं ताकि अन्य लोग उनका अनुकरण चला सकें। इसके अलावा, आप एंड्रॉइड एमुलेटर इम्यूलेशन में मल्टी-डिस्प्ले समर्थन जोड़ सकते हैं।

एंड्रॉइड एमुलेटर आर्किटेक्चर

एंड्रॉइड एमुलेटर आपको विंडोज़, मैकओएस या लिनक्स मशीनों पर एंड्रॉइड डिवाइस के इम्यूलेशन चलाने की अनुमति देता है। एंड्रॉइड एमुलेटर एंड्रॉइड ऑपरेटिंग सिस्टम को एक वर्चुअल मशीन में चलाता है जिसे एंड्रॉइड वर्चुअल डिवाइस (एवीडी) कहा जाता है। AVD में संपूर्ण Android सॉफ़्टवेयर स्टैक शामिल है, और यह ऐसे चलता है जैसे कि यह किसी भौतिक डिवाइस पर हो। चित्र 1 एंड्रॉइड एमुलेटर के उच्च-स्तरीय आर्किटेक्चर का एक आरेख है। एमुलेटर के बारे में अधिक जानकारी के लिए, एंड्रॉइड एमुलेटर पर ऐप्स चलाएं देखें।

एंड्रॉइड एमुलेटर आर्किटेक्चर

चित्र 1. एंड्रॉइड एमुलेटर आर्किटेक्चर

AVD छवियाँ बनाना

प्रत्येक AVD में एक Android सिस्टम छवि शामिल होती है, जो उस AVD में चलती है। AVD प्रबंधक में कुछ सिस्टम छवियाँ शामिल हैं। और आप अपने स्रोत कोड से कस्टम AVD सिस्टम छवियां बना सकते हैं और उन्हें चलाने के लिए डिवाइस इम्यूलेशन बना सकते हैं।

AVD सिस्टम छवि बनाने और चलाने के लिए:

  1. Android स्रोत डाउनलोड करें:

    mkdir aosp-main; cd aosp-main
    repo init -u
    repo sync -j24
    

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

  2. एक AVD सिस्टम छवि बनाएँ। यह एंड्रॉइड डिवाइस सिस्टम इमेज बनाने जैसी ही प्रक्रिया है। उदाहरण के लिए, x86 32-बिट AVD बनाने के लिए:

    mkdir aosp-main; cd aosp-main
    source ./build/envsetup.sh
    lunch sdk_phone_x86
    make -j32
    

    यदि आप x86 64-बिट AVD बनाना पसंद करते हैं, तो 64-बिट लक्ष्य के लिए lunch चलाएँ:

    lunch sdk_phone_x86_64
    
  3. एंड्रॉइड एमुलेटर में AVD सिस्टम छवि चलाएँ:

    emulator
    

एम्यूलेटर चलाने के बारे में अधिक जानकारी के लिए कमांड-लाइन स्टार्टअप विकल्प देखें। चित्र 2 एवीडी चलाने वाले एंड्रॉइड एमुलेटर का एक उदाहरण दिखाता है।

एंड्रॉइड एमुलेटर एक AVD चला रहा है

चित्र 2. एंड्रॉइड एमुलेटर एक AVD चला रहा है

एंड्रॉइड स्टूडियो के साथ उपयोग करने के लिए दूसरों के लिए एवीडी सिस्टम छवियां साझा करना

अपनी AVD सिस्टम छवियाँ दूसरों के साथ साझा करने के लिए इन निर्देशों का पालन करें। वे ऐप्स विकसित करने और परीक्षण करने के लिए एंड्रॉइड स्टूडियो के साथ आपके एवीडी सिस्टम छवियों का उपयोग कर सकते हैं।

  1. अतिरिक्त sdk और sdk_repo पैकेज बनाएं:

    Android 13 और उच्चतर के लिए, emu_img_zip कमांड का उपयोग करें:

    $ make emu_img_zip
    

    यह एक sdk-repo-linux-system-images-eng.[username]].zip फ़ाइल उत्पन्न करता है।

    Android 12 और उससे पहले के संस्करण के लिए, sdk_repo कमांड का उपयोग करें:

    $ make -j32 sdk sdk_repo
    

    make sdk sdk_repo कमांड aosp-main/out/host/linux-x86/sdk/sdk_phone_x86 अंतर्गत दो फ़ाइलें बनाता है:

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. फ़ाइल sdk-repo-linux-system-images-eng.[username].zip अपने उपयोगकर्ताओं के लिए सुलभ स्थान पर होस्ट करें, और इसके URL को AVD सिस्टम इमेज URL के रूप में उपयोग करने के लिए प्राप्त करें।

  3. Android 12 और उससे पहले के संस्करण के लिए, repo-sys-img.xml तदनुसार संपादित करें:

    • <sdk:url> अपने AVD सिस्टम इमेज URL पर अपडेट करें।
    • फ़ाइल के अन्य अद्यतनों के बारे में जानने के लिए sdk-sys-img-03.xsd देखें।
    • repo-sys-img.xml अपने उपयोगकर्ताओं के लिए सुलभ स्थान पर होस्ट करें, और इसके URL को कस्टम अपडेट साइट URL के रूप में उपयोग करने के लिए प्राप्त करें।

कस्टम AVD छवि का उपयोग करने के लिए, SDK प्रबंधक में निम्नलिखित कार्य करें:

  1. कस्टम अपडेट साइट URL को SDK अपडेट साइट के रूप में जोड़ें

    यह आपकी कस्टम AVD सिस्टम छवि को सिस्टम छवियाँ पृष्ठ पर जोड़ता है।

  2. कस्टम AVD सिस्टम छवि को डाउनलोड और चयन करके एक AVD बनाएं

मल्टी-डिस्प्ले समर्थन जोड़ा जा रहा है

एंड्रॉइड 10 ऑटो और डेस्कटॉप मोड जैसे अधिक उपयोग के मामलों का बेहतर समर्थन करने के लिए मल्टी-डिस्प्ले (एमडी) को बढ़ाता है । एंड्रॉइड एमुलेटर मल्टी-डिस्प्ले इम्यूलेशन का भी समर्थन करता है। तो आप वास्तविक हार्डवेयर सेट किए बिना एक विशिष्ट मल्टी-डिस्प्ले वातावरण बना सकते हैं।

आप निम्नलिखित परिवर्तन करके, या इन सीएल से चेरी चुनकर एवीडी में मल्टी-डिस्प्ले समर्थन जोड़ सकते हैं।

  • build/target/product/sdk_phone_x86.mk फ़ाइल में इन पंक्तियों को जोड़कर बिल्ड में मल्टी-डिस्प्ले प्रदाता जोड़ें:

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • device/generic/goldfish/data/etc/advancedFeatures.ini फ़ाइल में इस लाइन को जोड़कर मल्टी-डिस्प्ले फीचर फ़्लैग को सक्षम करें:

    MultiDisplay = on
    

आप निम्नलिखित स्रोतों से नवीनतम एमुलेटर सुविधाएँ पा सकते हैं और जानकारी जारी कर सकते हैं: