بناء أندرويد

اتبع هذه التعليمات لبدء إنشاء Android.

تهيئة البيئة

تهيئة البيئة مع envsetup.sh النصي:

source build/envsetup.sh

أو

. build/envsetup.sh

اطلع على السيناريو في منصة / بناء / envsetup.sh لأوصاف الأوامر ذات الصلة، بما في ذلك وجبة غداء لاختيار أهداف الجهاز و المقبلات لبناء التطبيقات المفككة، مثل التطبيق TV المرجعية .

تحتاج إلى إعادة إصدار هذا الأمر بعد كل repo sync لالتقاط أي تغييرات على هذا السيناريو. لاحظ أن استبدال source مع . (نقطة واحدة) تحفظ بضعة أحرف ، والنموذج المختصر أكثر شيوعًا في التوثيق.

و envsetup.sh الواردات النصي العديد من الأوامر التي تمكنك من العمل مع شفرة المصدر الروبوت، بما في ذلك الأوامر المستخدمة في هذه العملية.

للاطلاع على القائمة الكاملة للأوامر المتاحة ، قم بتشغيل:

hmm

اختيار الهدف

غداء

اختيار أي استهداف لبناء مع lunch . lunch product_name - build_variant يختار product_name كمنتج للبناء، و build_variant باعتبارها البديل لبناء ومخازن تلك التحديدات في البيئة يمكن ان تقرأ من قبل الدعاء لاحقة من m وأوامر أخرى مماثلة.

يمكن تمرير التكوين الدقيق كوسيطة. على سبيل المثال ، يشير الأمر التالي إلى بنية كاملة للمحاكي ، مع تمكين كل تصحيح الأخطاء:

lunch aosp_arm-eng

إذا تشغيل بدون وسائط، lunch يطالبك لاختيار الهدف من القائمة. انظر اختيار بناء جهاز لتكوينات بناء كافة الأجهزة الموجودة.

جميع الأهداف بناء تأخذ شكل BUILD-BUILDTYPE ، حيث BUILD هو الاسم الرمزى اشارة الى مجموعة ميزة معينة. BUILDTYPE هو أحد الخيارات التالية.

نوع البناء يستخدم
المستعمل وصول محدود؛ مناسبة للإنتاج
userdebug مثل المستخدم ولكن مع الوصول إلى الجذر وإمكانية التصحيح ؛ يفضل التصحيح
م تطوير التكوين مع أدوات تصحيح الأخطاء الإضافية

يجب أن تتصرف بنية userdebug بنفس سلوك بنية المستخدم ، مع القدرة على تمكين تصحيح أخطاء إضافي ينتهك عادةً نموذج أمان النظام الأساسي. هذا يجعل userdebug يصنع جيدًا لاختبار المستخدم مع إمكانات تشخيص أكبر. عند وضع مع بناء userdebug، اتبع الإرشادات userdebug .

يعطي التصميم الهندسي الأولوية للإنتاجية الهندسية للمهندسين الذين يعملون على النظام الأساسي. يقوم التصميم الهندسي بإيقاف تشغيل التحسينات المختلفة المستخدمة لتوفير تجربة مستخدم جيدة. وبخلاف ذلك ، فإن بنية eng لها سلوك مشابه لبناء المستخدم و userdebug حتى يتمكن مطورو الأجهزة من رؤية سلوك الكود في تلك البيئات.

لمزيد من المعلومات حول إنشاء لوتشغيلها على الأجهزة الفعلية، انظر أجهزة اللمعان .

تاباس

و tapas الأمر بتكوين لبناء التطبيقات المفككة. يختار التطبيقات الفردية التي سيتم إنشاؤها بواسطة نظام إنشاء Android. وخلافا ل lunch ، tapas لا يطلب المبنى من الصور للجهاز.

تشغيل tapas help لمزيد من المعلومات حول الأمر.

بناء الكود

هذا القسم هو ملخص سريع للتأكد من اكتمال الإعداد.

بناء كل شيء مع m . m يمكن التعامل مع المهام المتوازية مع -jN حجة. إذا كنت لا توفر -j حجة، وبناء نظام تلقائيا بتحديد العد مهمة موازية أنه يعتقد هو الأمثل للنظام الخاص بك.

m

كما هو موضح أعلاه، يمكنك بناء وحدات محددة بدلا من صورة جهاز كامل من خلال سرد أسمائهم في حياتك m سطر الأوامر. وبالإضافة إلى ذلك، m يوفر بعض pseudotargets لأغراض خاصة. بعض الأمثلة هي:

  • 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 لمعرفة ما pseudotargets البعض m يقدمها.

تشغيل البناء

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

وامض مع fastboot

وميض جهاز، استخدم fastboot ، التي ينبغي أن تدرج في المسار الخاص بك بعد بناء ناجحة. رؤية وميض جهاز للحصول على تعليمات.

محاكاة جهاز Android

تتم إضافة المحاكي إلى مسارك تلقائيًا من خلال عملية الإنشاء. لتشغيل المحاكي ، اكتب:

emulator

فهم بناء بصمات الأصابع

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

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

تضم بصمة الإصبع جميع تفاصيل تطبيق Android:

  • واجهات برمجة التطبيقات: Android وسلوكيات واجهة برمجة التطبيقات (API) اللينة
  • Core API وبعض سلوك واجهة المستخدم للنظام
  • متطلبات التوافق والأمن المحددة في العناية الواجبة بشأن العميل
  • مواصفات المنتج و الاستخدامات ميزة الإعداد التي تستخدمها التطبيقات إلى الأجهزة المستهدفة تلبية المتطلبات المتوقعة
  • تطبيقات مكونات الأجهزة والبرامج

رؤية CDD للحصول على التفاصيل كاملة و إضافة جهاز جديد للحصول على تعليمات حول إنشاء جهاز أندرويد جديد تماما.

استكشاف أخطاء البناء الشائعة وإصلاحها

إصدار جافا خاطئ

إذا كنت تحاول بناء نسخة من الروبوت وهذا يتعارض مع إصدار جافا، 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

افتراضيًا في معظم أنظمة Linux ، لا يمكن للمستخدمين غير المتميزين الوصول إلى منافذ USB. إذا كنت ترى خطأ إذن رفض، اتبع الإرشادات في تكوين وصول USB .

إذا ADB كان يعمل بالفعل ولا يمكن الاتصال بالجهاز بعد الحصول على تلك القواعد إعداد، يمكنك قتل مع adb kill-server . يتسبب هذا الأمر في إعادة تشغيل ADB بالتكوين الجديد.