SDV ডেভেলপমেন্টের জন্য একটি IDE সেটআপ করুন

অ্যান্ড্রয়েড স্টুডিও ফর প্ল্যাটফর্ম (ASfP) হলো অ্যান্ড্রয়েড প্ল্যাটফর্ম ডেভেলপ করার জন্য প্রস্তাবিত ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE), যার মধ্যে অ্যান্ড্রয়েড অটোমোটিভ অপারেটিং সিস্টেম (AAOS) সফটওয়্যার ডিফাইন্ড ভেহিকেল (SDV) প্রোজেক্টও অন্তর্ভুক্ত। ASfP কোড এডিটিং, বিল্ড, ডিবাগিং এবং টেস্টিং-এর জন্য বিভিন্ন ধরনের টুল সরবরাহ করে, যার মধ্যে রয়েছে:

  • এআই-চালিত সহায়তা (জেমিনি)
  • রাস্ট, সি বা সি++, জাভা ভাষার সমর্থন
  • AAOS SDV ডেভেলপমেন্টের জন্য দরকারি ইন্টিগ্রেশন (উদাহরণস্বরূপ, কাটলফিশ এমুলেটর সাপোর্ট এবং VSIDL ল্যাঙ্গুয়েজ সাপোর্ট)

প্ল্যাটফর্মের জন্য অ্যান্ড্রয়েড স্টুডিও ইনস্টল করুন

ASfP ইনস্টল করতে:

  1. প্ল্যাটফর্মের জন্য অ্যান্ড্রয়েড স্টুডিও ডাউনলোড করুন।

  2. আপনার প্রয়োজন অনুযায়ী সবচেয়ে উপযুক্ত সংস্করণটি বেছে নিন:

    • স্থিতিশীল: সর্বশেষ প্রোডাকশন রিলিজ, যা অধিকাংশ ব্যবহারকারীর জন্য সুপারিশকৃত।
    • ক্যানারি: নতুনতম বৈশিষ্ট্যসহ আর্লি অ্যাক্সেস বিল্ড, কিন্তু তুলনামূলকভাবে কম স্থিতিশীল।
  3. ডাউনলোড পেজে দেওয়া ইনস্টলেশন নির্দেশাবলী অনুসরণ করুন।

একটি AAOS SDV প্রজেক্ট সেট আপ করুন

একটি AAOS SDV প্রকল্প সেট আপ করতে:

  1. নিশ্চিত করুন যে আপনার AAOS SDV সোর্স কোড রিপোজিটরিতে অ্যাক্সেস আছে এবং আপনি আপনার লোকাল চেকআউট ইনিশিয়ালাইজ ও সিঙ্ক করেছেন। সোর্স অ্যাক্সেস করা এবং রিপোজিটরি ইনিশিয়ালাইজ করার বিস্তারিত তথ্যের জন্য ‘ডাউনলোড, বিল্ড, এবং রান’ দেখুন।

  2. প্ল্যাটফর্মের জন্য অ্যান্ড্রয়েড স্টুডিও চালু করুন।

  3. আপনি যদি প্রথমবার ব্যবহারকারী হন, তাহলে ডেভেলপমেন্ট এনভায়রনমেন্ট কাস্টমাইজ করতে সেটআপ উইজার্ড অনুসরণ করুন।

  4. একটি নতুন প্রকল্প তৈরি করুন:

    • আপনার কোনো প্রজেক্ট খোলা না থাকলে, ওয়েলকাম স্ক্রিনে নিউ (New)- তে ক্লিক করুন।
    • আপনার যদি আগে থেকেই কোনো প্রজেক্ট খোলা থাকে, তাহলে ওপেন-এ ক্লিক করুন অথবা মেনু থেকে ASfP > প্রজেক্ট > ইমপোর্ট ASfP প্রজেক্ট নির্বাচন করুন।
  5. উইজার্ডে প্রজেক্ট কনফিগারেশনের বিবরণ পূরণ করুন:

    • রিপো চেকআউট: আপনার স্থানীয় AAOS SDV সোর্স কোড চেকআউটের রুটের অ্যাবসোলিউট পাথ নির্দিষ্ট করুন (উদাহরণস্বরূপ, /path/to/sdv_source )।

    • লাঞ্চ টার্গেট: কাটলফিশ-এ AAOS SDV ডেভেলপমেন্টের জন্য উপযুক্ত লাঞ্চ টার্গেটটি লিখুন, যেমন, sdv_core_cf-trunk_staging-userdebug । আরও উপলব্ধ টার্গেটের জন্য ‘একটি টার্গেট নির্বাচন করুন ’ দেখুন।

    • প্রজেক্ট সোর্স: আপনার প্রজেক্টে অন্তর্ভুক্ত করতে চান এমন প্রাথমিক ডিরেক্টরি বা মডিউলগুলোর তালিকা করুন অথবা ডিরেক্টরিগুলো নির্বাচন করার জন্য ফোল্ডার আইকনে ক্লিক করে ফাইল সিস্টেম ব্রাউজার খুলুন। অতিরিক্ত ডিরেক্টরি বা মডিউল নির্বাচন করলে IDE-এর ইন্ডেক্সিং এবং সার্চ পারফরম্যান্স প্রভাবিত হয়, তাই শুধুমাত্র প্রাসঙ্গিক ডিরেক্টরি বা মডিউলগুলো অন্তর্ভুক্ত করুন।

    • ভাষা সমর্থন: সমর্থিত ভাষা হিসেবে রাস্ট এবং সি++ নির্বাচন করুন।

    • প্রকল্পের নাম: আপনার প্রকল্পের একটি বর্ণনামূলক নাম দিন।

    • সেটআপ শেষ করুন: ফিনিশ-এ ক্লিক করুন। ASfP প্রোজেক্টের কাঠামো এবং .asfp-project কনফিগারেশন ফাইল তৈরি করবে।

