قبل إصدار Android 7.0، كان نظام التشغيل Android يستخدم GNU Make حصريًا لوصف قواعد الإنشاء وتنفيذها. يتم استخدام نظام الإنشاء Make على نطاق واسع، ولكن مع حجم Android، أصبح بطيئًا وعرضة للأخطاء وغير قابل للتوسيع ويصعب اختباره. يوفّر نظام الإنشاء Soong المرونة اللازمة لعمليات إنشاء Android. نحن بصدد إجراء تغييرات كبيرة على نظام إنشاء Android، وسنتوقف عن استخدام نظام الإنشاء Make (Android.mk
) ونستبدله بنظام Soong (Android.bp
).
لهذا السبب، يُتوقّع من مطوّري المنصات التبديل من Make إلى Soong في أقرب وقت ممكن. يمكنك إرسال الأسئلة إلى مجموعة Android Building على Google لتلقّي الدعم.
ما هو Soong؟
تم طرح نظام التصميم Soong في Android 7.0 (Nougat) ليحل محل Make. تستفيد هذه الأداة من أداة استنساخ Kati GNU Make ومكوّن نظام الإنشاء Ninja لتسريع عمليات إنشاء Android.
يمكنك الاطّلاع على وصف نظام الإصدار Android Make في "مشروع Android المفتوح المصدر" (AOSP) للحصول على تعليمات عامة وتغييرات نظام الإصدار لمطوّري ملفات Android.mk للتعرّف على التعديلات اللازمة للانتقال من Make إلى Soong. راجِع الإدخالات ذات الصلة بعملية الإنشاء في المسرد للاطّلاع على تعريفات المصطلحات الأساسية، ومرجع وحدات Soong للاطّلاع على التفاصيل الكاملة.
مقارنة بين Make وSoong
في ما يلي مقارنة بين إعدادات Make وتنفيذ Soong للعملية نفسها في ملف إعداد Soong (ملف Blueprint أو .bp
).
إنشاء مثال
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libxmlrpc++
LOCAL_MODULE_HOST_OS := linux
LOCAL_RTTI_FLAG := -frtti
LOCAL_CPPFLAGS := -Wall -Werror -fexceptions
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/src
LOCAL_SRC_FILES := $(call \
all-cpp-files-under,src)
include $(BUILD_SHARED_LIBRARY)
مثال على Soong
cc_library_shared {
name: "libxmlrpc++",
rtti: true,
cppflags: [
"-Wall",
"-Werror",
"-fexceptions",
],
export_include_dirs: ["src"],
srcs: ["src/**/*.cpp"],
target: {
darwin: {
enabled: false,
},
},
}
للاطّلاع على أمثلة على إعدادات Soong الخاصة بالاختبار، يُرجى الرجوع إلى إعدادات البناء البسيطة.
إجراء الإحالة الناجحة الأساسي
عادةً ما يتم تحويل ملف Android.mk
إلى ملف Android.bp
باتّباع سير العمل العام هذا باستخدام أداة androidmk
المساعدة. بشكل عام، يتم اتّباع الخطوات التالية
في عملية التحويل.
إعداد بيئة الوحدة الطرفية وإنشاء أداة
androidmk
androidmk
هي أداة سطر أوامر تحلّل ملفAndroid.mk
وتحاول إخراج ملفAndroid.bp
مشابه. يمكنه تحويل معظم ملفاتAndroid.mk
إلىAndroid
.bp مع إجراء تغييرات يدوية قليلة أو بدون إجراء أي تغييرات.cd <root-of-the-tree> source build/envsetup.sh lunch <lunch-target> m androidmk
إنشاء تطبيق باستخدام
Android.mk
:sh m <module-name>
شغِّل أداة التحويل
androidmk
:sh androidmk <path-to-Android.mk>/Android.mk > <path-to-Android.bp>/Android.bp
عدِّل ملف
Android.bp
يدويًا:- التعامل مع أي تحذيرات تصدرها أداة
androidmk
- الاحتفاظ برأس حقوق الطبع والنشر أو إضافته في حال إضافة سنة جديدة، استخدِم السنة الحالية.
- التعامل مع أي تحذيرات تصدرها أداة
أزِل الملف
Android.mk
وأنشئ التطبيق باستخدام الملفAndroid.bp
.تحقَّق من صحة عملية التحويل من خلال مقارنة العناصر التي تم إنشاؤها أو إجراء اختبارات الوحدة والاختبارات الوظيفية.
احفظ التغييرات وحمِّلها للمراجعة.
لمزيد من المعلومات، يُرجى الرجوع إلى تنسيق ملف Android.bp.