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

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

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

एक शाखा चुनना

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

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

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

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

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

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

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

आपको उबंटू का 64-बिट संस्करण चाहिए।

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

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

आपको उबंटू के 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 main या हालिया रिलीज़ पर समर्थित नहीं है।

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

USB एक्सेस कॉन्फ़िगर करना

विकास के लिए एक उपकरण स्थापित करने के निर्देशों का पालन करके सभी 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/main1 और /source/main2 और यदि OUT_DIR_COMMON_BASE /output पर सेट किया गया है, तो आउटपुट निर्देशिका /output/main1 और /output/main2 हैं।

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

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

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