Android डेवलपमेंट आज़माना

इस ट्यूटोरियल की मदद से, Android ऑपरेटिंग सिस्टम के डेवलपमेंट को पहली बार आज़माया जा सकता है.

Android डेवलपमेंट के लिए सेट अप करना

Android सोर्स के android-latest-release मेनिफ़ेस्ट ब्रांच को डाउनलोड और बिल्ड करने से पहले, पक्का करें कि आपका हार्डवेयर ज़रूरी शर्तें पूरी करता हो और ज़रूरी सॉफ़्टवेयर सही तरीके से इंस्टॉल किया गया हो. आपको इन शब्दों के बारे में भी पता होना चाहिए:

Git
Git, वर्शन कंट्रोल करने का एक डिस्ट्रिब्यूटेड सिस्टम है. यह मुफ़्त में उपलब्ध है और इसका सोर्स कोड भी उपलब्ध है. Android, Git का इस्तेमाल स्थानीय कार्रवाइयों के लिए करता है. जैसे, ब्रांचिंग, कमिट, डिफ़, और बदलाव. Git के बारे में ज़्यादा जानने के लिए, Git का दस्तावेज़ देखें.
Repo
Repo, Git के लिए Python रैपर है. इसकी मदद से, कई Git रिपॉज़िटरी में जटिल कार्रवाइयां आसानी से की जा सकती हैं. Repo, वर्शन कंट्रोल से जुड़ी सभी कार्रवाइयों के लिए Git की जगह नहीं लेता. यह सिर्फ़ Git की जटिल कार्रवाइयों को आसान बनाता है. Repo, मेनिफ़ेस्ट फ़ाइलों का इस्तेमाल करके, Git प्रोजेक्ट को Android सुपरप्रोजेक्ट में इकट्ठा करता है.
मेनिफ़ेस्ट फ़ाइल
मेनिफ़ेस्ट फ़ाइल, एक एक्सएमएल फ़ाइल होती है. इसमें यह जानकारी होती है कि Android सोर्स में मौजूद अलग-अलग Git प्रोजेक्ट, AOSP सोर्स ट्री में कहां रखे गए हैं.

हार्डवेयर की ज़रूरी शर्तें पूरी करना

आपके डेवलपमेंट वर्कस्टेशन को हार्डवेयर की इन ज़रूरी शर्तों को पूरा करना चाहिए या इनसे बेहतर होना चाहिए:

  • 64-बिट x86 सिस्टम.

  • कोड को चेक आउट और बिल्ड करने के लिए, डिस्क में कम से कम 400 जीबी जगह खाली होनी चाहिए. इसमें, कोड को चेक आउट करने के लिए 250 जीबी और बिल्ड करने के लिए 150 जीबी जगह शामिल है.

  • कम से कम 64 जीबी रैम. Google, Android को बिल्ड करने के लिए, 72 कोर वाली मशीनों का इस्तेमाल करता है. इनमें 64 जीबी रैम होती है. हार्डवेयर के इस कॉन्फ़िगरेशन के साथ, Android को पूरी तरह बिल्ड करने में करीब 40 मिनट लगते हैं. वहीं, Android को इंक्रीमेंटल तरीके से बिल्ड करने में कुछ ही मिनट लगते हैं. इसके उलट, 6 कोर वाली मशीन में 64 जीबी रैम होने पर, पूरी तरह बिल्ड करने में करीब छह घंटे लगते हैं.

ऑपरेटिंग सिस्टम की ज़रूरी शर्तें पूरी करना

आपके डेवलपमेंट वर्कस्टेशन पर, 64-बिट वाला कोई भी Linux डिस्ट्रिब्यूशन होना चाहिए. साथ ही, इसमें GNU C Library (glibc) 2.17 या इसके बाद का वर्शन होना चाहिए.

ज़रूरी पैकेज इंस्टॉल करना

Ubuntu 18.04 या इसके बाद के वर्शन के लिए ज़रूरी पैकेज इंस्टॉल करने के लिए, यह कमांड चलाएं:

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

ज़रूरी सॉफ़्टवेयर इंस्टॉल करना

AOSP के साथ काम करने के लिए, आपके पास OpenJDK, Make, Python 3, और Repo इंस्टॉल होने चाहिए. Android के सबसे नए रिलीज़ ब्रांच में, OpenJDK, Make, और Python 3 के पहले से बने वर्शन शामिल होते हैं. इसलिए, इन्हें इंस्टॉल करने के लिए अलग से कोई चरण पूरा करने की ज़रूरत नहीं होती. Repo को इंस्टॉल करने का तरीका, यहां बताया गया है.

Repo इंस्टॉल करना

Repo इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. मौजूदा पैकेज की जानकारी डाउनलोड करें:

    sudo apt-get update
  2. Repo लॉन्चर इंस्टॉल करने के लिए, यह कमांड चलाएं:

    sudo apt-get install repo

    Repo लॉन्चर, एक Python स्क्रिप्ट उपलब्ध कराता है. यह स्क्रिप्ट, चेकआउट को शुरू करती है और Repo टूल को पूरी तरह डाउनलोड करती है.

    अगर यह प्रोसेस पूरी हो जाती है, तो सीधे चौथे चरण पर जाएं.

  3. (ज़रूरी नहीं) Repo को मैन्युअल तरीके से इंस्टॉल करने के लिए, कमांड की यह सीरीज़ इस्तेमाल करें:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    पहले तीन कमांड, एक अस्थायी फ़ाइल सेट अप करते हैं, Repo को फ़ाइल में डाउनलोड करते हैं, और पुष्टि करते हैं कि दी गई कुंजी, ज़रूरी कुंजी से मेल खाती है. अगर ये कमांड पूरी हो जाती हैं, तो आखिरी कमांड, Repo लॉन्चर को इंस्टॉल करती है.

  4. Repo लॉन्चर का वर्शन देखें:

    repo version

    आउटपुट में, 2.4 या इसके बाद का वर्शन दिखना चाहिए. उदाहरण के लिए:

    repo launcher version 2.45

Android सोर्स डाउनलोड करना

Android सोर्स, Git रिपॉज़िटरी के कलेक्शन में मौजूद होता है. इसे Google होस्ट करता है. हर Git रिपॉज़िटरी में, Android सोर्स का पूरा इतिहास शामिल होता है. इसमें सोर्स में किए गए बदलाव और वे बदलाव कब किए गए, इसकी जानकारी भी शामिल होती है. Android सोर्स डाउनलोड करने के लिए:

  1. अपनी होम डायरेक्ट्री में जाएं:

    cd ~
  2. इसमें, स्थानीय वर्किंग सबडायरेक्ट्री बनाएं:

    mkdir aosp
  3. डायरेक्ट्री में जाएं:

    cd aosp
  4. AOSP रिपॉज़िटरी सोर्स कोड के सबसे नए रिलीज़ ब्रांच (android-latest-release) को शुरू करें:

    repo init --partial-clone -b android-latest-release -u https://android.googlesource.com/platform/manifest
  5. अपने Git क्रेडेंशियल (नाम, ईमेल पता) डालें या स्वीकार करें.

  6. सोर्स कोड सिंक करें:

    repo sync -c -j8

    अगर डाउनलोड के दौरान कोई समस्या आती है, तो सिंक की समस्याओं को हल करना और ठीक करना लेख देखें.

कोड बिल्ड करना

कोड बिल्ड करने के लिए:

  1. अपने वर्किंग डायरेक्ट्री में जाकर, envsetup.sh स्क्रिप्ट को सोर्स करें, ताकि आपका बिल्ड एनवायरमेंट सेट अप हो जाए:

    source build/envsetup.sh
  2. lunch कमांड का इस्तेमाल करके, बिल्ड करने के लिए टारगेट डिवाइस का टाइप तय करें. टारगेट, डिवाइस का कोई मॉडल या फ़ॉर्म फ़ैक्टर हो सकता है. यह टारगेट तय करें:

    lunch aosp_cf_x86_64_only_phone-aosp_current-userdebug

    आपको अपने टारगेट और बिल्ड एनवायरमेंट की खास जानकारी दिखेगी:

    ============================================
    PLATFORM_VERSION_CODENAME=Baklava
    PLATFORM_VERSION=Baklava
    TARGET_PRODUCT=aosp_cf_x86_64_only_phone
    TARGET_BUILD_VARIANT=userdebug
    TARGET_ARCH=x86_64
    TARGET_ARCH_VARIANT=silvermont
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-6.10.11-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
    HOST_CROSS_OS=windows
    BUILD_ID=BP1A.250305.020
    OUT_DIR=out
    ============================================
    
  3. टारगेट बिल्ड करें:

    m

पहले बिल्ड में कई घंटे लग सकते हैं. इसके बाद के बिल्ड में काफ़ी कम समय लगता है. आपके बिल्ड का आउटपुट, $OUT_DIR में दिखता है.

Cuttlefish लॉन्च करना

Cuttlefish, Android एम्युलेटर है. इसका इस्तेमाल, अपने बिल्ड की जांच करने के लिए किया जाता है.

  1. होस्ट Debian पैकेज डाउनलोड, बिल्ड, और इंस्टॉल करने के लिए, ये कमांड चलाएं:

    sudo apt install -y git devscripts equivs config-package-dev debhelper-compat golang curl
    git clone https://github.com/google/android-cuttlefish
    cd android-cuttlefish
    for dir in base frontend; do
    pushd $dir
    # Install build dependencies
    sudo mk-build-deps -i
    dpkg-buildpackage -uc -us
    popd
    done
    sudo dpkg -i ./cuttlefish-base_*_*64.deb || sudo apt-get install -f
    sudo dpkg -i ./cuttlefish-user_*_*64.deb || sudo apt-get install -f
    sudo usermod -aG kvm,cvdnetwork,render $USER
    sudo reboot

    रीबूट करने पर, कर्नल के अतिरिक्त मॉड्यूल इंस्टॉल होते हैं और udev के नियम लागू होते हैं.

  2. Cuttlefish लॉन्च करें:

    launch_cvd --daemon
    
  3. अपने वेब ब्राउज़र में https://localhost:8443 पर जाकर, Cuttlefish डिवाइस से कनेक्ट करें. आपको Android पर चलने वाला वर्चुअल डिवाइस दिखेगा.

बदलाव करना

बदलावों की इस सूची के उदाहरण के मुताबिक, सोर्स कोड अपडेट करें.

  1. अपने चेकआउट (aosp/ डायरेक्ट्री) के रूट से, frameworks/native Git प्रोजेक्ट पर जाएं:

    cd frameworks/native
  2. अस्थायी प्रोजेक्ट शुरू करने के लिए, यह कमांड चलाएं:

    repo