قبل إصدار Android 7.0، كان Android يستخدم
GNU Make
حصريًا لوصف قواعد التصميم وتنفيذها. يحظى نظام التصميم Make بدعم واسع النطاق ويُستخدم على نطاق واسع، ولكن على نطاق Android، أصبح بطيئًا وعرضة للأخطاء وغير قابل للتوسيع ويصعب اختباره. يوفر نظام التصميم Soong المرونة المطلوبة لتصاميم Android. نحن نجري تغييرات كبيرة على نظام تصميم Android، ونلغي نظام التصميم Make (Android.mk) ونستبدله بنظام Soong (Android.bp).
لهذا السبب، يُتوقَّع من مطوّري المنصات الانتقال من Make إلى Soong في أقرب وقت ممكن. يمكنكم إرسال الأسئلة إلى الـ Android Building Google Group لتلقّي الدعم.
ما هو Soong؟
تم تقديم نظام التصميم Soong في Android 7.0 (إصدار Nougat) ليحل محل Make. ويستفيد من أداة Kati المستنسخة من GNU Make ومكوّن نظام التصميم Ninja build system لتسريع تصاميم Android.
يُرجى الاطّلاع على وصف نظام التصميم Android Make في مشروع Android مفتوح المصدر (AOSP) للحصول على تعليمات عامة و التغييرات في نظام التصميم لمطوّري ملفات Android.mk للتعرّف على التعديلات اللازمة للانتقال من Make إلى Soong. يُرجى الاطّلاع على الإدخالات ذات الصلة بالتصميم في المسرد للاطّلاع على تعريفات المصطلحات الرئيسية، وعلى مرجع وحدات Soong للحصول على التفاصيل الكاملة.
مقارنة بين Make وSoong
في ما يلي مقارنة بين إعداد Make وإعداد Soong الذي يحقّق النتيجة نفسها في ملف إعداد Soong (Blueprint أو .bp).
مثال على Make
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 لمزيد من المعلومات.