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

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

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

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

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

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

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

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

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

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

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

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 की एओएसपी की मुख्य ब्रांच में, 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.5 या उसके बाद का वर्शन दिखना चाहिए, उदाहरण के लिए:

    repo launcher version 2.40

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

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

export OUT_DIR=my_other_drive

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