एंड्रॉइड बनाएं

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 (पिक्सेल 8 प्रो)।
  • release trunk-staging पर सेट है।

  • स्ट्रिंग का build_variant भाग निम्न तालिका में तीन मानों में से एक हो सकता है:

    build_variant विवरण
    user यह बिल्ड वैरिएंट सीमित सुरक्षा पहुंच प्रदान करता है और उत्पादन के लिए उपयुक्त है।
    userdebug यह बिल्ड वैरिएंट डिवाइस डेवलपर्स को इन-डेवलपमेंट रिलीज़ के प्रदर्शन और शक्ति को समझने में मदद करता है। userdebug बिल्ड के साथ विकास करते समय, यूजरडीबग के लिए दिशानिर्देशों का पालन करें।
    इंग्लैंड इस बिल्ड वैरिएंट का निर्माण समय तेज़ है और यदि आप प्रदर्शन और शक्ति की परवाह नहीं करते हैं तो यह दिन-प्रतिदिन के विकास के लिए सबसे उपयुक्त है।

कोड बनाएं

अपना लक्ष्य बनाने के लिए निम्नलिखित कमांड चलाएँ। आपके कार्य केंद्र के विनिर्देश के आधार पर, पहले निर्माण में एक घंटे से कम और कुछ घंटों तक का समय लग सकता है। इसके बाद के निर्माण में काफी कम समय लगता है।

$ 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
============================================

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 हटा दें।