डेवलपमेंट प्लैटफ़ॉर्म के तौर पर Android वर्चुअल डिवाइस

Android वर्चुअल डिवाइसों (एवीडी) का इस्तेमाल करने के लिए, Android Emulator ग्राफ़िकल यूज़र इंटरफ़ेस (GUI) और कमांड लाइन इंटरफ़ेस (सीएलआई) के साथ काम करता है. अपने एनवायरमेंट के लिए सबसे सही वर्कफ़्लो चुनें.

AOSP Car AVD बनाना

AOSP Car AVD बनाने की प्रोसेस, फ़ोन के लिए AVD इमेज बनाने की प्रोसेस जैसी ही होती है. उदाहरण के लिए, aosp_car_x86_64:

  1. डेवलपमेंट एनवायरमेंट सेट अप करने और किसी ब्रांच की पहचान करने के लिए, सोर्स कंट्रोल टूल देखें. इसके बाद, सोर्स डाउनलोड करना लेख पढ़ें:
    ANDROID_BRANCH="android12L-release"
    REPO_URL="https://android.googlesource.com/platform/manifest"
    mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8
  2. AVD इमेज बनाएं:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. ज़रूरत के मुताबिक, अतिरिक्त कमांड-लाइन स्टार्टअप विकल्प जोड़कर, AVD इमेज चलाएं:
    emulator &

    उदाहरण के लिए:

    पहली इमेज. Android Virtual Emulator की स्क्रीन

    इस प्रोसेस के बारे में जानकारी:

    • बिल्ड प्रोसेस, फ़िज़िकल डिवाइस के लिए Android बनाने की प्रोसेस जैसी ही होती है. इसलिए, सोर्स को डाउनलोड करने और फिर उसे बिल्ड करने में कुछ समय लग सकता है.
    • अन्य ब्रांच पर काम करने के लिए, $ANDROID_BRANCH को किसी अन्य ब्रांच/टैग पर सेट करें.
    • एवीडी इमेज, जैसे कि system.img, $ANDROID_PRODUCT_OUT पर बनाई जाती हैं. मुख्य इमेज के बारे में ज़्यादा जानने के लिए, AVD सिस्टम डायरेक्ट्री देखें.
    • अपने Android ट्री में पहले से बने एम्युलेटर बाइनरी का इस्तेमाल करके, एम्युलेटर चलाने का तरीका जानने के लिए, README फ़ाइल देखें.

कार वाला एवी़डी बनाना

नया कार एवीडी जोड़ने का तरीका, नया डिवाइस जोड़ने के तरीके से मिलता-जुलता है. उदाहरण के लिए, 1660554 से नया avd_car AVD बनता है.

कार एवी़डी बनाने के लिए:

  1. ज़रूरत के मुताबिक, कंपनी और डिवाइस का फ़ोल्डर बनाएं. इस उदाहरण में $ANDROID_BUILD_TOP/device/google_car/avd_car का इस्तेमाल किया गया है.
  2. प्रॉडक्ट मेकफ़ाइल, avd_car.mk बनाएं. इससे यह तय होता है कि एवीएम को कैसे बनाया जाए.
  3. एक डिवाइस फ़ोल्डर, avd_car_device बनाएं, जिसमें BoardConfig.mk और source.properties शामिल हों.
  4. AndroidProducts.mk में नया makefile और नया lunch विकल्प जोड़ें.
  5. नया avd_car एवीडी बनाने और चलाने के लिए:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
अब आपके पास, अपने नए एवीडी पर ज़्यादातर एचएमआई और ऐप्लिकेशन की सुविधाओं का प्रोटोटाइप बनाने का विकल्प है.

AVD इमेज की ZIP फ़ाइल पैक करना

अपने एवीडी को पैक करके, दूसरों के साथ शेयर किया जा सकता है. इसके अलावा, इसे किसी दूसरे कंप्यूटर पर भी इस्तेमाल किया जा सकता है. AVD इमेज की ज़िप फ़ाइल जनरेट करने के लिए, emu_img_zip.mk का इस्तेमाल करें:

  1. AVD बनाने के बाद, emu_img_zip को टारगेट करें:
    m emu_img_zip
  2. AVD इमेज की ZIP फ़ाइल, sdk-repo-linux-system-images प्रीफ़िक्स के साथ $ANDROID_PRODUCT_OUT नाम के फ़ोल्डर में बनाई जाती है.

AVD कर्नल बनाना

एवीडी कर्नल, अन्य Android कर्नल की तरह ही होते हैं. ये सभी पहले से बनी हुई इमेज होती हैं. आम तौर पर, हर Android रिलीज़ के लिए, गोल्डफ़िश कर्नल की पहले से बनी हुई स्टैंडर्ड इमेज का इस्तेमाल किया जा सकता है.

कर्नेल में किए गए बदलावों को आज़माने के लिए:

  1. निर्देशों की इस सीरीज़ को चलाएं:
    mkdir goldfish-kernel-54
    cd goldfish-kernel-54
    repo init -u https://android.googlesource.com/kernel/manifest -b
    common-android11-5.4
    repo sync
    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh
    BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64
    build/build.sh
    ls -l ./out/android11-5.4/dist/
  2. एवीडी मेकफ़ाइल के मुताबिक, कोडबेस में कर्नल बाइनरी बदलें. उदाहरण के लिए, device/generic/goldfish/board/emu64x/details.mk में device/generic/goldfish/board/kernel/x86_64.mk शामिल है.

कर्नल कोड और कॉन्फ़िगरेशन यहां मौजूद है:

