প্রকল্প ওভারভিউ

অ্যান্ড্রয়েড স্টুডিও ফর প্ল্যাটফর্ম (ASfP)-এর একটি প্রজেক্টে আপনার AOSP কোডবেসের ওয়ার্কস্পেস নির্ধারণকারী সবকিছু থাকে, যেমন সোর্স কোড ও অ্যাসেট থেকে শুরু করে টেস্ট কোড ও বিল্ড কনফিগারেশন পর্যন্ত।

যখন আপনি একটি নতুন প্রজেক্ট শুরু করেন, ASfP আপনার সমস্ত ফাইলের জন্য প্রয়োজনীয় কাঠামো তৈরি করে এবং সেগুলোকে প্রজেক্ট উইন্ডোতে দৃশ্যমান করে তোলে। উইন্ডোটি খুলতে, ভিউ > টুল উইন্ডোজ > প্রজেক্ট নির্বাচন করুন।

এই পৃষ্ঠাটি আপনার প্রজেক্ট কনফিগারেশনের মূল উপাদানগুলোর একটি সংক্ষিপ্ত বিবরণ প্রদান করে।

প্রকল্প কনফিগারেশন ( .asfp-project )

ASfP প্রজেক্ট কনফিগারেশন আপনার প্রজেক্ট ডিরেক্টরির রুটে অবস্থিত .asfp-project ফাইল দ্বারা নিয়ন্ত্রিত হয়। আপনার প্রজেক্টে কী অন্তর্ভুক্ত হবে এবং গুরুত্বপূর্ণ ফিচারগুলো কীভাবে কাজ করবে, তা নিয়ন্ত্রণ করার জন্য এই YAML ফাইলটি অপরিহার্য। আপনি প্রধান মেনু থেকে ASfP > Project > Open Config ব্যবহার করে অথবা প্রজেক্ট ভিউতে এটি খুঁজে নিয়ে খুলতে পারেন।

প্রজেক্ট তৈরির সময়, ব্যবহারকারীর দেওয়া স্পেসিফিকেশনের উপর ভিত্তি করে একটি কনফিগ তৈরি করা হয়। প্রজেক্টের স্পেসিফিকেশন পরিবর্তন করার জন্য, যেমন প্রজেক্ট ডিরেক্টরি বা মডিউল আপডেট করার জন্য, কনফিগের সমস্ত প্যারামিটার যেকোনো সময় এডিট করা যেতে পারে। পরিবর্তনগুলো প্রতিফলিত হওয়ার জন্য এরপর একটি সিঙ্ক করা প্রয়োজন।

কনফিগারেশন প্যারামিটার

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

repo

প্রয়োজনীয়

আপনার অ্যান্ড্রয়েড প্ল্যাটফর্ম রিপোজিটরি রুটের একটি সম্পূর্ণ পাথ।

repo: /path/to/aosp

lunch

প্রয়োজনীয়

লাঞ্চ টার্গেট যা আপনার প্রোজেক্টের সাথে যুক্ত করা হবে। এটি সিঙ্ক এবং প্রাসঙ্গিক রান কনফিগারেশন সহ সমস্ত সুং বিল্ড অ্যাকশনের জন্য ব্যবহৃত হয়।

lunch: your-product-variant-userdebug

directories

ঐচ্ছিক

আপনার প্রজেক্টে অন্তর্ভুক্ত বা বর্জন করার জন্য ডিরেক্টরিসমূহ। এগুলো repo রুটের সাপেক্ষে রিলেটিভ পাথ হতে হবে।

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

ঐচ্ছিক

আপনার প্রোজেক্টে অন্তর্ভুক্ত বা বর্জন করার জন্য মডিউলসমূহ। এগুলো পূর্বে নির্দিষ্ট করা directories সাথে একযোগে কাজ করে। পূর্ণ এবং সংক্ষিপ্ত উভয় নামই সমর্থিত।

modules:
  include:
    -   SystemUIGoogle
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

ঐচ্ছিক

ASfP প্রোডাকশন এবং টেস্ট সোর্সের মধ্যে পার্থক্য করার চেষ্টা করে, কিন্তু কিছু ক্ষেত্রে, আপনাকে টেস্ট সোর্সগুলো স্পষ্টভাবে চিহ্নিত করতে হতে পারে। এগুলোকে repo রুটের সাপেক্ষে রিলেটিভ পাথ হিসেবে প্রদান করুন। যে কোনো সোর্স রুট যা নির্দিষ্ট পাথ(গুলো)র সাবডিরেক্টরি, সেগুলোকে টেস্ট হিসেবে চিহ্নিত করা হবে।

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

ঐচ্ছিক

ডিফল্টরূপে জাভা সাপোর্ট অন্তর্ভুক্ত রয়েছে। আপনি অন্যান্য ভাষার জন্য সাপোর্ট যোগ করতে পারেন। ASfP এছাড়াও C/C++ ( cpp ) এবং Rust ( rust ) সাপোর্ট করে।

other_languages:
  -   cpp
  -   rust

build_config

ঐচ্ছিক

এই প্যারামিটারটি আপনাকে Soong বিল্ড ইভেন্টগুলিতে কাস্টম ফ্ল্যাগ বা এনভায়রনমেন্ট ভেরিয়েবল যোগ করার সুযোগ দেয়। এই কনফিগারেশনটি IDE-র সেই সমস্ত কাজের ক্ষেত্রে প্রযোজ্য, যেগুলির ফলে একটি Soong বিল্ড সম্পন্ন হয়; এর মধ্যে সিঙ্ক এবং রান কনফিগারেশনও অন্তর্ভুক্ত।

build_config:
  flags:
    -   -j64
  env:
    SOONG_ALLOW_MISSING_DEPENDENCIES: true
    MY_CUSTOM_VAR: value