Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

توسعه دهنده Android Codelab

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

اگرچه این مسیر چالش برانگیز است ، اما ما تیم Android تلاش می کنیم تا هر نسخه انتشار شما را ساده کنیم. و ما هر روز از طریق کار مستقیم در پروژه منبع باز آندروید (AOSP) پیشرفت می کنیم.

بنابراین بنشینید ، یک ترمینال را آتش بزنید و بیایید تاریخچه کنیم.

اهداف

ماموریت این Codelab دو برابر است:

  1. این كد كتاب طعم كمی از روند گردش برنامه نویسان برای مهندسان اندرویدی كه روی سیستم عامل (سیستم عامل) كار می كنند ، به شما می دهد.
  2. این Codelab یک عملکرد مجبور برای شما است تا هنگام شروع کار از ابتدا ، در مورد ابزار ، مستندات و گردش کار توسعه دهنده Android بازخورد ارائه دهید.

پیش نیازها

در اینجا لیست کاملی از نیازهای این Codelab ، مشتق شده از موارد توسعه پلتفرم عمومی ( AOSP ) آورده شده است.

برای استفاده از این Codelab ، باید تنظیم کنید:

محیط

به طور معمول ، کاربران مستقیماً در ایستگاه کاری ساخته و توسعه می یابند. از آنجا که ممکن است در ترمینال های مختلفی کار کنید و بسیاری از دستورات استفاده شده مخصوص ترمینال هستند ، لازم است که آنها را در هر جلسه ترمینال دوباره اجرا کنید. به طور خاص ، اینها شامل دستور source build/envsetup.sh و دستورات lunch .

ایستگاه کاری را راه اندازی کنید

  1. بسته های لازم را روی ایستگاه کاری نصب کنید .
  2. در حالی که هنوز در یک ترمینال هستید ، Repo را نصب کنید و برای همه مخازن Git اعتبارنامه کسب کنید.

کد را اولیه و همگام سازی کنید

  1. به فهرست اصلی خود بروید:

    cd ~
    
  2. یک زیر شاخه محلی کار در آن ایجاد کنید:

    mkdir aosp
    
  3. به فهرست مراجعه کنید:

    cd aosp
    
  4. شاخه اصلی کد منبع مخزن AOSP را شروع کنید (پیش فرض):

    103
  5. شناسنامه Git خود را وارد کنید یا قبول کنید (نام ، آدرس ایمیل).

  6. کد منبع را همگام سازی کنید:

    repo sync -j16
    

همگام سازی اولیه ممکن است یک ساعت یا بیشتر طول بکشد. هنگام انتظار ، برای جزئیات مربوط به دستورالعمل های بارگیری مراجعه کنید.

هر صندوق بازپرداخت با یک پرونده مانیفست نشان داده می شود . ممکن است همزمان بیش از یک بار خرید مجدد داشته باشید به شرطی که در فهرست های مجزا وجود داشته باشد. اما توجه داشته باشید که هر مرحله از پرداخت و ساخت تقریباً 300 گیگابایت و در حال رشد است ، بنابراین خود را به دو مورد محدود کنید یا سیستم خود را با یک درایو ثانویه تقویت کنید.

نکته: برای آزاد کردن فضا ، یک شاخه شاخه را حذف کنید و از ایجاد فهرست دوباره شروع کنید:

rm -rf aosp2

کد را بسازید

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

هدف دستگاه موجود در زیر ، aosp_cf_x86_phone-userdebug ، شما را قادر می سازد دستگاه Android مجازی Cuttlefish را برای آزمایش بدون دستگاه فیزیکی بسازید.

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

  1. با اجرای دستور زیر از ریشه پرداخت کد منبع ، محیط خود را برای ساخت دستگاه های Android تنظیم کنید:

    source build/envsetup.sh
    
  2. هدف ساخت را به دستور ناهار منتقل کنید ، مانند این موارد:

    lunch aosp_cf_x86_phone-userdebug
    
  3. ساخت کد از هر نقطه در پرداخت خود را با:

    m
    

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

نمونه Acloud ایجاد کنید

Acloud ابزاری برای خط فرمان در AOSP است که به کاربران در ایجاد دستگاه های Android مجازی ، در این مورد Cuttlefish ، کمک می کند.

اگر در همان جلسه ترمینال مورد استفاده برای ساختن کد هستید ، ادامه دهید. در غیر این صورت ، envsetup.sh اسکریپت envsetup.sh و همان دستور ناهار را که در آنجا استفاده شده است ، دوباره اجرا کنید. سپس:

  1. نمونه محلی Acloud را با استفاده از موارد زیر ایجاد کنید:

    acloud create --local-image --local-instance
    
  2. به روزرسانی بسته های مورد نیاز را بپذیرید.

  3. در صورت درخواست ، ایستگاه کاری خود را مجدداً راه اندازی کنید تا همه تغییرات اعمال شود.

  4. دستگاه Cuttlefish را انتخاب کنید.

شما باید با یک جلسه VNC حاوی یک دستگاه Android خوش آمد بگویید!

با استفاده از ماوس و صفحه کلید می توانید در ایستگاه کاری خود با دستگاه مجازی ارتباط برقرار کنید. همچنین شما می توانید از فعالیت در سیاهههای مربوط در حالی که شما با استفاده از دستگاه خود را با آندروید پل اشکال زدایی (ADB) دنبال logcat فرمان:

