Android Studio for Platform (ASfP)-এ একটি প্রোজেক্টে এমন সবকিছু থাকে যা আপনার AOSP কোডবেসের জন্য আপনার ওয়ার্কস্পেসকে সংজ্ঞায়িত করে, সোর্স কোড এবং অ্যাসেট থেকে শুরু করে টেস্ট কোড এবং Soong বিল্ড কনফিগারেশন পর্যন্ত।
IntelliJ Workspace মডেলের উপর ভিত্তি করে, ASfP বড় প্ল্যাটফর্ম প্রোজেক্ট তৈরি করে
এবং স্টার্ট-আপে ক্যাশে করা স্ন্যাপশট থেকে আপনার প্রোজেক্ট মডেল রিস্টোর করে। out/ ডিরেক্টরির
মধ্যে থাকা কন্টেন্ট এবং জেনারেট করা gen ফাইল প্রোজেক্ট সার্চ স্কোপ থেকে বাদ দেওয়া হয়েছে
যাতে সিম্বল ও ফাইল নেভিগেশন দ্রুত করা যায়।
প্রোজেক্ট কনফিগারেশন (.asfp-project)
আপনার প্রোজেক্ট ডিরেক্টরির রুটে অবস্থিত .asfp-project YAML ফাইল,
ASfP প্রোজেক্ট কনফিগারেশন নিয়ন্ত্রণ করে। এই ফাইলটি আপনার ওয়ার্কস্পেসে কোন ডিরেক্টরি,
Soong মডিউল, ভাষা এবং বিল্ড ফ্ল্যাগ অন্তর্ভুক্ত করা হয়েছে তা নির্ধারণ করে।
আপনি নিম্নলিখিত বিকল্পগুলির মধ্যে যেকোনও একটি ব্যবহার করে যেকোনও সময় আপনার প্রোজেক্ট কনফিগারেশন খুলতে পারেন:
- প্রধান মেনু থেকে ASfP > প্রোজেক্ট > কনফিগারেশন খুলুন বিকল্প বেছে নিন।
- প্রোজেক্ট টুল উইন্ডোর রুটে
.asfp-project-এ ডবল ক্লিক করুন। - Soong টুল উইন্ডো টুলবারে কনফিগারেশন খুলুন বিকল্পে ক্লিক করুন।
.asfp-project এডিট করার পরে, আপনার করা পরিবর্তন কার্যকর করতে প্রোজেক্ট সিঙ্ক
করুন।
শেয়ার করা যায় এমন প্রোজেক্ট টেমপ্লেট (এক্সপোর্ট ও ইমপোর্ট)
একই সাবসিস্টেমে (যেমন SystemUI, সেটিংস, SurfaceFlinger,
বা অটোমোটিভ) কাজ করা টিমগুলি টেমপ্লেট হিসেবে একটি স্ট্যান্ডার্ড .asfp-project কনফিগারেশন শেয়ার করতে পারে:
টেমপ্লেটে এক্সপোর্ট করুন: শেয়ার করা যায় এমন টেমপ্লেট ফাইল সেভ করতে,
.asfp-projectএডিটর ট্যাবে ডানদিকের বোতামে ক্লিক করুন অথবা ASfP > প্রোজেক্ট > টেমপ্লেটে কনফিগারেশন এক্সপোর্ট করুন বিকল্প বেছে নিন।
টেমপ্লেট থেকে ইমপোর্ট করুন: প্রোজেক্ট সেট-আপ উইজার্ড-এ নতুন প্রোজেক্ট তৈরি করার সময়, টেমপ্লেট থেকে ইমপোর্ট করুন বিকল্প বেছে নিন এবং ডিরেক্টরি, মডিউল ও বিল্ড সেটিংস আগে থেকে পূরণ করতে শেয়ার করা
.asfp-projectYAML ফাইল বেছে নিন।
কনফিগারেশন প্যারামিটার
.asfp-project ফাইলে নিম্নলিখিত প্যারামিটার কাজ করে:
repo
প্রয়োজনীয়: আপনার Android প্ল্যাটফর্ম রিপোজিটরি চেকআউট রুটের অ্যাবসোলিউট পাথ।
repo: /path/to/aosp
lunch
প্রয়োজনীয়: আপনার প্রোজেক্টের সাথে সম্পর্কিত লঞ্চ টার্গেট। সব Soong বিল্ড, সিঙ্ক ও ডিপ্লয় অ্যাকশনের জন্য ব্যবহার করা হয়।
lunch: aosp_cf_x86_64_phone-aosp_current-userdebug
directories
ঐচ্ছিক: আপনার প্রোজেক্টে অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য ডিরেক্টরি (আপেক্ষিক
repo রুট)। সিমলিঙ্ক করা ডিরেক্টরি ও সোর্স রুট কাজ করে।
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
ঐচ্ছিক: আপনার প্রোজেক্টে অন্তর্ভুক্ত করতে বা বাদ দিতে নির্দিষ্ট Soong মডিউল।
directories-এর সাথে একসাথে কাজ করে। সম্পূর্ণ ও সংক্ষিপ্ত, দুই ধরনের মডিউলের নামই
কাজ করে।
modules:
include:
- SystemUI
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
ঐচ্ছিক: ASfP-এর অটোমেটিক টেস্ট সোর্স হিউরিস্টিক ম্যানুয়ালি ওভাররাইড করার প্রয়োজন হলে, টেস্ট সোর্স রুট হিসেবে চিহ্নিত করার জন্য আপেক্ষিক পাথ।
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
ঐচ্ছিক: Java, Kotlin ও Android.bp সাপোর্ট ডিফল্ট হিসেবে চালু থাকে। C ও C++-এর জন্য
cpp অথবা Rust ভাষার জন্য rust যোগ করুন:
other_languages:
- cpp
- rust
build_config
ঐচ্ছিক: IDE-এর মাধ্যমে ট্রিগার করা Soong বিল্ড ইনভোকেশনে পাস করা কাস্টম ফ্ল্যাগ বা এনভায়রনমেন্ট ভেরিয়েবল (সিঙ্ক, গাটার বিল্ড ও রান কনফিগারেশন সহ):
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
সিঙ্ক মোড ও Soong টুল উইন্ডো
আপনার ওয়ার্কফ্লোর প্রয়োজনীয়তার উপর নির্ভর করে ASfP আপনার IDE প্রোজেক্টকে AOSP চেকআউটের সাথে সিঙ্ক করার একাধিক উপায় প্রদান করে। ASfP > সিঙ্ক করুন মেনু বা Soong টুল উইন্ডো থেকে এইসব অ্যাকশন অ্যাক্সেস করুন:
- প্রোজেক্ট সিঙ্ক করা: আপনার কনফিগার করা ডিরেক্টরি ও মডিউল বিশ্লেষণ করে এবং IDE ইনডেক্সিং ও ডিপেন্ডেন্সি আপডেট করে।
- আংশিক সিঙ্ক: মডিউল বা ডিরেক্টরির শুধু টার্গেট করা সাবসেট সিঙ্ক করে, এর ফলে ট্রিয়ের লোকাল অংশে কাজ করার সময় সময় বাঁচে।
- নো-বিল্ড সিঙ্ক: Soong বিল্ড স্টেপ রান না করেই IDE প্রোজেক্ট স্ট্রাকচার ও সোর্স রুট রিফ্রেশ করে—আপনি সোর্স ফাইল যোগ বা সরানোর পরে অথবা টার্মিনাল থেকে আগে থেকেই বিল্ড করা থাকলে এটি উপযোগী।
- সিঙ্ক ও সম্পূর্ণ বিল্ড: একটি ধাপে প্রজেক্ট সিঙ্ক্রোনাইজেশনকে সম্পূর্ণ Soong বিল্ডের সাথে একত্রিত করে।
Soong টুল উইন্ডো (View > Tool Windows > Soong) প্রতিটি সিঙ্ক টাস্ক নোড, কুইক-অ্যাক্সেস বিল্ড বোতাম এবং Soong কমান্ড এক্সিকিউশনের জন্য রিয়েল-টাইম স্ট্যাটাস ইন্ডিকেটর দেখায়।
এডিটরে Android.bp তৈরি, ডেপ্লয়মেন্ট ও নেভিগেশন
ASfP Android.bp ফাইলের জন্য ইন্টিগ্রেটেড এডিটর সাপোর্ট প্রদান করে:
গাটার থেকে টার্গেট তৈরি, রান ও ডিবাগ করুন
দুটি
গটার আইকন থেকে টার্গেট তৈরি বা লঞ্চ করতে, আপনার প্রোজেক্টে যেকোনও Android.bp ফাইল খুলুন:
- বিল্ড আইকন (নাম দেওয়া সব মডিউল): প্রতিটি নাম দেওয়া মডিউলে (
cc_library_shared,java_library,rust_binary,android_app, এবং টেস্ট টার্গেট)name:-এর পাশে দেখা যায়, যাতে সেই Soong টার্গেট ( "<module>" বিল্ড করুন) বিল্ড করা যায়। - রান বা ডিবাগ আইকন (
*_test,*_test_hostওandroid_app): কোনও মডিউল রান বা ডিবাগ করতে, টেস্ট মডিউল বাandroid_appঘোষণার পাশে থাকা রান করুন বিকল্পে ক্লিক করুন।android_testমডিউলatest-এর মাধ্যমে ডিবাগ করা হয় এবংcc_test*ওrust_test*মডিউল বিল্ট-ইন LLDB-এর অধীনে লঞ্চ করা হয়।

