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 आपके रस्ट क्रेट जनरेट और इंडेक्स कर सके: ASfP > सिंक करें > प्रोजेक्ट सिंक करें को चुनें.

अपने कॉन्फ़िगरेशन की पुष्टि करना

इन चरणों को पूरा करने के बाद, इन नतीजों की पुष्टि करें:

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

    पुष्टि करें कि .asfp-project कॉन्फ़िगरेशन में, other_languages के नीचे rust मौजूद है.

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

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

  • एलएलडीबी डीबगिंग और वैरिएबल विज़ुअलाइज़र की सुविधा पहले से मौजूद है: चलाएं > Android प्रोसेस से अटैच करें से, चल रही Rust डिवाइस सेवाओं को डीबग करें. ASfP के बिल्ट-इन LLDB डिबगर (lldb-dap) का इस्तेमाल करके, Android.bp गटर आइकॉन से सीधे rust_test या rust_test_host टारगेट लॉन्च किए जा सकते हैं. साथ ही, String, Vec, HashMap, और Option के लिए ऑटोमैटिक प्रीटी-प्रिंटर का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Rust कोड को डीबग करना लेख पढ़ें.
  • कोड पूरा करना: Rust कोड के लिए स्मार्ट सुझाव पाएं. इनमें अन्य मॉड्यूल के आइटम भी शामिल हैं.

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

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

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

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

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

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

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

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

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

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

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

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

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