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

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

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

एक शाखा का चयन

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

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

Linux बिल्ड वातावरण सेट करना

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

एंड्रॉइड बिल्ड को नियमित रूप से उबंटू एलटीएस (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 gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev 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 gcc-multilib g++-multilib 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 g++-multilib 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 g++-multilib 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

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

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

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

डिफ़ॉल्ट रूप से, प्रत्येक निर्माण के उत्पादन में संग्रहित है out/ मिलान स्रोत पेड़ की उप-निर्देशिका।

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

इस सेट अप, निर्यात करने के लिए 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

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

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

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