ASfP में Rust के लिए सहायता

खास जानकारी

Rust, सिस्टम प्रोग्रामिंग की एक आधुनिक भाषा है. इसका मकसद परफ़ॉर्मेंस और सुरक्षा को बेहतर बनाना है. खास तौर पर, मेमोरी की सुरक्षा को. Android इकोसिस्टम में Rust की अहमियत बढ़ती जा रही है. ऐसा इसलिए, क्योंकि यह C/C++ का एक सुरक्षित विकल्प है. इसका इस्तेमाल, सिस्टम के अहम कॉम्पोनेंट डेवलप करने के लिए किया जाता है. इससे सुरक्षा और स्थिरता बेहतर होती है.

इस पेज पर, Android Open Source Project (AOSP) के प्रोजेक्ट में Rust डेवलपमेंट के लिए, Platform के लिए Android Studio (ASfP) सेट अप करने का तरीका बताया गया है.

ज़रूरी शर्तें

  • ASfP इंस्टॉल होना चाहिए: पक्का करें कि आपने ASfP इंस्टॉल कर लिया हो और वह काम कर रहा हो.
  • प्लेटफ़ॉर्म चेकआउट: आपके पास अपने कंप्यूटर पर, AOSP प्लैटफ़ॉर्म का काम करने वाला चेकआउट होना चाहिए.

Rust के लिए सहायता चालू करना

अपने ASfP प्रोजेक्ट में Rust के लिए सहायता चालू करने का तरीका यहां दिया गया है:

  1. Rust चालू करना

    • सेटअप विज़र्ड में नया प्रोजेक्ट बनाते समय, Rust के लिए दिए गए बॉक्स को चुनें:
    नए प्रोजेक्ट के सेटअप विज़र्ड में Rust चेकबॉक्स.
    नए प्रोजेक्ट के सेटअप विज़र्ड में, Rust के लिए दिया गया चेकबॉक्स.
    • मौजूदा प्रोजेक्ट के लिए, अपने .asfp-project कॉन्फ़िगरेशन पर जाएं और other_languages में rust जोड़ें:
        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 इसे मैनेज कर सके.

    आपको याद दिला दें कि अपने .asfp-project कॉन्फ़िगरेशन में, other_languages में rust मौजूद है या नहीं, इसकी पुष्टि करें.

    पक्का करें कि rust-project.json जनरेट हो गया हो.
    पक्का करें कि rust-project.json जनरेट हो गई हो.
  • आपको अपने IDE में, Rust से जुड़ी सुविधाएं (इनके बारे में नीचे बताया गया है) चालू दिखनी चाहिए.

Rust IDE की मुख्य सुविधाएं

  • कोड पूरा करने की सुविधा: Rust कोड के लिए, स्मार्ट सुझाव पाएं. इनमें अन्य मॉड्यूल के आइटम भी शामिल होते हैं.

    Rust में क्रॉस-मॉड्यूल कोड पूरा करने के सुझाव का उदाहरण
    कोड पूरा करने की सुविधा में, किसी दूसरे Rust मॉड्यूल के आइटम के सुझाव दिख रहे हैं.

  • नेविगेशन: अपने प्रोजेक्ट में, Rust सिंबल की परिभाषाओं पर तुरंत जाएं और उनके इस्तेमाल के तरीके ढूंढें.

    Rust कोड नेविगेशन का उदाहरण
    Rust सिंबल की परिभाषा पर नेविगेट करना.
    Rust में, इस्तेमाल की गई जगहों को ढूंढने का उदाहरण
    Rust सिंबल के सभी इस्तेमाल के तरीके ढूंढना.

  • टूलटिप: टाइप की जानकारी और दस्तावेज़ देखने के लिए, सिंबल पर कर्सर घुमाएं.

    Rust टूलटिप का उदाहरण
    टूलटिप में, किसी दूसरे मॉड्यूल के Rust सिंबल के टाइप की जानकारी दिख रही है.

  • इनले हिंट: एडिटर में सीधे तौर पर, टाइप की जानकारी और अन्य कॉन्टेक्चुअल हिंट देखें.

    Rust में इनले हिंट का उदाहरण
    इनले हिंट में, कोड में टाइप की जानकारी दिख रही है.

  • स्ट्रक्चर व्यू: स्ट्रक्चर टूल विंडो (व्यू > टूल विंडो > स्ट्रक्चर) का इस्तेमाल करके, अपनी Rust फ़ाइलों के स्ट्रक्चर पर नेविगेट करें.

    Rust स्ट्रक्चर व्यू का उदाहरण
    स्ट्रक्चर टूल विंडो में, Rust फ़ाइल का आउटलाइन दिख रहा है.

  • रीफ़ैक्टरिंग: सिंबल के नाम सुरक्षित तरीके से बदलें और उनके सभी इस्तेमाल के तरीके अपडेट करें.

    Rust में सिंबल का नाम बदलने से जुड़े रिफ़ैक्टरिंग का उदाहरण
    Rust सिंबल का नाम बदलना और उसके सभी रेफ़रंस अपडेट करना.

  • रीयल-टाइम विश्लेषण: अपने Rust कोड में गड़बड़ियों और चेतावनियों पर तुरंत फ़ीडबैक पाएं.

    Rust के रीयल-टाइम कोड के विश्लेषण का उदाहरण
    IDE में, Rust कोड में रीयल-टाइम में गड़बड़ियां और चेतावनियां दिख रही हैं.