एक निर्माण वातावरण की स्थापना

यह खंड वर्णन करता है कि Android स्रोत फ़ाइलों को बनाने के लिए अपने स्थानीय कार्य वातावरण को कैसे सेट अप करें। आपको लिनक्स का उपयोग करना चाहिए; MacOS या Windows के अंतर्गत निर्माण समर्थित नहीं है। /usr/bin/python बाइनरी में महत्वपूर्ण बदलाव को भी ध्यान में रखें।

संपूर्ण कोड-समीक्षा और कोड-अपडेट प्रक्रिया के अवलोकन के लिए, पैच का जीवन देखें।

एक शाखा का चयन

बिल्ड परिवेश के लिए कुछ आवश्यकताएँ उस स्रोत कोड के संस्करण द्वारा निर्धारित की जाती हैं जिसे आप संकलित करने की योजना बना रहे हैं। उपलब्ध शाखाओं की पूरी सूची के लिए, बिल्ड नंबर देखें। आप नवीनतम स्रोत कोड (जिसे master कहा जाता है) को डाउनलोड और बनाना भी चुन सकते हैं, जिस स्थिति में आप रिपॉजिटरी को इनिशियलाइज़ करते समय शाखा विनिर्देश को छोड़ देते हैं।

एक शाखा का चयन करने के बाद, अपने निर्माण परिवेश को स्थापित करने के लिए नीचे दिए गए उपयुक्त निर्देशों का पालन करें।

लिनक्स बिल्ड वातावरण की स्थापना

ये निर्देश master सहित सभी शाखाओं पर लागू होते हैं।

Android बिल्ड का Ubuntu LTS (14.04) और डेबियन परीक्षण पर घर में नियमित रूप से परीक्षण किया जाता है। अधिकांश अन्य वितरणों में आवश्यक निर्माण उपकरण उपलब्ध होने चाहिए।

जिंजरब्रेड (2.3.x) और उच्च संस्करणों के लिए, master शाखा सहित, 64-बिट वातावरण की आवश्यकता होती है। पुराने संस्करणों को 32-बिट सिस्टम पर संकलित किया जा सकता है।

आवश्यक पैकेज स्थापित करना (उबंटू 18.04 और उच्चतर)

आपको उबंटू के 64-बिट संस्करण की आवश्यकता है।

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

आवश्यक पैकेज स्थापित करना (उबंटू 14.04)

आपको Ubuntu के 64-बिट संस्करण की आवश्यकता है (14.04 अनुशंसित है)।

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

आवश्यक पैकेज स्थापित करना (उबंटू 12.04)

Android के पुराने संस्करण बनाने के लिए आप Ubuntu 12.04 का उपयोग कर सकते हैं। संस्करण 12.04 master या हालिया रिलीज पर समर्थित नहीं है।

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

आवश्यक पैकेज स्थापित करना (उबंटू 10.04-11.10)

Ubuntu 10.04-11.10 पर निर्माण अब समर्थित नहीं है, लेकिन AOSP के पुराने रिलीज के निर्माण के लिए उपयोगी हो सकता है।

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc

उबंटू 10.10 पर:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

उबंटू 11.10 पर:

sudo apt-get install libx11-dev:i386

यूएसबी एक्सेस को कॉन्फ़िगर करना

विकास के लिए एक उपकरण सेट अप करने के निर्देशों का पालन करके सभी Android उपकरणों के लिए udev नियमों का एक समुदाय-अनुरक्षित डिफ़ॉल्ट सेट स्थापित करें।

एक अलग आउटपुट निर्देशिका का उपयोग करना

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

export OUT_DIR=out_mytarget

यह बिल्ड के आउटपुट को स्रोत ट्री के out_mytarget/ उपनिर्देशिका में संग्रहीत करने का कारण बनेगा। एकाधिक लक्ष्यों के निर्माण के लिए एक ही स्रोत ट्री का उपयोग करते समय, प्रत्येक लक्ष्य के लिए एक अलग OUT_DIR उपयोग करने की अनुशंसा की जाती है।

कई स्टोरेज डिवाइस वाली कुछ मशीनों पर, स्रोत फ़ाइलों और आउटपुट को अलग-अलग वॉल्यूम पर संग्रहीत करते समय बिल्ड तेज़ होते हैं। अतिरिक्त प्रदर्शन के लिए, आउटपुट को क्रैश मजबूती के बजाय गति के लिए अनुकूलित फ़ाइल सिस्टम पर संग्रहीत किया जा सकता है, क्योंकि फ़ाइल सिस्टम दूषित होने पर सभी फ़ाइलों को पुन: उत्पन्न किया जा सकता है।

इसे सेट अप करने के लिए, OUT_DIR_COMMON_BASE चर को उस स्थान पर इंगित करने के लिए निर्यात करें जहां आपकी आउटपुट निर्देशिका संग्रहीत की जाएगी।

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

प्रत्येक अलग स्रोत ट्री के लिए आउटपुट डायरेक्टरी का नाम सोर्स ट्री रखने वाली डायरेक्टरी के नाम पर रखा गया है। उदाहरण के लिए, यदि आपके पास स्रोत पेड़ /source/master1 और /source/master2 हैं और यदि OUT_DIR_COMMON_BASE /output पर सेट है, तो आउटपुट निर्देशिका /output/master1 और /output/master2 हैं।

निर्देशिकाओं में एक ही नाम वाले कई स्रोत पेड़ों को संग्रहीत करने से बचें, क्योंकि स्रोत पेड़ अप्रत्याशित परिणामों के साथ एक आउटपुट निर्देशिका साझा करना समाप्त कर देंगे। यह केवल जेली बीन (4.1) और उच्चतर पर समर्थित है, जिसमें master शाखा भी शामिल है।

अगला: स्रोत डाउनलोड करें

आपका निर्माण पर्यावरण जाने के लिए अच्छा है! स्रोत डाउनलोड करने के लिए आगे बढ़ें।