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

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

  • वर्चुअल डिवाइस बनाना और मैनेज करना जीयूआई, ऐप्लिकेशन के ज़्यादातर डेवलपर और उपयोगकर्ताओं के लिए उपलब्ध एक आसान टूल है.
  • कमांड लाइन से एमुलेटर शुरू करना , बेहतर सुविधाओं का इस्तेमाल करने वाले लोगों और ऑटोमेशन के लिए एक आसान तरीका उपलब्ध कराता है. उदाहरण के लिए, एक से ज़्यादा AVD का इस्तेमाल करने या लगातार टेस्टिंग और इंटिग्रेशन सेट अप करने के लिए. शुरू करने के लिए, टूल में दिए गए उदाहरण देखें.

पहले से बने AOSP कार AVD को लॉन्च करना

पहले से बने AOSP Car AVD का इस्तेमाल करके, तुरंत लॉन्च करने और टेस्ट करने के लिए, ci.android.com से एमुलेटर बिल्ड को डाउनलोड करने और लॉन्च करने के लिए, ओपन सोर्स स्क्रिप्ट का इस्तेमाल करें. इस स्क्रिप्ट की जांच, macOS और Linux पर की गई है.

इस स्क्रिप्ट का इस्तेमाल करने के लिए, आपके पास Curl होना चाहिए.

स्क्रिप्ट चलाने के लिए:

  1. launch_emu.sh स्क्रिप्ट के कॉन्टेंट को अपनी लोकल फ़ाइल में कॉपी करें. इसके लिए, यह मान लें कि आपने लोकल फ़ाइल के नाम के तौर पर launch_emu.sh का इस्तेमाल किया है.
  2. अपनी लोकल स्क्रिप्ट को चलाने लायक बनाएं. उदाहरण के लिए, chmod +x ./launch_emu.sh चलाएं.
  3. ./launch_emu.sh -h के साथ स्क्रिप्ट चलाकर, उपलब्ध विकल्प देखें.
  4. ci.android.com पर, aosp-main-throttled शाखा पर जाएं और हाल ही का वह बिल्ड चुनें जिसमें sdk_car_x86_64 हरा हो. उदाहरण के लिए, 11370359. अगर आपको बिल्ड की जानकारी नहीं दिखती है, तो अपने Google खाते से लॉग आउट करें और फिर से कोशिश करें.
  5. बिल्ड आईडी के साथ, एम्युलेटर से जुड़ी बाइनरी फ़ाइलें डाउनलोड और इंस्टॉल करें. उदाहरण के लिए, ./launch_emu.sh -i -a 11370359.
  6. इसके बाद, डाउनलोड और इंस्टॉल किए गए एमुलेटर को लॉन्च करने के लिए, ./launch_emu.sh का इस्तेमाल किया जा सकता है. -i या -a विकल्पों का इस्तेमाल न करें.
  7. कोई दूसरा बिल्ड आईडी डाउनलोड और इंस्टॉल करने के लिए, अपने वर्कस्पेस को खाली करने के लिए ./launch_emu.sh -c चलाएं. इसके बाद, ऊपर दिए गए चौथे और पांचवें चरण को दोहराएं.

Android एमुलेटर को लॉन्च करते समय, कमांड-लाइन के स्टार्टअप विकल्प तय करने के लिए, -v विकल्प का इस्तेमाल करें. उदाहरण के लिए:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

AOSP Car AVD बनाना

AOSP कार 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 वर्चुअल एमुलेटर की स्क्रीन

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

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

कार के लिए AVD बनाना

नई कार का एवीडी जोड़ना, नया डिवाइस जोड़ने के तरीके से काफ़ी मिलता-जुलता है. उदाहरण के लिए, 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 AVD बनाने और चलाने के लिए:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
अब आपके पास अपने नए AVD पर, ज़्यादातर एचएमआई और ऐप्लिकेशन की सुविधाओं का प्रोटोटाइप बनाने का विकल्प है.

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

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

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

AVD के लिए कर्नेल बनाना

AVD कर्नेल, Android के अन्य कर्नेल से मिलते-जुलते हैं. इनमें सभी इमेज पहले से बनी होती हैं. आम तौर पर, हर Android रिलीज़ के लिए, पहले से बनी स्टैंडर्ड goldfish kernel इमेज का इस्तेमाल किया जा सकता है.

कर्नेल में बदलावों के साथ प्रयोग करने के लिए:

  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. AVD मेकफ़ाइल के हिसाब से, कोडबेस में मौजूद कर्नेल बाइनरी को बदलें. उदाहरण के लिए, x86_64-vendor.mk में x86_64-kernel.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 मैनेजर में कोई खास AVD बनाने की सुविधा देने के लिए, वर्चुअल डिवाइस बनाना और मैनेज करना लेख पढ़ें. डिवाइस बनाने वाली कंपनियां, AVD इमेज में शामिल devices.xml फ़ाइल का इस्तेमाल करके, स्क्रीन साइज़ और डीपीआई जैसी हार्डवेयर की जानकारी दे सकती हैं.

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

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

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

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

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

  1. AVD इमेज की ZIP फ़ाइल तैयार करें.
  2. ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip को अनज़िप करें.
  3. x86_64 फ़ोल्डर में devices.xml जोड़ें. इसके बाद, फ़ाइल को ज़िप फ़ाइल में कंप्रेस करें. उदाहरण के लिए, 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 इमेज SDK टूल के ऐड-ऑन का यूआरएल फ़ॉर्मैट यह है: 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 के उपयोगकर्ताओं के साथ AVD इमेज शेयर करना

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

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

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

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

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