اتبع هذه التعليمات لبدء إنشاء 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 بالتكوين الجديد.