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

অ্যান্ড্রয়েড স্টুডিও ফর প্ল্যাটফর্ম (ASfP) এর একটি প্রজেক্টে আপনার AOSP কোডবেসের জন্য আপনার কর্মক্ষেত্রকে সংজ্ঞায়িত করার সবকিছুই থাকে, সোর্স কোড এবং সম্পদ থেকে শুরু করে টেস্ট কোড এবং বিল্ড কনফিগারেশন পর্যন্ত।

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

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

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

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

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

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

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

repo

প্রয়োজনীয়

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

repo: /path/to/aosp

lunch

প্রয়োজনীয়

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

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