ASfP-তে Rust সংক্রান্ত সহায়তা

এক নজরে

Rust হল একটি আধুনিক সিস্টেম প্রোগ্রামিং ভাষা যা পারফর্ম্যান্স ও নিরাপত্তার উপর ফোকাস করে, বিশেষ করে মেমরি নিরাপত্তা। গুরুত্বপূর্ণ সিস্টেম কম্পোনেন্ট ডেভেলপ করার জন্য C বা C++-এর তুলনায় আরও নিরাপদ বিকল্প হিসেবে Android ইকোসিস্টেমে Rust-এর গুরুত্ব ক্রমশ বাড়ছে। এটি উন্নত নিরাপত্তা ও স্থিতিশীলতা প্রদান করে।

এই পৃষ্ঠাটি আপনাকে Android Open Source Project (AOSP) প্রোজেক্টের মধ্যে Rust ডেভেলপমেন্টে সহায়তা করার জন্য Platform (ASfP)-এর জন্য Android Studio সেট-আপ করার ব্যাপারে গাইড করে।

পূর্বশর্ত

  • 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 ক্রেট তৈরি ও ইন্ডেক্স করতে পারে: ASfP > সিঙ্ক করুন > প্রোজেক্ট সিঙ্ক করুন বিকল্প বেছে নিন।

কনফিগারেশন যাচাই করুন

এইসব ধাপ সম্পূর্ণ করার পরে, নিম্নলিখিত ফলাফল যাচাই করুন:

  • rust-project.json আপনার প্রোজেক্ট ভিউতে সোর্স .iml ফাইলের নিচে দেখা যায়। এই ফাইলটি বিশ্লেষণের সময় Soong-এর মাধ্যমে তৈরি করা হয় এবং রেপোজিটরি রুটের সাথে সিমলিঙ্ক করা হয়, যা ল্যাঙ্গুয়েজ সার্ভিস প্রোটোকল (LSP)-এর ভাষা পরিষেবা প্রদান করার জন্য প্রয়োজনীয়। এই ফাইল সরাসরি এডিট করবেন না; পরিবর্তে, Soong-কে এটি ম্যানেজ করতে দিতে আবার সিঙ্ক করুন।

    আপনার .asfp-project কনফিগারেশনে other_languages-এর অধীনে rust আছে কিনা তা যাচাই করুন।

    rust-project.json তৈরি হয়েছে কিনা তা নিশ্চিত করুন।
    rust-project.json তৈরি করা হয়েছে কিনা তা নিশ্চিত করুন।
  • আপনার IDE নিম্নলিখিত Rust-নির্দিষ্ট ফিচার চালু করে।

Rust IDE-এর মূল ফিচার

  • বিল্ট-ইন LLDB ডিবাগিং ও ভেরিয়েবল ভিজুয়ালাইজার: রান করুন > Android প্রসেসে অ্যাটাচ করুন থেকে চলমান Rust ডিভাইস পরিষেবা ডিবাগ করুন। এছাড়াও, আপনি ASfP-এর বিল্ট-ইন LLDB ডিবাগার (lldb-dap) ব্যবহার করে Android.bp গটার আইকন থেকে সরাসরি rust_test বা rust_test_host টার্গেট লঞ্চ করতে পারবেন। এর সাথে String, Vec, HashMap ও Option-এর জন্য অটোমেটিক প্রিটি-প্রিন্টারও রয়েছে। আরও তথ্যের জন্য, Rust কোড ডিবাগ করা দেখুন।
  • কোড সম্পূর্ণ করা: Rust কোডের জন্য বুদ্ধিদীপ্ত সাজেশন পান, যার মধ্যে অন্যান্য মডিউল থেকে আইটেম অন্তর্ভুক্ত।

    Rust ক্রস-মডিউল কোড সম্পূর্ণ করার উদাহরণ
    কোড সম্পূর্ণ করার ফিচারে অন্য Rust মডিউল থেকে আইটেম সাজেস্ট করা হচ্ছে।

  • নেভিগেশন: আপনার প্রজেক্ট জুড়ে Rust সিম্বলের সংজ্ঞা ও ব্যবহার খুঁজে দেখুন।

    Rust কোড নেভিগেশনের উদাহরণ
    Rust প্রতীকের সংজ্ঞায় নেভিগেট করা।
    Rust find usages উদাহরণ
    Rust প্রতীকের সব ব্যবহার খুঁজে দেখা।

  • সহায়ক তথ্য: চিহ্নের ধরন ও ডকুমেন্টেশন দেখতে, সেটির উপরে পয়েন্টার নিয়ে যান।

    Rust টুলটিপের উদাহরণ
    অন্য মডিউল থেকে Rust প্রতীকের জন্য টাইপ সংক্রান্ত তথ্য দেখানো টুলটিপ।

  • ইনলে হিন্ট: এডিটরে সরাসরি টাইপের তথ্য ও অন্যান্য প্রাসঙ্গিক হিন্ট দেখুন।

    মরিচা পড়া ইনলে হিন্টের উদাহরণ
    কোডের মধ্যে টাইপ সংক্রান্ত তথ্য দেখানো ইনলে হিন্ট।

  • স্ট্রাকচার ভিউ: আপনার Rust ফাইলের স্ট্রাকচার নেভিগেট করতে স্ট্রাকচার টুল উইন্ডো (দেখুন > টুল উইন্ডো > স্ট্রাকচার) ব্যবহার করুন।

    Rust স্ট্রাকচার ভিউয়ের উদাহরণ
    স্ট্রাকচার টুল উইন্ডো, যা Rust ফাইলের আউটলাইন দেখাচ্ছে।

  • রিফ্যাক্টরিং: নিরাপদে প্রতীকের নাম পরিবর্তন করুন এবং সব ব্যবহার আপডেট করুন।

    Rust-এ প্রতীক রিফ্যাক্টর করার উদাহরণ
    Rust সিম্বলের নাম পরিবর্তন করা এবং এর সমস্ত রেফারেন্স আপডেট করা।

  • রিয়েল-টাইম বিশ্লেষণ: আপনার Rust কোডে হওয়া সমস্যা ও সতর্কতা সম্পর্কে তাৎক্ষণিক মতামত পান।

    Rust রিয়েল-টাইম কোড বিশ্লেষণ সংক্রান্ত উদাহরণ
    Rust কোডে IDE রিয়েল-টাইম সমস্যা ও সতর্কতা দেখাচ্ছে।