adb logcat

تعییری ایجاد کن

کد منبع را به دنبال این مثال لیست تغییر دهید .

  1. از ریشه aosp/ ( aosp/ دایرکتوری) ، به frameworks/native پروژه Git frameworks/native :

    cd frameworks/native
    
  2. شروع یک پروژه موقت با:

    repo start <some-name> .
    
  3. SurfaceFlinger.cpp ویرایش کنید تا شامل به روزرسانی های لیست تغییر در مکان زیر شود:

    aosp/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
    
  4. کد را بسازید:

    m
    
  5. نسخه ساخت دستگاه را به روز کنید:

    adb root
    adb remount
    adb sync
    adb reboot
    acloud reconnect
    

باید تغییر رنگ را در دستگاه مشاهده کنید.

کد خود را تست کنید

در طی این بخش از کد کد ، ما یک تست آزمایشی را اجرا خواهیم کرد که در درخت منبع وجود دارد و در حال حاضر ناموفق است. به منظور اجرای تست محلی ، از Atest برای تست کد استفاده خواهیم کرد.

برای استفاده از آزمون:

  1. اجرا کن:

    atest DevCodelabTest
    
  2. آزمون ناموفق خواهد بود. حالا بیایید درستش کنیم! کد منبع آزمون ناموفق را پیدا کنید:

    atest --info android.test.example.devcodelab.DevCodelabTest#testHelloWorld
    
  3. سپس به درون نگاه کنید:

    platform_testing/tests/example/devcodelab
    
  4. برای ویرایش پرونده ، نام آزمون را بردارید و جایگزین کنید . با / ، مانند این:

    android.test.example.devcodelab.DevCodelabTest
    

    تبدیل می شود:

    src/android/test/example/devcodelab/DevCodelabTest.java
    
  5. بنابراین ویرایش کنید:

    platform_testing/tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
    

    برای جایگزینی:

    Assert.assertTrue(false)
    

    با:

    Assert.assertTrue(true)
    
  6. مجدداً آزمون را اجرا کنید تا تأیید کنید که آزمون را برطرف کرده اید:

    atest DevCodelabTest
    

کد خود را برای بررسی بارگذاری کنید

Repo با ترکیب دستوراتی مانند git clone برای کار کردن در چندین مخزن (یا پروژه) Git ، استفاده از Git را ساده می کند.

برای بررسی اجمالی Git و Repo با پیوندهایی به اسناد کامل در مورد کار با کد منبع Android ، به ابزارهای کنترل منبع مراجعه کنید. مخزن AOSP را برای لیست کامل پروژه های Git و پروژه های جداگانه (مسیرها) برای شاخه های مرتبط با هر پروژه مشاهده کنید.

شما برای پروژه های Git از سیستم مرور کد مبتنی بر وب Gerrit استفاده خواهید کرد.

  1. با فرض اینکه تغییرات خود را در frameworks/native پروژه frameworks/native ایجاد کرده اید ، این دستورات را برای بارگذاری آنها اجرا کنید:

    cd frameworks/native
    repo start codelab .
    git add .
    git commit
    
  2. برای پیام متعهد خود وارد کنید:

    Android codelab change
    Test: manual atest
    
  3. تغییر خود را بارگذاری کنید:

    repo upload
    

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

Upload project frameworks/native/ to remote branch master:
  branch codelab ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
         ff46b36d android codelab change
to https://android-review.googlesource.com/ (y/N)? y
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote:   https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432 android codelab change [NEW]
remote:
To https://android-review.googlesource.com/platform/frameworks/native
 * [new branch]          codelab -> refs/for/master

تغییر خود را در Gerrit مشاهده کنید

به پیوند چاپ شده در ترمینال شبیه بروید:

https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432

با این کار کد شروع کننده توسعه پلت فرم آندروید کامل می شود. برای جزئیات کامل در مورد توسعه Android به ارسال وصله ها و مراحل دیگر این سایت مراجعه کنید.

تغییر خود را برگردانید

به طور معمول ، پس از آزمایش و بررسی / تأیید ، تغییر خود را در Gerrit ارسال می کنید و آن را در مخزن ادغام می کنید.

درعوض ، برای اهداف برنامه كد ، با كلیك كردن روی Abandon in Gerrit ، لیست تغییرات خود را برگردانید.

سپس شاخه موقت مرتبط را در شاخه پروژه / بومی پروژه (یا زیرمجموعه های آن) رها کنید:

repo abandon codelab .

همچنین به خاطر داشته باشید که باید تغییرات را در پرونده آزمون برگردانید. از آنجایی که ما repo start نکردیم ، git commit ، و repo upload نکردیم ، می توانیم فقط پرونده را تنظیم کنیم ، مانند این (با فرض اینکه شما در فهرست aosp/platform_testing directory ):

git reset HEAD tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
git checkout .

در این مرحله ، کار شما تمام شد! کارت خوب بود!

کمک بگیر

اگر در طول این Codelab با خطایی روبرو شدید ، لطفا آنها را با استفاده از لینک بازخورد سایت در پایین هر صفحه گزارش دهید. س questionsالات خود را برای گروه سازنده اندروید ارسال کنید.