Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

Codelab المطور Android

يمكنك المساعدة في تطوير نظام التشغيل الأكثر تثبيتًا في تاريخ Earth. نعم ، أنت هنا لبدء رحلة أن تصبح مهندسًا لمنصة Android.

على الرغم من أن المسار يمثل تحديًا ، فإننا نحن فريق Android نسعى جاهدين لتبسيط رحلتك في كل إصدار. ونجري تحسينات كل يوم من خلال العمل المباشر في مشروع Android مفتوح المصدر (AOSP).

لذا اجلس واشعل المحطة ودعنا نصنع التاريخ.

الأهداف

مهمة مختبر الرموز هذا ذات شقين:

  1. سيمنحك مختبر الكود هذا لمحة بسيطة عن سير عمل المطور لمهندسي Android الذين يعملون على النظام الأساسي (نظام التشغيل).
  2. مختبر الأكواد هذا هو وظيفة إجبارية بالنسبة لك لتقديم ملاحظات حول أدوات Android والوثائق وسير عمل المطور عند البدء من نقطة الصفر.

المتطلبات الأساسية

فيما يلي القائمة الكاملة لمتطلبات مختبر الرموز هذا ، المشتقة من متطلبات تطوير النظام الأساسي العام ( AOSP ).

للحصول على مختبر الرموز هذا ، ستحتاج إلى إعداد:

بيئة

عادةً ما يقوم المستخدمون بالبناء والتطوير على محطة العمل مباشرةً. نظرًا لأنك قد تعمل في العديد من الأجهزة الطرفية ، ولأن العديد من الأوامر المستخدمة خاصة بالمحطة ، فستحتاج إلى إعادة تشغيلها في كل جلسة طرفية. على وجه التحديد ، تتضمن هذه الأوامر source build/envsetup.sh وأوامر lunch .

قم بإعداد محطة العمل

  1. قم بتثبيت الحزم اللازمة على محطة العمل.
  2. أثناء وجودك في محطة طرفية ، قم بتثبيت Repo واكتسب بيانات اعتماد لجميع مستودعات Git.

تهيئة ومزامنة الرمز

  1. انتقل إلى دليل منزلك:

    cd ~
    
  2. قم بإنشاء دليل فرعي محلي للعمل داخله:

    mkdir aosp
    
  3. انتقل إلى الدليل:

    cd aosp
    
  4. قم بتهيئة الفرع الرئيسي لكود مصدر مستودع AOSP (الافتراضي):

    repo init -u https://android.googlesource.com/platform/manifest
    
  5. أدخل أو اقبل بيانات اعتماد Git (الاسم وعنوان البريد الإلكتروني).

  6. مزامنة كود المصدر:

    repo sync -j16
    

يمكن أن تستغرق عمليات المزامنة الأولية ساعة أو أكثر. راجع تعليمات التنزيل للحصول على التفاصيل ذات الصلة أثناء الانتظار.

يتم تمثيل كل عملية سحب من الريبو بواسطة ملف بيان . قد يكون لديك أكثر من إعادة تسجيل الخروج في وقت واحد طالما أنها موجودة في أدلة مميزة. لكن لاحظ أن كل عملية سحب وبناء تبلغ حوالي 300 جيجابايت وتتزايد ، لذا حدد نفسك باثنين أو زد نظامك بمحرك أقراص ثانوي.

نصيحة: لتفريغ مساحة ، احذف دليل فرع وابدأ من جديد من إنشاء الدليل:

rm -rf aosp2

بناء الكود

لإنشاء Android ، يجب عليك تحديد نوع الجهاز المستهدف للبناء باستخدام أمر lunch . الأهداف هي تبديلات الجهاز ، مثل نموذج معين أو عامل الشكل.

الهدف جهاز شملت أدناه، aosp_cf_x86_64_phone-userdebug ، تمكنك من بناء الحبار جهاز الروبوت الظاهري للاختبار من دون جهاز فعلي.

