Android बनाने के लिए इस पृष्ठ पर दिए गए निर्देशों का पालन करें।
अपना निर्माण परिवेश सेट करें
अपनी कार्यशील निर्देशिका के भीतर से, अपना निर्माण वातावरण स्थापित करने के लिए envsetup.sh
स्क्रिप्ट का स्रोत बनाएं:
source build/envsetup.sh
यह स्क्रिप्ट कई कमांड आयात करती है जो आपको एंड्रॉइड स्रोत कोड के साथ काम करने देती है, जिसमें इस पृष्ठ पर उपयोग किए गए कमांड भी शामिल हैं। स्क्रिप्ट का स्रोत देखने के लिए, platform/build/envsetup.sh
देखें। अंतर्निहित सहायता देखने के लिए, hmm
टाइप करें।
एक लक्ष्य चुनें
एंड्रॉइड बनाने से पहले, आपको निर्माण करने के लिए एक लक्ष्य की पहचान करनी होगी। एक लक्ष्य उस लक्ष्य मंच को दर्शाता है जिसके लिए आप निर्माण कर रहे हैं। निर्माण के लिए अपने लक्ष्य की पहचान करने के लिए, lunch
कमांड का उपयोग करें और उसके बाद लक्ष्य का प्रतिनिधित्व करने वाली एक स्ट्रिंग का उपयोग करें। उदाहरण के लिए:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
वर्तमान लक्ष्य देखें
वर्तमान लंच सेटिंग देखने के लिए, चलाएँ:
$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
लक्ष्य का प्रतिनिधित्व करने वाली स्ट्रिंग में निम्नलिखित प्रारूप है:
lunch product_name-release-build_variant
इस स्ट्रिंग के घटक हैं:
product_name उस उत्पाद का नाम है जिसे आप बनाना चाहते हैं, जैसे
aosp_cf_x86_64_phone
याaosp_husky
। आपका विशिष्ट product_name आपके डिवाइस के लिए आपके स्वयं के प्रारूप का अनुसरण कर सकता है, लेकिन Google अपने उपकरणों के लिए जिस प्रारूप का उपयोग करता है उसमें ये घटक होते हैं:-
aosp
एंड्रॉइड ओपन सोर्स प्लेटफ़ॉर्म को संदर्भित करता है। - (वैकल्पिक)
cf
तब शामिल किया जाता है जब लक्ष्य को कटलफिश एमुलेटर के भीतर चलाने का इरादा होता है। - आर्किटेक्चर और हार्डवेयर (कोडनेम), जैसे
x86_64_phone
याhusky
जो Pixel 8 pro का कोडनेम है। Google उपकरणों के लिए कोडनामों की सूची के लिए, डिवाइस कोडनाम देखें।
-
release
trunk_staging
पर सेट है।स्ट्रिंग का build_variant भाग निम्न तालिका में तीन मानों में से एक हो सकता है:
build_variant विवरण user
यह बिल्ड वैरिएंट सीमित सुरक्षा पहुंच प्रदान करता है और उत्पादन के लिए उपयुक्त है। userdebug
यह बिल्ड वैरिएंट डिवाइस डेवलपर्स को इन-डेवलपमेंट रिलीज़ के प्रदर्शन और शक्ति को समझने में मदद करता है। userdebug
बिल्ड के साथ विकास करते समय, यूजरडीबग के लिए दिशानिर्देशों का पालन करें।इंग्लैंड इस बिल्ड वैरिएंट का निर्माण समय तेज़ है और यदि आप प्रदर्शन और शक्ति की परवाह नहीं करते हैं तो यह दिन-प्रतिदिन के विकास के लिए सबसे उपयुक्त है।
यदि आप lunch
बिना किसी तर्क-वितर्क के चलाते हैं, तो सामान्य लक्ष्यों की एक सूची प्रदान की जाती है। आप इस पृष्ठ पर दी गई जानकारी और डिवाइस कोडनेम पर विशिष्ट Google हार्डवेयर का प्रतिनिधित्व करने वाले कोडनेम का उपयोग करके लक्ष्य स्ट्रिंग के तत्वों को एक साथ जोड़कर अपनी स्वयं की लक्ष्य स्ट्रिंग भी बना सकते हैं।
कोड बनाएं
अपना लक्ष्य बनाने के लिए निम्नलिखित कमांड चलाएँ। आपके कार्य केंद्र के विनिर्देश के आधार पर, पहले निर्माण में एक घंटे से कम और कुछ घंटों तक का समय लग सकता है। इसके बाद के निर्माण में काफी कम समय लगता है।
$ m
आपको जो पहला आउटपुट देखना चाहिए वह आपके लक्ष्य और निर्माण वातावरण का सारांश है:
============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================
आपके बिल्ड का आउटपुट ` $OUT_DIR में दिखाई देता है। यदि आप अलग-अलग लक्ष्य बनाते हैं, तो प्रत्येक लक्ष्य निर्माण $OUT_DIR में दिखाई देता है।
m
कमांड पेड़ के शीर्ष से बनता है, इसलिए आप उपनिर्देशिकाओं के भीतर से m
चला सकते हैं। यदि आपके पास TOP
पर्यावरण चर सेट है, तो m
कमांड इसका उपयोग करता है। यदि TOP
सेट नहीं है, तो m
कमांड वर्तमान निर्देशिका से पेड़ को देखता है, पेड़ के शीर्ष को खोजने का प्रयास करता है।
m
कमांड -jN
तर्क के साथ समानांतर कार्यों को संभाल सकता है। यदि आप -j
तर्क प्रदान नहीं करते हैं, तो बिल्ड सिस्टम स्वचालित रूप से एक समानांतर कार्य गणना का चयन करता है जो उसे लगता है कि आपके सिस्टम के लिए इष्टतम है।
आप अपनी m
कमांड लाइन में मॉड्यूल नामों को सूचीबद्ध करके पूर्ण डिवाइस छवि के बजाय विशिष्ट मॉड्यूल बना सकते हैं। इसके अलावा, m
कमांड कुछ छद्म लक्ष्य प्रदान करता है, जिन्हें लक्ष्य कहा जाता है। उदाहरण के लिए, m nothing
कुछ भी नहीं बनाता है, लेकिन बिल्ड संरचना को पार्स और मान्य करता है। वैध लक्ष्यों की सूची के लिए, m help
टाइप करें।
निर्माण त्रुटियों का निवारण करें (8.0 या पहले)
यदि आप AOSP 8 या उससे पहले का निर्माण कर रहे हैं, तो आपके जावा संस्करण के साथ कोई समस्या आने पर m
बंद हो सकता है। उदाहरण के लिए, आपको यह संदेश मिल सकता है:
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.
Please follow the machine setup instructions at
https://source.android.com/source/initializing.html
************************************************************
यहां संभावित कारण और समाधान दिए गए हैं:
- आप एओएसपी विकास (2.3 - 8.0) के लिए सेट अप के जेडीके अनुभागों में निर्दिष्ट सही जेडीके स्थापित करने में विफल रहे।
- आपके पथ में पहले से स्थापित एक और JDK दिखाई दे रहा है। अपने पथ की शुरुआत में सही JDK जोड़ें या समस्याग्रस्त JDK हटा दें।