ساخت اندروید

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

راه اندازی محیط

محیط را با اسکریپت envsetup.sh راه اندازی کنید:

source build/envsetup.sh

یا

. build/envsetup.sh

اسکریپت را در platform/build/envsetup.sh برای توضیحات مربوط به دستورات، از جمله ناهار برای انتخاب اهداف دستگاه و تاپاس برای ساختن برنامه‌های جداشده، مانند برنامه تلویزیون مرجع ، ببینید.

شما باید این دستور را پس از هر repo sync مجدداً صادر کنید تا تغییراتی را در آن اسکریپت دریافت کنید. توجه داشته باشید که جایگزینی source با . (یک نقطه) چند کاراکتر را ذخیره می کند و فرم کوتاه بیشتر در مستندسازی استفاده می شود.

اسکریپت envsetup.sh چندین دستور را وارد می کند که شما را قادر می سازد با کد منبع اندروید کار کنید، از جمله دستورات استفاده شده در این تمرین.

برای مشاهده لیست کامل دستورات موجود، اجرا کنید:

hmm

انتخاب یک هدف

ناهار

انتخاب کنید کدام هدف را با lunch بسازید. lunch product_name - build_variant product_name را به عنوان محصول برای ساخت و build_variant را به عنوان نوع ساخت انتخاب می کند و آن انتخاب ها را در محیط ذخیره می کند تا با فراخوانی های بعدی m و سایر دستورات مشابه خوانده شوند.

پیکربندی دقیق را می توان به عنوان یک آرگومان ارسال کرد. به عنوان مثال، دستور زیر به یک ساخت کامل برای شبیه ساز با فعال بودن تمام اشکال زدایی اشاره دارد:

lunch aosp_arm-eng

اگر بدون آرگومان اجرا شود، lunch از شما می خواهد که یک هدف را از منو انتخاب کنید، اما توجه داشته باشید که منو شامل همه امکانات نیست. به انتخاب ساخت دستگاه برای پیکربندی‌های ساخت همه دستگاه‌های پشتیبانی‌شده در AOSP رجوع کنید، یا با افراد تیم خود در مورد ناهار مناسب دستگاهی که روی آن کار می‌کنید صحبت کنید.

همه اهداف ساخت به شکل BUILD-BUILDTYPE ، که در آن BUILD یک نام رمز است که به ترکیب ویژگی خاص اشاره دارد. BUILDTYPE یکی از موارد زیر است.

نوع ساخت استفاده کنید
کاربر دسترسی محدود؛ مناسب برای تولید
کاربر اشکال زدایی مانند کاربر اما با دسترسی ریشه و قابلیت دیباگ. برای اشکال زدایی ترجیح داده می شود
eng پیکربندی توسعه با ابزارهای دیباگ اضافی

ساختار userdebug باید مانند ساخت کاربر رفتار کند، با قابلیت فعال کردن اشکال‌زدایی اضافی که معمولاً مدل امنیتی پلتفرم را نقض می‌کند. این باعث می شود که ساخت اشکالات کاربر برای آزمایش کاربر با قابلیت تشخیص بیشتر خوب باشد. هنگام توسعه با ساخت userdebug، دستورالعمل‌های userdebug را دنبال کنید.

ساختار مهندسی بهره وری مهندسی را برای مهندسانی که روی پلت فرم کار می کنند در اولویت قرار می دهد. ساخت eng بهینه سازی های مختلفی را که برای ارائه یک تجربه کاربری خوب استفاده می شود، خاموش می کند. در غیر این صورت، بیلد eng رفتاری شبیه به ساخت‌های کاربر و userdebug دارد تا توسعه‌دهندگان دستگاه بتوانند نحوه رفتار کد در آن محیط‌ها را ببینند.

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

تاپاس

دستور tapas ، ساخت برنامه‌های جداشده را پیکربندی می‌کند. برنامه های جداگانه ای را برای ساخت سیستم ساخت اندروید انتخاب می کند. برخلاف lunch ، tapas درخواست ساخت تصاویر برای یک دستگاه را ندارد.

راهنمای tapas help را برای اطلاعات بیشتر در مورد دستور اجرا کنید.

ساخت کد

این بخش خلاصه ای سریع برای اطمینان از کامل بودن راه اندازی است.

همه چیز را با m . m می تواند وظایف موازی را با آرگومان -jN دهد. اگر آرگومان -j را ارائه نکنید، سیستم ساخت به طور خودکار تعداد کار موازی را انتخاب می کند که فکر می کند برای سیستم شما بهینه است.

m