প্রাসঙ্গিক ডিপ্লয় ও ফ্ল্যাশ রান কনফিগারেশন
Android.bp ফাইলে ডিপ্লয় করা যায় এমন মডিউলের জন্য, আপনি নিম্নলিখিত ফিচার সহ গাটার বা ডানদিকের বোতামে ক্লিক করে
সংশ্লিষ্ট মেনু থেকে প্রাসঙ্গিক Soong Deploy রান কনফিগারেশন
তৈরি ও লঞ্চ করতে পারবেন:
- ডিপ্লয় করার পদ্ধতি:
adb, কাস্টম শেল স্ক্রিপ্ট,adevice, অথবাflashallব্যবহার করে ডিপ্লয় করুন। - প্রি-রান Soong বিল্ড হুক: আপনার কানেক্ট করা ডিভাইস বা Cuttlefish ভার্চুয়াল ডিভাইসে ডেপ্লয় করার আগে টার্গেট Soong মডিউল অটোমেটিক বিল্ড করুন।

সোর্স কোড ও Android.bp-এর মধ্যে পরিবর্তন করুন
প্রোজেক্ট টুল উইন্ডো, এডিটর ট্যাব বা এডিটর সংশ্লিষ্ট মেনুর যেকোনও সোর্স ফাইল বা ডিরেক্টরি থেকে, ডানদিকের বোতামে ক্লিক করুন এবং সংশ্লিষ্ট Android.bp ফাইল খুলুন বিকল্প বেছে নিন। ASfP Android.bp মডিউল ডিক্লারেশন খুঁজে বের করে হাইলাইট করে যা
সেই ফাইল কম্পাইল করে, defaults ব্লক, ওয়াইল্ডকার্ড srcs প্যাটার্ন এবং
সিমলিঙ্ক সমাধান করে।