ASfP স্বয়ংক্রিয়ভাবে একটি প্রাথমিক সিঙ্ক প্রক্রিয়া শুরু করে। ASfP আপনার সোর্স কোড বিশ্লেষণ করে, Soong বিল্ড সিস্টেম ব্যবহার করে ডিপেন্ডেন্সিগুলো সমাধান করে এবং কোড ইন্টেলিজেন্স ফিচারের জন্য প্রয়োজনীয় তথ্য তৈরি করে। এতে বেশ কিছুটা সময় লাগতে পারে, বিশেষ করে প্রথম সিঙ্কের ক্ষেত্রে।

প্রকল্পটি কাস্টমাইজ করুন

আপনার প্রজেক্ট রুটে থাকা .asfp-project ফাইলটি আরও কাস্টমাইজেশনের সুযোগ দেয়। আপনি এই ফাইলটি সম্পাদনা করে নিম্নলিখিত কাজগুলো করতে পারেন:

  • ডিরেক্টরি এবং মডিউল যোগ বা অপসারণ করুন।
  • অন্যান্য ভাষার জন্য সমর্থন সক্রিয় করুন, যেমন C++ বা Rust (ডিফল্ট হিসেবে Java এবং Kotlin থাকে)।
  • বিল্ড ফ্ল্যাগ কনফিগার করুন।

কনফিগারেশন ফাইলে পরিবর্তন করতে, ASfP > Project > Open Config নির্বাচন করুন। উপলব্ধ কনফিগারেশন বিকল্পগুলির জন্য Projects overview দেখুন।

ডিবাগ এবং পরীক্ষা

ASfP-তে কোড ডিবাগ ও টেস্ট করতে, ‘Debug platform code’ এবং ‘Test platform code with atest’ দেখুন।

উপলব্ধ ইন্টিগ্রেশন

AAOS SDV ডেভেলপমেন্টের জন্য ASfP-এর সাথে কিছু দরকারি ইন্টিগ্রেশন রয়েছে, যার মধ্যে VSIDL-এ Cuttlefish এবং Language Server Protocol (LSP)-এর সাপোর্ট অন্তর্ভুক্ত।

কাটলফিশ প্লাগইন

কাটলফিশ প্লাগইনটি ব্যবহারকারীদের সরাসরি ASfP থেকে স্থানীয় কাটলফিশ ডিভাইস তৈরি ও চালানোর সুযোগ দেয়।

প্লাগইন ইনস্টল করুন

কাটলফিশ প্লাগইনটি ASfP-এর সাথে আগে থেকেই ইনস্টল করা থাকে এবং এর জন্য কোনো সেটআপের প্রয়োজন হয় না। প্লাগইনটি ব্যবহারের জন্য ডিভাইসে কাটলফিশ টুলস ইনস্টল করা থাকা আবশ্যক। প্রয়োজনে কাটলফিশ টুলস ইনস্টল করার জন্য নির্দেশাবলী অনুসরণ করুন।

কাটলফিশ ডিভাইস তৈরি করুন