لإنشاء جهاز مادي وتحديثه بدلاً من ذلك ، اختر هدفًا آخر واتبع الإرشادات الخاصة بالأجهزة الوامضة .

  1. قم بإعداد بيئتك لبناء أجهزة Android عن طريق تشغيل الأمر التالي من جذر الخروج من كود المصدر:

    source build/envsetup.sh
    
  2. قم بتمرير هدف البناء إلى أمر الغداء ، مثل:

    lunch aosp_cf_x86_64_phone-userdebug
    
  3. أنشئ الكود من أي مكان في عملية الدفع باستخدام:

    m
    

توقع أن يستغرق البناء الأول ساعات. تستغرق عمليات الإنشاء اللاحقة وقتًا أقل بكثير.

إنشاء مثيل Acloud

Acloud هي أداة سطر أوامر في AOSP تساعد المستخدمين في إنشاء أجهزة Android افتراضية ، في هذه الحالة Cuttlefish.

إذا كنت في نفس الجلسة الطرفية المستخدمة لبناء الكود ، فتابع. خلاف ذلك ، envsetup.sh تشغيل البرنامج النصي envsetup.sh ونفس أمر الغداء المستخدم هناك أولا. ثم:

  1. قم بإنشاء مثيل محلي Acloud باستخدام:

    acloud create --local-image --local-instance
    
  2. اقبل التحديثات على الحزم المطلوبة.

  3. إذا طُلب منك ذلك ، أعد تشغيل محطة العمل الخاصة بك حتى تصبح جميع التغييرات سارية المفعول.

  4. حدد جهاز الحبار.

يجب أن يتم الترحيب بك بجلسة VNC تحتوي على جهاز Android!

يمكنك التفاعل مع الجهاز الافتراضي على محطة العمل الخاصة بك باستخدام الماوس ولوحة المفاتيح. يمكنك أيضًا متابعة النشاط داخل السجلات أثناء استخدام جهازك باستخدام الأمر Android Debug Bridge (adb) logcat :

adb logcat

اصنع فرق

قم بتحديث كود المصدر باتباع هذا المثال لقائمة التغيير .

  1. من جذر عملية الدفع ( aosp/ directory) ، انتقل إلى 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
    

يجب أن ترى تغيرًا في اللون على الجهاز.

اختبر الكود الخاص بك

خلال هذا الجزء من codelab ، سنجري اختبارًا نموذجيًا موجودًا في شجرة المصدر وفشل بالفعل. لإجراء الاختبار محليًا ، سنستخدم 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 عن طريق تجميع أوامر مثل git clone للعمل عبر مستودعات Git (أو المشاريع) المتعددة في وقت واحد.

راجع أدوات التحكم في المصدر للحصول على لمحات عامة عن Git و Repo مع روابط للوثائق الكاملة حول العمل باستخدام كود مصدر Android. راجع مستودع AOSP للحصول على القائمة الكاملة لمشاريع Git والمشاريع الفردية (المسارات) للفروع المرتبطة بكل مشروع.

ستستخدم نظام مراجعة الكود المستند إلى الويب Gerrit للمشاريع في Git.

  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

عرض التغيير الخاص بك في جيريت

انتقل إلى الرابط المطبوع في الجهاز والذي يشبه:

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

هذا يكمل مختبر الكود المبدئي لتطوير منصة Android. راجع إرسال التصحيحات لمعرفة الخطوات التالية وباقي هذا الموقع للحصول على تفاصيل كاملة حول تطوير Android.

التراجع عن التغيير

عادة ، بعد الاختبار والمراجعة / الموافقة ، يجب عليك إرسال التغيير الخاص بك في Gerrit ودمجه في المستودع.

بدلاً من ذلك ، ولأغراض معمل الرموز ، قم بإعادة قائمة التغيير الخاصة بك عن طريق النقر فوق التخلي في 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 .

في هذه المرحلة ، لقد انتهيت! عمل جيد!

احصل على مساعدة

إذا واجهت أخطاء أثناء برنامج التعليمات البرمجية هذا ، فيرجى الإبلاغ عنها باستخدام رابط تعليقات الموقع في أسفل أي صفحة. أرسل أسئلة إلى مجموعة android-building .