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

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

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

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

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

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

AVD इमेज बनाना

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

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

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

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    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 Emulator में AVD सिस्टम इमेज चलाएं:

    emulator

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

Android Emulator, AVD चला रहा हो.

दूसरी इमेज. Android Emulator, AVD चला रहा हो.

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-android-latest-release/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> को अपडेट करें.
    • फ़ाइल में हुए अन्य अपडेट के बारे में जानने के लिए, sdk-sys-img-03.xsd देखें.
    • repo-sys-img.xml को ऐसी जगह पर होस्ट करें जहां आपके उपयोगकर्ता इसे ऐक्सेस कर सकें. साथ ही, कस्टम अपडेट साइट के यूआरएल के तौर पर इस्तेमाल करने के लिए, इसका यूआरएल पाएं.

कस्टम एवीडी इमेज का इस्तेमाल करने के लिए, एसडीके मैनेजर में यह तरीका अपनाएं:

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

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

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

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

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

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

  • मल्टी-डिसप्ले की सुविधा देने वाली कंपनी को बिल्ड में जोड़ने के लिए, फ़ाइल 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
    

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