إتاحة استخدام لغة Rust في "منصة Android للسلامة"

نظرة عامة

‫Rust هي لغة برمجة حديثة للأنظمة تركّز على الأداء والأمان، خاصةً أمان الذاكرة. تزداد أهمية لغة Rust في منظومة Android المتكاملة كبديل أكثر أمانًا للغة C أو C++ عند تطوير المكوّنات المهمة في النظام، ما يوفّر أمانًا وثباتًا محسّنَين.

توضّح لك هذه الصفحة كيفية إعداد "استوديو Android للمنصة" (ASfP) لتوفير إمكانية تطوير تطبيقات باستخدام لغة Rust ضمن مشاريعك في "مشروع مفتوح المصدر لنظام Android" (AOSP).

المتطلبات الأساسية

  • تثبيت ASfP: تأكَّد من تثبيت ASfP وتشغيله.
  • إصدار AOSP: يجب أن يتوفّر لديك إصدار AOSP يعمل على جهازك.

تفعيل دعم Rust

في ما يلي الخطوات المفصّلة لتفعيل دعم Rust في مشروع ASfP:

  1. تفعيل Rust

    • عند إنشاء مشروع جديد في معالج الإعداد، ضَع علامة في مربّع الاختيار بجانب Rust:
    مربّع اختيار Rust في معالج إعداد مشروع جديد
    مربّع اختيار Rust في معالج إعداد المشاريع الجديدة
    • بالنسبة إلى المشاريع الحالية، افتح ملف الإعداد .asfp-project وأضِف rust إلى other_languages:
        other_languages:
          -   cpp
          -   rust
        ```
    
    <figure>
          <img src="/studio/platform/images/1-modify_asfp_project_languages.png" alt="Modifying the .asfp-project file to add rust to other_languages" class="screenshot">
          <figcaption>Adding Rust support in the <code>.asfp-project</code> file.</figcaption>
        </figure>
    
  1. مزامنة مشروعك

    ابدأ مزامنة المشروع لكي تنشئ بيئة التطوير المتكاملة (IDE) حِزم Rust وتفهرسها: انقر على ASfP > المزامنة > مزامنة المشروع.

التأكّد من الإعدادات

بعد إكمال هذه الخطوات، تحقَّق من النتائج التالية:

  • يظهر ملف rust-project.json في طريقة عرض المشروع ضمن ملف المصدر .iml. يتم إنشاء هذا الملف بواسطة Soong أثناء التحليل ويتم ربطه بشكل رمزي بجذر المستودع، وهو أمر ضروري لبروتوكول خادم اللغة (LSP) من أجل توفير خدمات اللغة. لا تعدِّل هذا الملف مباشرةً، بل أعِد المزامنة للسماح لأداة Soong بمعالجته.

    تأكَّد من توفّر rust ضمن other_languages في إعدادات .asfp-project.

    تأكَّد من إنشاء ملف rust-project.json.
    تأكَّد من إنشاء rust-project.json.
  • يتيح لك بيئة التطوير المتكاملة استخدام الميزات التالية الخاصة بلغة Rust.

الميزات الأساسية في بيئة تطوير Rust المتكاملة

  • أدوات تصحيح الأخطاء المضمّنة في LLDB وأدوات عرض المتغيرات: يمكنك تصحيح أخطاء خدمات Rust التي تعمل على الجهاز من خلال تشغيل > الربط بعملية Android. يمكنك أيضًا تشغيل استهدافات rust_test أو rust_test_host مباشرةً من رموز Android.bp في المزراب باستخدام برنامج تصحيح الأخطاء LLDB المضمّن في ASfP (lldb-dap)، مع أدوات عرض النص بتنسيق محسّن تلقائية لكل من String وVec وHashMap وOption. لمزيد من المعلومات، يُرجى الاطّلاع على تصحيح أخطاء رمز Rust.
  • إكمال الرموز: يمكنك الحصول على اقتراحات ذكية لرموز Rust، بما في ذلك عناصر من وحدات أخرى.

    مثال مُكتمل على إكمال الرموز البرمجية في Rust على مستوى الوحدات
    إكمال الرمز البرمجي من خلال اقتراح عناصر من وحدة Rust مختلفة

  • التنقّل: يمكنك الانتقال إلى التعريفات والعثور على استخدامات رموز Rust في مشروعك.

    مثال على التنقّل في رمز Rust
    الانتقال إلى تعريف رمز Rust
    مثال على العثور على مواضع استخدام Rust
    العثور على جميع استخدامات رمز Rust

  • التلميحات: مرِّر المؤشر فوق الرموز للاطّلاع على معلومات النوع والمستندات.

    مثال على تلميح في Rust
    تلميح يعرض معلومات النوع لرمز Rust من وحدة أخرى.

  • التلميحات المضمّنة: يمكنك الاطّلاع على معلومات النوع وتلميحات سياقية أخرى مباشرةً في المحرّر.

    مثال على تلميحات Rust المضمّنة
    تلميحات مضمّنة تعرض معلومات عن النوع ضمن الرمز

  • عرض البنية: يمكنك التنقّل في بنية ملفات Rust باستخدام نافذة الأداة البنية (عرض > نوافذ الأدوات > البنية).

    مثال على عرض بنية Rust
    نافذة الأدوات الخاصة بالبنية التي تعرض المخطط التفصيلي لملف Rust

  • إعادة تصميم التعليمات البرمجية: يمكنك إعادة تسمية الرموز بأمان وتعديل جميع استخداماتها.

    مثال على إعادة تسمية رمز في Rust
    إعادة تسمية رمز Rust وتعديل جميع مراجع هذا الرمز:

  • التحليل في الوقت الفعلي: احصل على ملاحظات فورية حول الأخطاء والتحذيرات في رمز Rust.

    مثال على تحليل الرموز البرمجية في الوقت الفعلي باستخدام Rust
    بيئة التطوير المتكاملة (IDE) تعرض الأخطاء والتحذيرات في الوقت الفعلي في رمز Rust البرمجي.