إتاحة استخدام لغة 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، وذلك من خلال الانتقال إلى ملف > مزامنة المشروع.

التحقّق من النجاح

بعد إكمال هذه الخطوات:

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

    للتذكير، تحقَّق جيدًا من توفّر rust ضمن other_languages في ملف إعداد .asfp-project.

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

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

  • إكمال الرمز: يمكنك الحصول على اقتراحات ذكية لرموز Rust، بما في ذلك العناصر من الوحدات الأخرى.

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

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

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

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

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

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

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

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

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

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

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

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

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