Android.bp এডিটর ইন্টেলিজেন্স ও টুলটিপ ডকুমেন্টেশন
- ক্রস-ফাইল নেভিগেশন এবং ব্যবহারের সংখ্যা: যেকোনও মডিউল রেফারেন্স,
srcsফাইল বাsoong_config_module_type-এ কন্ট্রোল-ক্লিক করে সেটির ডিক্লারেশনে জাম্প করুন। ক্লিক করা যায় এমনN Usagesইনলে ইঙ্গিত মডিউলের নামের পাশে এবং শেয়ার করাsrcsটার্গেটে দেখা যায় এবং রেফারেন্স না দেওয়া লাইব্রেরি মডিউল ভিজ্যুয়ালি আবছা হয়ে যায়। - Soong প্রপার্টি ডকুমেন্টেশন টুলটিপ:
Android.bpফাইলে যেকোনও প্রপার্টির উপরে পয়েন্টারটি হোল্ড করুন—এর মধ্যেtarget,archওmultilib-এর অধীনে থাকা আর্কিটেকচার বা টার্গেট-স্কোপ করা প্রপার্টি অন্তর্ভুক্ত—এর Soong টাইপ সিগনেচার ও ডকুমেন্টেশন ইনলাইন দেখুন।

Cuttlefish ভার্চুয়াল ডিভাইস ম্যানেজমেন্ট ও মাল্টি-স্ক্রিন মিররিং
ASfP-তে প্ল্যাটফর্মের জন্য একটি বিল্ট-ইন Cuttlefish প্লাগ-ইন অন্তর্ভুক্ত রয়েছে, Android Automotive OS (AAOS), এবং সফ্টওয়্যার-ডিফাইন্ড ভেহিকল (SDV) ডেভেলপাররা স্থানীয়ভাবে তৈরি Cuttlefish ভার্চুয়াল ডিভাইসের সাথে কাজ করে:
- ডিভাইস ম্যানেজারে মাল্টিডিভাইস সেট-আপ: আপনার লোকাল AOSP চেকআউট (
$ANDROID_BUILD_TOPএবং$ANDROID_PRODUCT_OUT) ব্যবহার করে ডিভাইস ম্যানেজারে মাল্টিডিভাইস Cuttlefish ভার্চুয়াল ডিভাইস সেট-আপ তৈরি ও ম্যানেজ করুন। - Cuttlefish টুল উইন্ডোতে মাল্টি-স্ক্রিন ডিসপ্লে মিররিং: বিল্ট-ইন Cuttlefish মাল্টি-স্ক্রিন ডিসপ্লে মিররিংয়ের জন্য View > Tool Windows > Cuttlefish খুলুন যাতে আপনি AAOS এবং SDV ওয়ার্কফ্লো-এর জন্য একসাথে একাধিক অটোমোটিভ ডিসপ্লে দেখতে ও ইন্টার্যাক্ট করতে পারেন।