একটি নতুন ডিভাইস তৈরি করতে:

  1. Tools > Device Manager নির্বাচন করে অথবা ডান প্যানেলে Running Devices আইকনে ক্লিক করে ডিভাইস ম্যানেজার টুল উইন্ডোটি খুলুন, যদি ডিভাইস ম্যানেজারটি সেখানে আগে থেকেই পিন করা থাকে।

  2. + আইকনে ক্লিক করুন এবং Create Cuttlefish Device নির্বাচন করুন।

  3. নতুন কাটলফিশ ডিভাইসটি কনফিগার করুন। আপনি দুইভাবে কাটলফিশ ডিভাইস তৈরি করতে পারেন:

    • স্থানীয় অ্যান্ড্রয়েড সোর্স ট্রি থেকে চেকআউট করুন:

      • আপনার লঞ্চ কনফিগারেশনের সাথে সঙ্গতিপূর্ণ বিল্ট টার্গেটের পাথটি নির্বাচন করুন (আরও বিস্তারিত জানার জন্য 'টার্গেট নির্বাচন করুন ' দেখুন)।
      • হোস্ট পাথ নির্বাচন করুন।
      • ঐচ্ছিকভাবে, উপলব্ধ ডিভাইস কনফিগারেশনগুলো নির্বাচন করুন অথবা ডিফল্ট কনফিগারেশনের জন্য 'None' নির্বাচন করুন।
    • ক্যানোনিকাল কনফিগারেশন থেকে (একক কনফিগারেশন থেকে একাধিক ডিভাইস তৈরি করতে এই বিকল্পটি ব্যবহার করুন):

      • ডিভাইস কনফিগারেশনের পথটি নির্বাচন করুন।
      • ঐচ্ছিকভাবে, কনফিগারেশন অপশনগুলো ওভাররাইড করতে যেকোনো ওভাররাইড ফ্ল্যাগ প্রদান করুন।
  4. কাটলফিশ ডিভাইসটি তৈরি হয়ে ডিভাইস ম্যানেজারের চলমান ডিভাইসগুলোর তালিকায় যুক্ত হওয়া পর্যন্ত অপেক্ষা করুন।

  5. রানিং ডিভাইস মেনু থেকে কাটলফিশ ডিভাইসটি নির্বাচন করুন।

ডিভাইস ম্যানেজারে ডিভাইসের পাশে থাকা স্টপ বা স্টার্ট আইকনে ক্লিক করে আপনি স্বতন্ত্র কাটলফিশ ডিভাইসগুলো চালু বা বন্ধ করতে পারেন।

কাটলফিশ ডিভাইস পৃষ্ঠা অ্যাক্সেস করুন

কাটলফিশ প্লাগইনটিতে একটি টুল উইন্ডো আছে, যা কাটলফিশ ডিভাইস পেজটি প্রদর্শন করে, যেখানে আপনি স্ক্রিন মিররিং ফিচারগুলো ব্যবহার করতে পারবেন।

কাটলফিশ টুল উইন্ডোটি খুলতে, বাম পাশের প্যানেলে থাকা ... আইকনে ক্লিক করুন এবং কাটলফিশ নির্বাচন করুন। বিকল্পভাবে, আপনি হেল্প > ফাইন্ড অ্যাকশন মেনু আইটেমে কাটলফিশ অনুসন্ধান করতে পারেন।

VSIDL-এ ল্যাঙ্গুয়েজ সার্ভার প্রোটোকল

VSIDL-এ, LSP একগুচ্ছ সমৃদ্ধ IDE বৈশিষ্ট্য প্রদান করে, যা ASfP-তে VSIDL ফাইল (যার এক্সটেনশন .vsidl ) নিয়ে কাজ করার সময় আপনার ডেভেলপমেন্ট কর্মপ্রবাহকে উন্নত করে।

শব্দার্থিক সিনট্যাক্স হাইলাইটিং

এলএসপি সার্ভার ভিএসআইডিএল ফাইলগুলির জন্য সিনট্যাক্স হাইলাইটিং প্রদান করে।

  • এর কাজ হলো কীওয়ার্ড ( service_bundle , publisher ), ফিল্ড ( package: message: :) এবং লিটারেল হাইলাইট করা।

  • কীভাবে চেষ্টা করবেন: যেকোনো একটি VSIDL ফাইল খুলুন। স্ট্রাকচারাল কীওয়ার্ড এবং ইউজার-ডিফাইন্ড আইডেন্টিফায়ারকে আলাদা করার জন্য ফাইলটিতে বিভিন্ন রঙের কোড ব্যবহার করা হয়েছে।

