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

खास जानकारी

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

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

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

  • 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 प्रोजेक्ट को पहचान रहा है: फ़ाइल > प्रोजेक्ट सिंक करें पर जाएं.

पुष्टि हो गई

यह तरीका अपनाने के बाद:

  • आपको अपने प्रोजेक्ट व्यू में (सोर्स iml के नीचे) rust-project.json दिखेगा. इस फ़ाइल को Soong, विश्लेषण के दौरान जनरेट करता है. साथ ही, इसे repo रूट से सिंबल लिंक किया जाता है. भाषा से जुड़ी सेवाएं देने के लिए, LSP के लिए यह ज़रूरी है. इस फ़ाइल में सीधे तौर पर बदलाव न करें. इसके बजाय, इसे फिर से सिंक करें, ताकि Soong इसे मैनेज कर सके.

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

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

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

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

    Rust में क्रॉस-मॉड्यूल कोड पूरा करने के सुझाव का उदाहरण
    Code completion suggesting items from a different Rust module.

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

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

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

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

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

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

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

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

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

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

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

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