التحويل من Make إلى Soong

قبل إصدار 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 المساعدة. بشكل عام، يتم اتّباع الخطوات التالية في عملية التحويل.

  1. إعداد بيئة الوحدة الطرفية وإنشاء أداة androidmk

    androidmk هي أداة سطر أوامر تحلّل ملف Android.mk وتحاول إخراج ملف Android.bp مشابه. يمكنه تحويل معظم ملفات Android.mk إلى Android.bp مع إجراء تغييرات يدوية قليلة أو بدون إجراء أي تغييرات.

    cd <root-of-the-tree>
    source build/envsetup.sh
    lunch <lunch-target>
    m androidmk
    
  2. إنشاء تطبيق باستخدام Android.mk: sh m <module-name>

  3. شغِّل أداة التحويل androidmk: sh androidmk <path-to-Android.mk>/Android.mk > <path-to-Android.bp>/Android.bp

  4. عدِّل ملف Android.bp يدويًا:

    • التعامل مع أي تحذيرات تصدرها أداة androidmk
    • الاحتفاظ برأس حقوق الطبع والنشر أو إضافته في حال إضافة سنة جديدة، استخدِم السنة الحالية.
  5. أزِل الملف Android.mk وأنشئ التطبيق باستخدام الملف Android.bp.

  6. تحقَّق من صحة عملية التحويل من خلال مقارنة العناصر التي تم إنشاؤها أو إجراء اختبارات الوحدة والاختبارات الوظيفية.

  7. احفظ التغييرات وحمِّلها للمراجعة.

لمزيد من المعلومات، يُرجى الرجوع إلى تنسيق ملف Android.bp.