همانطور که در بالا توضیح داده شد، می توانید ماژول های خاصی را به جای تصویر کامل دستگاه با لیست کردن نام آنها در خط فرمان m خود بسازید. علاوه بر این، m برخی شبه هدف ها را برای مقاصد خاص فراهم می کند. چند نمونه عبارتند از:

  • droid - m droid ساخت معمولی است. این هدف اینجاست زیرا هدف پیش فرض نیاز به نام دارد.
  • all - m all هر کاری را که m droid انجام می دهد را می سازد، به علاوه هر چیزی که برچسب droid را ندارد. سرور ساخت این را اجرا می کند تا مطمئن شود هر چیزی که در درخت است و یک فایل Android.mk دارد ساخته می شود.
  • m - ساخت ها را از بالای درخت اجرا می کند. این مفید است زیرا می توانید make از داخل زیر شاخه ها اجرا کنید. اگر مجموعه متغیر محیطی TOP را دارید، از آن استفاده می کند. اگر این کار را نکنید، درخت را از فهرست فعلی جستجو می کند و سعی می کند بالای درخت را پیدا کند. شما می توانید کل درخت کد منبع را با اجرای m بدون آرگومان بسازید یا با مشخص کردن نام آنها، اهداف خاصی بسازید.
  • mma - همه ماژول ها را در فهرست فعلی و وابستگی های آنها می سازد.
  • mmma - همه ماژول ها را در فهرست های ارائه شده و وابستگی های آنها ایجاد می کند.
  • croot - cd تا بالای درخت.
  • clean - m clean تمام فایل های خروجی و میانی را برای این پیکربندی حذف می کند. این همان rm -rf out/ است.

m help را اجرا کنید تا ببینید m شبه هدف های دیگر چه چیزی را فراهم می کند.

اجرای ساخت

می توانید بیلد خود را بر روی شبیه ساز اجرا کنید یا آن را روی دستگاه فلش کنید. از آنجایی که شما قبلاً هدف ساخت خود را با lunch انتخاب کرده اید، بعید است که روی هدفی متفاوت از هدفی که برای آن ساخته شده است اجرا شود.

فلش با فست بوت

برای فلش کردن یک دستگاه، از fastboot استفاده کنید، که پس از ساخت موفق باید در مسیر شما قرار گیرد. برای دستورالعمل‌ها به فلش کردن دستگاه مراجعه کنید.

شبیه سازی دستگاه اندرویدی

شبیه ساز به طور خودکار با فرآیند ساخت به مسیر شما اضافه می شود. برای اجرای شبیه ساز، تایپ کنید:

emulator

درک اثر انگشت ساخت

برای ردیابی و گزارش مشکلات مرتبط با یک ساخت اندروید خاص، درک اثر انگشت ساخت مهم است. اثر انگشت ساخت یک رشته منحصر به فرد و قابل خواندن برای انسان است که حاوی اطلاعات سازنده است که برای هر بیلد صادر می شود. توضیحات FINGERPRINT را در بخش Build Parameters در سند تعریف سازگاری Android (CDD) برای نحو دقیق ببینید.

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

اثر انگشت ساخت تمام جزئیات پیاده سازی اندروید را در بر می گیرد:

  • API ها: اندروید و بومی و همچنین رفتارهای نرم افزار API
  • Core API و برخی رفتارهای UI سیستم
  • الزامات سازگاری و امنیتی تعریف شده در CDD
  • مشخصات محصول و تنظیمات استفاده-ویژگی استفاده شده توسط برنامه‌ها برای هدف قرار دادن دستگاه‌هایی که نیازهای مورد انتظار را برآورده می‌کنند
  • پیاده سازی قطعات سخت افزاری و نرم افزاری

برای جزئیات کامل به CDD و افزودن دستگاه جدید برای دستورالعمل‌های ایجاد یک دستگاه اندروید کاملاً جدید مراجعه کنید.

عیب یابی خطاهای رایج ساخت

نسخه جاوا اشتباه است

اگر می‌خواهید نسخه‌ای از Android بسازید که با نسخه جاوا make مطابقت ندارد، با پیامی مانند:

************************************************************
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 مشخص شده است. مطمئن شوید که مراحل تنظیم محیط و انتخاب هدف را دنبال کرده اید.
  • JDK دیگری که قبلاً نصب شده بود در مسیر شما ظاهر می شود. JDK صحیح را در ابتدای مسیر خود قرار دهید یا JDK مشکل ساز را حذف کنید.

بدون مجوز USB

به طور پیش فرض در اکثر سیستم های لینوکس، کاربران غیرمجاز نمی توانند به پورت های USB دسترسی داشته باشند. اگر خطای رد کردن مجوز را مشاهده کردید، دستورالعمل‌های موجود در پیکربندی دسترسی USB را دنبال کنید.

اگر ADB قبلاً در حال اجرا بود و نمی‌توانید پس از تنظیم آن قوانین به دستگاه متصل شوید، می‌توانید آن را با adb kill-server حذف کنید. این دستور باعث می شود ADB با پیکربندی جدید راه اندازی مجدد شود.