आइटम वैल्यू
शाखा common-android11-5.4 (Android 11 में इस्तेमाल किया जाता है)
मेनिफ़ेस्ट kernel/manifest/common-android11-5.4
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
कर्नेल kernel/common/android11-5.4

नई डिवाइस प्रोफ़ाइल बनाना

उपयोगकर्ताओं को Android Studio AVD Manager में कोई खास एवीडी बनाने की अनुमति देने के लिए, वर्चुअल डिवाइस बनाना और उन्हें मैनेज करना लेख पढ़ें. डिवाइस बनाने वाली कंपनियां, हार्डवेयर की अपनी खास बातें तय कर सकती हैं. जैसे, स्क्रीन का साइज़ और डीपीआई. इसके लिए, उन्हें AVD इमेज में शामिल devices.xml फ़ाइल का इस्तेमाल करना होगा.

  • उदाहरण के लिए, automotive.xml में Automotive डिवाइस की प्रोफ़ाइलें देखें.
  • एचएमआई डेवलपमेंट या प्रोटोटाइपिंग के लिए, एक ही एवीडी इमेज के लिए फ़ाइल में कई डिवाइस जोड़े जा सकते हैं.
  • फ़ाइल को ओईएम एवीडी इमेज की ZIP फ़ाइल में, [ABI] फ़ोल्डर में शामिल करें. उदाहरण के लिए, x86_64 के तौर पर.
  • डिवाइस बनाने वाली कंपनियां भी एम्युलेटर स्किन बना सकती हैं. उदाहरण के लिए, बेहतर यूज़र एक्सपीरियंस के लिए अतिरिक्त हार्डवेयर बटन तय करने के लिए. यह न सिर्फ़ डेवलपर के वर्कफ़्लो के लिए काम का है, बल्कि यूज़र एक्सपीरियंस (यूएक्स) रिसर्च और समीक्षा जैसे अन्य कामों के लिए भी काम का है.

AVD इमेज की एक्सएमएल फ़ाइल बनाना

डिवाइस बनाने वाली कंपनियां, Android Studio के लिए AVD इमेज एक्सएमएल फ़ाइल बना सकती हैं, ताकि Android Studio इसे डाउनलोड कर सके.

  • उदाहरण के लिए, AAOS AVD इमेज की एक्सएमएल फ़ाइल, sys-img2-1.xml देखें.
  • डिवाइस बनाने वाली कंपनियां, Android Emulator के लाइसेंस के साथ, टारगेट उपयोगकर्ताओं के लिए ओईएम एवीडी लाइसेंस का अपना कानूनी समझौता तय कर सकती हैं. इसके लिए, उन्हें ईमानदारी से काम करना होगा. Android Studio को उपयोगकर्ता की सहमति तब मिलती है, जब ऐसा लाइसेंस शामिल किया जाता है.

इमेज बनाने के लिए:

  1. AVD इमेज की ZIP फ़ाइल तैयार करें.
  2. अनज़िप करें ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip.
  3. devices.xml को x86_64 फ़ोल्डर में जोड़ें. इसके बाद, फ़ाइल को ZIP फ़ाइल में कंप्रेस करें. उदाहरण के लिए, oem_avd_img_x86_64.zip के तौर पर.
  4. oem-sys-img2-1.xml को अपडेट करें.
  5. ज़िप फ़ाइल का नाम, साइज़, और shasum अपडेट करें (सैंपल एक्सएमएल फ़ाइलें tools में दी गई हैं).

उदाहरण के लिए, Google Cloud Storage पर एवीडी होस्ट करने के लिए, स्टोरेज बकेट बनाना लेख पढ़ें.

AVD को अपलोड करने और सार्वजनिक तौर पर उपलब्ध कराने के लिए, डेटा को सार्वजनिक करना लेख पढ़ें:

BUCKET_NAME="aaos-avd"
gsutil mb gs://$BUCKET_NAME
gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME
gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME
gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME

AVD इमेज एसडीके के ऐड-ऑन का यूआरएल फ़ॉर्मैट यह है: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml. उदाहरण के लिए, अगर BUCKET_NAME aaos-avd है, तो यूआरएल यह होगा: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml.

Android Studio के उपयोगकर्ताओं के साथ एवीडी इमेज शेयर करना

आपके उपयोगकर्ता, Android Studio की मदद से एवीडी इमेज डाउनलोड कर सकें और आपके एवीडी का इस्तेमाल कर सकें, इसके लिए एसडीके ऐड-ऑन एक्सएमएल फ़ाइल उपलब्ध कराई जा सकती है. ज़्यादा जानकारी के लिए, आईडीई और एसडीके टूल अपडेट करना लेख पढ़ें.

नेटवर्क से AVD डाउनलोड करने के लिए:

  1. इमेज की ZIP फ़ाइल और एक्सएमएल फ़ाइलों को किसी सर्वर पर होस्ट करें.
  2. टारगेट किए गए उपयोगकर्ताओं को यूआरएल दें.
  3. (ज़रूरी नहीं) उपयोगकर्ता नाम और पासवर्ड के हिसाब से ऐक्सेस सीमित करें.

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

  1. एक्सएमएल फ़ाइलों और एक्सएमएल फ़ाइल में बताए गए सभी आर्टफ़ैक्ट को ADDON_DIR नाम वाले फ़ोल्डर में सेव करें. उदाहरण के लिए, सभी एवीडी इमेज वाली ZIP फ़ाइलें.
  2. यूआरएल को file://$ADDON_DIR/oem-sys-img2-1.xml के तौर पर तय करें.