Android Emulator वर्चुअल डिवाइसों का इस्तेमाल करना

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

Android Emulator का आर्किटेक्चर

Android Emulator, Android ऑपरेटिंग सिस्टम को वर्चुअल मशीन में चलाता है. इसे Android वर्चुअल डिवाइस (AVD) कहा जाता है. हर AVD में, Android सॉफ़्टवेयर स्टैक का पूरा वर्शन होता है. यह ठीक उसी तरह काम करता है जैसे कोई फ़िज़िकल डिवाइस करता है. पहले चित्र में, Android एमुलेटर के हाई-लेवल आर्किटेक्चर को दिखाया गया है. एमुलेटर के बारे में ज़्यादा जानने के लिए, Android एमुलेटर पर ऐप्लिकेशन चलाना लेख पढ़ें.

Android Emulator का आर्किटेक्चर.

पहली इमेज. Android Emulator का आर्किटेक्चर.

AVD इमेज बनाना

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

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

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

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

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

  1. AVD सिस्टम इमेज बनाएं. यह प्रोसेस, Android डिवाइस की सिस्टम इमेज बनाने की प्रोसेस जैसी ही है. उदाहरण के लिए, x86 64-बिट AVD बनाने के लिए:

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
    
  2. Android एमुलेटर में AVD सिस्टम इमेज चलाने के लिए:

    emulator
    

एमुलेटर चलाने के बारे में ज़्यादा जानने के लिए, कमांड-लाइन स्टार्टअप के विकल्प देखें. दूसरी इमेज में, AVD चलाने वाले Android Emulator का उदाहरण दिखाया गया है:

AVD चलाने वाला Android Emulator.

दूसरी इमेज. AVD चलाने वाला Android Emulator.

AVD सिस्टम इमेज शेयर करना, ताकि अन्य लोग Android Studio में उनका इस्तेमाल कर सकें

अपने AVD सिस्टम की इमेज दूसरों के साथ शेयर करने के लिए, इन निर्देशों का पालन करें. ऐप्लिकेशन बनाने और उनकी जांच करने के लिए, वे Android Studio के साथ आपके 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 को ऐसी जगह होस्ट करें जहां आपके उपयोगकर्ता उसे ऐक्सेस कर सकें. साथ ही, AVD सिस्टम इमेज के यूआरएल के तौर पर इस्तेमाल करने के लिए, उसका यूआरएल पाएं.

  3. Android 12 और इससे पहले के वर्शन के लिए, repo-sys-img.xml में बदलाव करें:

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

कस्टम AVD इमेज का इस्तेमाल करने के लिए, SDK Manager में यह तरीका अपनाएं:

  1. कस्टम अपडेट साइट का यूआरएल को SDK टूल अपडेट करने वाली साइट के तौर पर जोड़ें.

    इससे, सिस्टम इमेज पेज पर आपकी कस्टम AVD सिस्टम इमेज जुड़ जाती है.

  2. कस्टम AVD सिस्टम इमेज डाउनलोड करके और उसे चुनकर, AVD बनाएं.

मल्टी-डिसप्ले की सुविधा जोड़ना

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

नीचे दिए गए बदलाव करके या इन सीएल में से चुनिंदा बदलाव करके, किसी AVD में एक से ज़्यादा डिसप्ले की सुविधा जोड़ी जा सकती है.

  • 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
    

इम्यूलेटर की नई सुविधाओं और रिलीज़ की जानकारी पाने के लिए, इन सोर्स पर जाएं: