اندروید بسازید

دستورالعمل های این صفحه را برای ساخت اندروید دنبال کنید.

محیط ساخت خود را تنظیم کنید

از داخل فهرست کاری خود، اسکریپت 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 به پلتفرم متن باز اندروید اشاره دارد.
    • (اختیاری) هنگامی که هدف قرار است در شبیه ساز Cuttlefish اجرا شود، cf گنجانده می شود.
    • معماری و سخت افزار، مانند x86_64_phone یا husky (Pixel 8 pro).
  • release روی trunk-staging تنظیم شده است.

  • بخش build_variant رشته می تواند یکی از سه مقدار جدول زیر باشد:

    build_variant شرح
    user این نوع ساخت دسترسی امنیتی محدودی را فراهم می کند و برای تولید مناسب است.
    userdebug این نوع ساخت به توسعه دهندگان دستگاه کمک می کند تا عملکرد و قدرت نسخه های در حال توسعه را درک کنند. هنگام توسعه با ساخت userdebug ، دستورالعمل های مربوط به userdebug را دنبال کنید.
    eng این نوع ساخت، زمان ساخت سریع‌تری دارد و اگر به عملکرد و قدرت اهمیتی نمی‌دهید، برای توسعه روزمره بهترین گزینه است.

کد را بسازید

دستور زیر را برای ساختن هدف خود اجرا کنید. بسته به مشخصات ایستگاه کاری شما، ساخت اول ممکن است کمتر از یک ساعت و تا چند ساعت طول بکشد. ساخت‌های بعدی زمان بسیار کمتری می‌برند.

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

در اینجا دلایل و راه حل های احتمالی وجود دارد:

  • شما نتوانستید JDK صحیح را همانطور که در بخش های JDK تنظیم برای توسعه AOSP (2.3 - 8.0) مشخص شده است نصب کنید.
  • JDK دیگری که قبلاً نصب شده است در مسیر شما ظاهر می شود. JDK صحیح را در ابتدای مسیر خود قرار دهید یا JDK مشکل ساز را حذف کنید.