লাইভ ডায়াগনস্টিকস (ত্রুটি এবং সতর্কতা)

এলএসপি সার্ভার ক্রমাগত ফাইল যাচাই করে এবং রিয়েল টাইমে সমস্যাগুলো সম্পর্কে রিপোর্ট করে।

  • এর কাজ হলো সম্পূর্ণ ক্যাটালগ এবং এর নির্ভরতাগুলো জুড়ে সিনট্যাক্স ত্রুটি, অবৈধ টাইপ রেফারেন্স এবং অন্যান্য ত্রুটি শনাক্ত করা।

  • কীভাবে চেষ্টা করবেন: কোনো বার্তার নামে একটি টাইপো করুন (উদাহরণস্বরূপ, TiiirePressure )। ভুল বানানের নিচে একটি লাল আঁকাবাঁকা রেখা দেখা যাবে। ত্রুটির বার্তাটি দেখতে শব্দটির উপর মাউস রাখুন, অথবা IDE-র নিচের Problems টুল উইন্ডোতে সম্পূর্ণ তালিকাটি দেখুন।

আপনার VSIDL ক্যাটালগের বিভিন্ন অংশের মধ্যেকার সম্পর্ক অন্বেষণ করতে আপনি নেভিগেশন এবং ইন্টেলিজেন্স ফিচারগুলো ব্যবহার করতে পারেন।

  • স্বয়ংক্রিয় সমাপ্তি: কীওয়ার্ড, প্রোটোবাফ মেসেজ, আরপিসি সার্ভিস, টপিক এবং চ্যানেলের সাজেশন দেখতে কন্ট্রোল + স্পেস চাপুন। কীওয়ার্ড সাজেশনের সাথে সরাসরি সমাপ্তি মেনুতে সেগুলোর উদ্দেশ্যের সংক্ষিপ্ত ও সহায়ক ব্যাখ্যা অন্তর্ভুক্ত থাকে। আপনার কাজের গতি বাড়ানোর জন্য এলএসপি publisher বা server মতো ব্লকের জন্য স্মার্ট স্নিপেটও প্রদান করে।

  • কোনো ডেফিনিশনে যান: কোনো মেসেজ, সার্ভিস, টপিক বা চ্যানেল রেফারেন্সের উপর কন্ট্রোল চেপে ধরে ক্লিক করলে (অথবা কন্ট্রোল+বি চাপলে) সরাসরি তার সোর্স ডেফিনিশনে চলে যেতে পারবেন, এমনকি যদি সেটি অন্য কোনো VSIDL বা প্রোটোবাফ ফাইলে থাকে।

  • তথ্যসূত্র খুঁজুন: publisher , subscriber , server , বা client কীওয়ার্ডের উপর আপনার কার্সার রাখুন এবং এর সমস্ত উপস্থিতি খুঁজে পেতে Alt+Shift+F7 চাপুন।

  • কার্সারটি কোনো টাইপ বা প্রপার্টির উপর নিয়ে গেলে তথ্য পাওয়া যায়: আপনার কার্সারটি কোনো টাইপ বা প্রপার্টির উপর নিয়ে যান (অথবা Control+Q চাপুন)। একটি টুলটিপ প্রদর্শিত হবে, যেখানে এর ডকুমেন্টেশনের মন্তব্যগুলো (যদি থাকে) দেখানো হবে।

কাঠামোগত বৈশিষ্ট্য

LSP সার্ভার আপনাকে বড় VSIDL ফাইলগুলির কাঠামো পরিচালনা ও নেভিগেট করতে সাহায্য করে:

  • ডকুমেন্ট সিম্বল (আউটলাইন): দ্রুত নেভিগেশন টুলটিপের জন্য Control+F12 চাপুন, অথবা ফাইলের সমস্ত বান্ডেল এবং ইউনিটের ট্রি ভিউ দেখতে স্ট্রাকচার টুল উইন্ডো ( Control+Alt+7 ) খুলুন।

  • রেঞ্জ সংকুচিত করা: service_bundle বা mapping definition-এর মতো বড় লজিক্যাল ব্লকগুলোকে সংকুচিত বা প্রসারিত করতে গাটারে (লাইন নম্বরের পাশে) থাকা > বা V আইকনগুলোতে ক্লিক করুন।

  • ডকুমেন্ট ফরম্যাটিং: ফাইলটিকে স্বয়ংক্রিয়ভাবে রিফরম্যাট করতে Control+Alt+L চাপুন, যা সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন এবং স্পেসিং তৈরি করবে।