एओएसपी डेवलपमेंट के लिए, 9.0 या उसके बाद के वर्शन को सेट अप करना

Android सोर्स की main ब्रांच को डाउनलोड और बनाने से पहले, पक्का करें कि यह कि आपका हार्डवेयर ज़रूरी शर्तों को पूरा करता है और उस सॉफ़्टवेयर की ठीक से इंस्टॉल हो. आपको इन शब्दों की भी जानकारी होनी चाहिए:

Git
Git एक मुफ़्त और ओपन सोर्स डिस्ट्रिब्यूटेड वर्शन कंट्रोल सिस्टम है. Android, लोकल ऑपरेशन के लिए Git का इस्तेमाल करता है जैसे कि ब्रांचिंग, कमिट, डिफ़्स, और बदलाव करें. Git को सीखने में मदद पाने के लिए, Git दस्तावेज़ देखें.
रिपो
Repo एक Python रैपर है, जो Git के आस-पास मौजूद होता है और जिससे प्रदर्शन करना आसान हो जाता है जटिल ऑपरेशन होंगे. रेपो, Git की जगह नहीं ले रहा है सभी वर्शन कंट्रोल ऑपरेशन के लिए, यह केवल जटिल Git ऑपरेशन को आसान बनाता है लक्ष्य हासिल करना बाकी है. Repo, मेनिफ़ेस्ट फ़ाइलों का इस्तेमाल करके Android सुपरप्रोजेक्ट.
मेनिफ़ेस्ट फ़ाइल
मेनिफ़ेस्ट फ़ाइल एक एक्सएमएल फ़ाइल होती है, जो यह बताती है कि किस तरह के Git प्रोजेक्ट में Android सोर्स को AOSP सोर्स ट्री के अंदर रखा जाता है.

हार्डवेयर से जुड़ी ज़रूरी शर्तें पूरी करें

आपका डेवलपमेंट वर्कस्टेशन इन हार्डवेयर के बराबर या इससे ज़्यादा होना चाहिए ज़रूरतें:

  • 64-बिट x86 सिस्टम.

  • कोड बनाने और उसकी जांच करने के लिए, डिस्क में कम से कम 400 जीबी का स्टोरेज खाली होना चाहिए (चेक आउट करने के लिए 250 जीबी और बिल्ड के लिए 150 जीबी).

  • कम से कम 64 जीबी रैम. Google, 64 जीबी वाली 72 कोर वाली मशीनों का इस्तेमाल करता है का इस्तेमाल करें. इस हार्डवेयर कॉन्फ़िगरेशन के साथ, आपको Android के पूरे बिल्ड के लिए तकरीबन 40 मिनट और Android के इंक्रीमेंटल बिल्ड के लिए सिर्फ़ कुछ मिनट लगते हैं. इसके उलट, किसी विज्ञापन को 64 जीबी रैम और 6 कोर मशीन से पूरी तरह तैयार.

ऑपरेटिंग सिस्टम से जुड़ी ज़रूरी शर्तें पूरी करें

आपके डेवलपमेंट वर्कस्टेशन में, GNU C के साथ कोई भी 64-बिट Linux डिस्ट्रिब्यूशन होना चाहिए Library (glibc) 2.17 या उसके बाद का वर्शन.

ज़रूरी पैकेज इंस्टॉल करें

Android 11 या उसके बाद वाला वर्शन बनाने के लिए, आपको Ubuntu 18.04 या उसके बाद के वर्शन का इस्तेमाल करना होगा. इंस्टॉल करने के लिए Ubuntu 18.04 या बाद के वर्शन के लिए ज़रूरी पैकेज, नीचे दिए गए कमांड को चलाएं:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

इंस्टॉल किए गए पैकेज में से, यह निर्देश Git इंस्टॉल करता है, जिसका इस्तेमाल इन कामों के लिए किया जाता है AOSP सोर्स डाउनलोड करें.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करें

एओएसपी के साथ काम करने से पहले, आपके पास OpenJDK, Make, Python 3, और Repo. Android की AOSP मुख्य ब्रांच OpenJDK, Make, और Python 3 के पहले से बने वर्शन. इसलिए, अतिरिक्त इंस्टॉलेशन चरण आवश्यक नहीं हैं. नीचे दिए गए सेक्शन में, Repo को इंस्टॉल करने का तरीका बताया गया है.

Repo इंस्टॉल करें

Repo इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. मौजूदा पैकेज की जानकारी डाउनलोड करें:

    sudo apt-get update
    
  2. रेपो लॉन्चर को इंस्टॉल करने के लिए, नीचे दिया गया कमांड चलाएं:

    sudo apt-get install repo
    

    रेपो लॉन्चर से ऐसी Python स्क्रिप्ट मिलती है जिससे चेकआउट की प्रोसेस शुरू होती है और पूरा रेपो टूल डाउनलोड करता है.

    कामयाब होने पर, सीधे चौथे चरण पर जाएं.

  3. (ज़रूरी नहीं) इन निर्देशों का इस्तेमाल करके Repo को मैन्युअल तरीके से इंस्टॉल करें:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    पहले तीन निर्देशों से एक अस्थायी फ़ाइल सेट अप की जाती है, रेपो को फ़ाइल में डाउनलोड किया जाता है, और पुष्टि करें कि दी गई कुंजी, ज़रूरी कुंजी से मेल खाती है. अगर ये निर्देश सफल होने पर, आखिरी निर्देश रेपो लॉन्चर को इंस्टॉल करता है.

  4. रेपो लॉन्चर वर्शन की पुष्टि करें:

    repo version
    

    आउटपुट में 2.4 या उसके बाद का वर्शन दिखना चाहिए, उदाहरण के लिए:

    repo launcher version 2.45

कोई वैकल्पिक आउटपुट डायरेक्ट्री सेट करें

डिफ़ॉल्ट रूप से, हर बिल्ड का आउटपुट इसकी out/ सबडायरेक्ट्री में सेव होता है मिलती-जुलती सोर्स ट्री. आप इसे निर्यात करके इस निर्देशिका को ओवरराइड कर सकते हैं: OUT_DIR एनवायरमेंट वैरिएबल. उदाहरण के लिए, अगर आपको अपना आउटपुट सेव करना है, किसी दूसरी ड्राइव पर, आप OUT_DIR को उस ड्राइव पर ले जा सकते हैं:

export OUT_DIR=my_other_drive

आगे क्या करना है?